mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-04-17 01:49:41 -05:00
Fixed crash on circular local type arguments when outer ones are present too (#59089)
Co-authored-by: Gabriela Araujo Britto <gabrielaa@microsoft.com>
This commit is contained in:
committed by
GitHub
parent
652c96c123
commit
ec446b6f19
@@ -16300,7 +16300,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
|
||||
function getTypeArguments(type: TypeReference): readonly Type[] {
|
||||
if (!type.resolvedTypeArguments) {
|
||||
if (!pushTypeResolution(type, TypeSystemPropertyName.ResolvedTypeArguments)) {
|
||||
return type.target.localTypeParameters?.map(() => errorType) || emptyArray;
|
||||
return concatenate(type.target.outerTypeParameters, type.target.localTypeParameters?.map(() => errorType)) || emptyArray;
|
||||
}
|
||||
const node = type.node;
|
||||
const typeArguments = !node ? emptyArray :
|
||||
@@ -16311,7 +16311,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
|
||||
type.resolvedTypeArguments ??= type.mapper ? instantiateTypes(typeArguments, type.mapper) : typeArguments;
|
||||
}
|
||||
else {
|
||||
type.resolvedTypeArguments ??= type.target.localTypeParameters?.map(() => errorType) || emptyArray;
|
||||
type.resolvedTypeArguments ??= concatenate(type.target.outerTypeParameters, type.target.localTypeParameters?.map(() => errorType) || emptyArray);
|
||||
error(
|
||||
type.node || currentNode,
|
||||
type.target.symbol ? Diagnostics.Type_arguments_for_0_circularly_reference_themselves : Diagnostics.Tuple_type_arguments_circularly_reference_themselves,
|
||||
|
||||
Reference in New Issue
Block a user