mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-04 21:53:42 -06:00
Ensure we don't overwrite computed CouldContainTypeVariables in new optimization (#54507)
This commit is contained in:
parent
160d1b7d0a
commit
e3c5209ae2
@ -18801,8 +18801,12 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
|
||||
// If none of the type arguments for the outer type parameters contain type variables, it follows
|
||||
// that the instantiated type doesn't reference type variables.
|
||||
if (result.flags & TypeFlags.ObjectFlagsType && !((result as ObjectFlagsType).objectFlags & ObjectFlags.CouldContainTypeVariablesComputed)) {
|
||||
(result as ObjectFlagsType).objectFlags |= ObjectFlags.CouldContainTypeVariablesComputed |
|
||||
(some(typeArguments, couldContainTypeVariables) ? ObjectFlags.CouldContainTypeVariables : 0);
|
||||
const resultCouldContainTypeVariables = some(typeArguments, couldContainTypeVariables);
|
||||
// The above check may have caused the result's objectFlags to update if the result is referenced via typeArguments.
|
||||
if (!((result as ObjectFlagsType).objectFlags & ObjectFlags.CouldContainTypeVariablesComputed)) {
|
||||
(result as ObjectFlagsType).objectFlags |= ObjectFlags.CouldContainTypeVariablesComputed |
|
||||
(resultCouldContainTypeVariables ? ObjectFlags.CouldContainTypeVariables : 0);
|
||||
}
|
||||
}
|
||||
target.instantiations.set(id, result);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user