Prevent type parameter printing from recuring on the same symbol (#31453)

This commit is contained in:
Wesley Wigham
2019-05-20 16:43:55 -07:00
committed by GitHub
parent 9052804576
commit 07d850cf1c
2 changed files with 27 additions and 0 deletions

View File

@@ -4302,6 +4302,11 @@ namespace ts {
function lookupTypeParameterNodes(chain: Symbol[], index: number, context: NodeBuilderContext) {
Debug.assert(chain && 0 <= index && index < chain.length);
const symbol = chain[index];
const symbolId = "" + getSymbolId(symbol);
if (context.typeParameterSymbolList && context.typeParameterSymbolList.get(symbolId)) {
return undefined;
}
(context.typeParameterSymbolList || (context.typeParameterSymbolList = createMap())).set(symbolId, true);
let typeParameterNodes: ReadonlyArray<TypeNode> | ReadonlyArray<TypeParameterDeclaration> | undefined;
if (context.flags & NodeBuilderFlags.WriteTypeParametersInQualifiedName && index < (chain.length - 1)) {
const parentSymbol = symbol;
@@ -4628,6 +4633,7 @@ namespace ts {
inferTypeParameters: TypeParameter[] | undefined;
approximateLength: number;
truncating?: boolean;
typeParameterSymbolList?: Map<true>;
}
function isDefaultBindingContext(location: Node) {