mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Expand type references recursively in cache key
This means that `A<B<T, C<U>>>` will include the keys for `B` and `C` now.
This commit is contained in:
@@ -9782,8 +9782,8 @@ namespace ts {
|
||||
return type.flags & TypeFlags.TypeParameter && !getConstraintFromTypeParameter(<TypeParameter>type);
|
||||
}
|
||||
|
||||
function isTypeReferenceWithGenericArguments(type: Type) {
|
||||
return getObjectFlags(type) & ObjectFlags.Reference && some((<TypeReference>type).typeArguments, isUnconstrainedTypeParameter);
|
||||
function isTypeReferenceWithGenericArguments(type: Type): type is TypeReference {
|
||||
return getObjectFlags(type) & ObjectFlags.Reference && some((<TypeReference>type).typeArguments, t => isUnconstrainedTypeParameter(t) || isTypeReferenceWithGenericArguments(t));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -9801,6 +9801,9 @@ namespace ts {
|
||||
}
|
||||
result += "=" + index;
|
||||
}
|
||||
else if (isTypeReferenceWithGenericArguments(t)) {
|
||||
result += "<" + getTypeReferenceId(t, typeParameters) + ">";
|
||||
}
|
||||
else {
|
||||
result += "-" + t.id;
|
||||
}
|
||||
@@ -10050,7 +10053,7 @@ namespace ts {
|
||||
getUnionType(types, /*subtypeReduction*/ true);
|
||||
}
|
||||
|
||||
function isArrayType(type: Type): boolean {
|
||||
function isArrayType(type: Type): type is TypeReference {
|
||||
return getObjectFlags(type) & ObjectFlags.Reference && (<TypeReference>type).target === globalArrayType;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user