@@ -2053,7 +2053,6 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
2053
2053
var noConstraintType = createAnonymousType(/*symbol*/ undefined, emptySymbols, emptyArray, emptyArray, emptyArray);
2054
2054
var circularConstraintType = createAnonymousType(/*symbol*/ undefined, emptySymbols, emptyArray, emptyArray, emptyArray);
2055
2055
var resolvingDefaultType = createAnonymousType(/*symbol*/ undefined, emptySymbols, emptyArray, emptyArray, emptyArray);
2056
- var resolvingApparentMappedType = createAnonymousType(/*symbol*/ undefined, emptySymbols, emptyArray, emptyArray, emptyArray);
2057
2056
2058
2057
var markerSuperType = createTypeParameter();
2059
2058
var markerSubType = createTypeParameter();
@@ -14539,32 +14538,15 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
14539
14538
}
14540
14539
14541
14540
function getApparentTypeOfMappedType(type: MappedType) {
14542
- if (type.resolvedApparentType) {
14543
- if (type.resolvedApparentType === resolvingApparentMappedType) {
14544
- return type.resolvedApparentType = type;
14545
- }
14546
- return type.resolvedApparentType;
14547
- }
14548
- type.resolvedApparentType = resolvingApparentMappedType;
14549
- return type.resolvedApparentType = getResolvedApparentTypeOfMappedType(type);
14541
+ return type.resolvedApparentType || (type.resolvedApparentType = getResolvedApparentTypeOfMappedType(type));
14550
14542
}
14551
14543
14552
14544
function getResolvedApparentTypeOfMappedType(type: MappedType) {
14553
- const mappedType = type.target as MappedType || type;
14554
- const typeVariable = getHomomorphicTypeVariable(mappedType);
14555
- if (typeVariable && !mappedType.declaration.nameType) {
14556
- let constraint: Type | undefined;
14557
- if (!type.target) {
14558
- constraint = getConstraintOfTypeParameter(typeVariable);
14559
- }
14560
- else {
14561
- const modifiersConstraint = getConstraintOfType(getModifiersTypeFromMappedType(type));
14562
- if (modifiersConstraint) {
14563
- constraint = getApparentType(modifiersConstraint);
14564
- }
14565
- }
14545
+ const typeVariable = getHomomorphicTypeVariable(type);
14546
+ if (typeVariable && !type.declaration.nameType) {
14547
+ const constraint = getConstraintOfTypeParameter(typeVariable);
14566
14548
if (constraint && everyType(constraint, isArrayOrTupleType)) {
14567
- return instantiateType(mappedType , prependTypeMapping(typeVariable, constraint, mappedType .mapper));
14549
+ return instantiateType(type , prependTypeMapping(typeVariable, constraint, type .mapper));
14568
14550
}
14569
14551
}
14570
14552
return type;
0 commit comments