From 520d7fff49d96ba71b9b441e25ff00c772070dff Mon Sep 17 00:00:00 2001 From: Nathan Shively-Sanders Date: Fri, 1 Sep 2017 14:19:12 -0700 Subject: [PATCH] Add depth limit to recursive type reference id generation 4 is the limit. --- src/compiler/checker.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 22abe7cd57e..764307de7a9 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -9790,7 +9790,7 @@ namespace ts { * getTypeReferenceId(A) returns "111=0-12=1" * where A.id=111 and number.id=12 */ - function getTypeReferenceId(type: TypeReference, typeParameters: Type[]) { + function getTypeReferenceId(type: TypeReference, typeParameters: Type[], depth = 0) { let result = "" + type.target.id; for (const t of type.typeArguments) { if (isUnconstrainedTypeParameter(t)) { @@ -9801,8 +9801,8 @@ namespace ts { } result += "=" + index; } - else if (isTypeReferenceWithGenericArguments(t)) { - result += "<" + getTypeReferenceId(t, typeParameters) + ">"; + else if (depth < 4 && isTypeReferenceWithGenericArguments(t)) { + result += "<" + getTypeReferenceId(t, typeParameters, depth + 1) + ">"; } else { result += "-" + t.id;