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;