MCPcopy Index your code
hub / github.com/nodejs/node / getUniqueTypeParameters

Function getUniqueTypeParameters

test/fixtures/snapshot/typescript.js:79720–79748  ·  view source on GitHub ↗
(context, typeParameters)

Source from the content-addressed store, hash-verified

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 }

Calls 7

hasTypeParameterByNameFunction · 0.85
createSymbolFunction · 0.85
createTypeParameterFunction · 0.85
createTypeMapperFunction · 0.85
appendMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected