(context, typeParameters)
| 79718 | } |
| 79719 | } |
| 79720 | function getUniqueTypeParameters(context, typeParameters) { |
| 79721 | var result = []; |
| 79722 | var oldTypeParameters; |
| 79723 | var newTypeParameters; |
| 79724 | for (var _i = 0, typeParameters_2 = typeParameters; _i < typeParameters_2.length; _i++) { |
| 79725 | var tp = typeParameters_2[_i]; |
| 79726 | var name = tp.symbol.escapedName; |
| 79727 | if (hasTypeParameterByName(context.inferredTypeParameters, name) || hasTypeParameterByName(result, name)) { |
| 79728 | var newName = getUniqueTypeParameterName(ts.concatenate(context.inferredTypeParameters, result), name); |
| 79729 | var symbol = createSymbol(262144 /* SymbolFlags.TypeParameter */, newName); |
| 79730 | var newTypeParameter = createTypeParameter(symbol); |
| 79731 | newTypeParameter.target = tp; |
| 79732 | oldTypeParameters = ts.append(oldTypeParameters, tp); |
| 79733 | newTypeParameters = ts.append(newTypeParameters, newTypeParameter); |
| 79734 | result.push(newTypeParameter); |
| 79735 | } |
| 79736 | else { |
| 79737 | result.push(tp); |
| 79738 | } |
| 79739 | } |
| 79740 | if (newTypeParameters) { |
| 79741 | var mapper = createTypeMapper(oldTypeParameters, newTypeParameters); |
| 79742 | for (var _a = 0, newTypeParameters_1 = newTypeParameters; _a < newTypeParameters_1.length; _a++) { |
| 79743 | var tp = newTypeParameters_1[_a]; |
| 79744 | tp.mapper = mapper; |
| 79745 | } |
| 79746 | } |
| 79747 | return result; |
| 79748 | } |
| 79749 | function hasTypeParameterByName(typeParameters, name) { |
| 79750 | return ts.some(typeParameters, function (tp) { return tp.symbol.escapedName === name; }); |
| 79751 | } |
no test coverage detected