From 27bcd4cb5a98bce46c9cdd749752703ead021a4b Mon Sep 17 00:00:00 2001 From: TypeScript Bot Date: Wed, 10 Apr 2024 01:40:12 +0000 Subject: [PATCH] Update LKG --- lib/tsc.js | 10 ++++------ lib/tsserver.js | 10 ++++------ lib/typescript.js | 10 ++++------ 3 files changed, 12 insertions(+), 18 deletions(-) diff --git a/lib/tsc.js b/lib/tsc.js index 65842cbb9ff2e..f4e4fed2bc00f 100644 --- a/lib/tsc.js +++ b/lib/tsc.js @@ -55344,12 +55344,10 @@ function createTypeChecker(host) { const target = type.target ?? type; const typeVariable = getHomomorphicTypeVariable(target); if (typeVariable && !target.declaration.nameType) { - const constraint = getConstraintTypeFromMappedType(type); - if (constraint.flags & 4194304 /* Index */) { - const baseConstraint = getBaseConstraintOfType(constraint.type); - if (baseConstraint && everyType(baseConstraint, (t) => isArrayOrTupleType(t) || isArrayOrTupleOrIntersection(t))) { - return instantiateType(target, prependTypeMapping(typeVariable, baseConstraint, type.mapper)); - } + const modifiersType = getModifiersTypeFromMappedType(type); + const baseConstraint = isGenericMappedType(modifiersType) ? getApparentTypeOfMappedType(modifiersType) : getBaseConstraintOfType(modifiersType); + if (baseConstraint && everyType(baseConstraint, (t) => isArrayOrTupleType(t) || isArrayOrTupleOrIntersection(t))) { + return instantiateType(target, prependTypeMapping(typeVariable, baseConstraint, type.mapper)); } } return type; diff --git a/lib/tsserver.js b/lib/tsserver.js index d704e03c5e9c1..3f1ce62663e3c 100644 --- a/lib/tsserver.js +++ b/lib/tsserver.js @@ -60088,12 +60088,10 @@ function createTypeChecker(host) { const target = type.target ?? type; const typeVariable = getHomomorphicTypeVariable(target); if (typeVariable && !target.declaration.nameType) { - const constraint = getConstraintTypeFromMappedType(type); - if (constraint.flags & 4194304 /* Index */) { - const baseConstraint = getBaseConstraintOfType(constraint.type); - if (baseConstraint && everyType(baseConstraint, (t) => isArrayOrTupleType(t) || isArrayOrTupleOrIntersection(t))) { - return instantiateType(target, prependTypeMapping(typeVariable, baseConstraint, type.mapper)); - } + const modifiersType = getModifiersTypeFromMappedType(type); + const baseConstraint = isGenericMappedType(modifiersType) ? getApparentTypeOfMappedType(modifiersType) : getBaseConstraintOfType(modifiersType); + if (baseConstraint && everyType(baseConstraint, (t) => isArrayOrTupleType(t) || isArrayOrTupleOrIntersection(t))) { + return instantiateType(target, prependTypeMapping(typeVariable, baseConstraint, type.mapper)); } } return type; diff --git a/lib/typescript.js b/lib/typescript.js index 8668f6089c8c7..22053b17844ef 100644 --- a/lib/typescript.js +++ b/lib/typescript.js @@ -57843,12 +57843,10 @@ ${lanes.join("\n")} const target = type.target ?? type; const typeVariable = getHomomorphicTypeVariable(target); if (typeVariable && !target.declaration.nameType) { - const constraint = getConstraintTypeFromMappedType(type); - if (constraint.flags & 4194304 /* Index */) { - const baseConstraint = getBaseConstraintOfType(constraint.type); - if (baseConstraint && everyType(baseConstraint, (t) => isArrayOrTupleType(t) || isArrayOrTupleOrIntersection(t))) { - return instantiateType(target, prependTypeMapping(typeVariable, baseConstraint, type.mapper)); - } + const modifiersType = getModifiersTypeFromMappedType(type); + const baseConstraint = isGenericMappedType(modifiersType) ? getApparentTypeOfMappedType(modifiersType) : getBaseConstraintOfType(modifiersType); + if (baseConstraint && everyType(baseConstraint, (t) => isArrayOrTupleType(t) || isArrayOrTupleOrIntersection(t))) { + return instantiateType(target, prependTypeMapping(typeVariable, baseConstraint, type.mapper)); } } return type;