Skip to content

Commit 0a47fdf

Browse files
committed
Revert "Fixed apparent type of homomorphic mapped type with non-homomorphic instantiation (#56727)"
This reverts commit 424b964.
1 parent 55153b0 commit 0a47fdf

4 files changed

+5
-252
lines changed

src/compiler/checker.ts

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2053,7 +2053,6 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
20532053
var noConstraintType = createAnonymousType(/*symbol*/ undefined, emptySymbols, emptyArray, emptyArray, emptyArray);
20542054
var circularConstraintType = createAnonymousType(/*symbol*/ undefined, emptySymbols, emptyArray, emptyArray, emptyArray);
20552055
var resolvingDefaultType = createAnonymousType(/*symbol*/ undefined, emptySymbols, emptyArray, emptyArray, emptyArray);
2056-
var resolvingApparentMappedType = createAnonymousType(/*symbol*/ undefined, emptySymbols, emptyArray, emptyArray, emptyArray);
20572056

20582057
var markerSuperType = createTypeParameter();
20592058
var markerSubType = createTypeParameter();
@@ -14539,32 +14538,15 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
1453914538
}
1454014539

1454114540
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));
1455014542
}
1455114543

1455214544
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);
1456614548
if (constraint && everyType(constraint, isArrayOrTupleType)) {
14567-
return instantiateType(mappedType, prependTypeMapping(typeVariable, constraint, mappedType.mapper));
14549+
return instantiateType(type, prependTypeMapping(typeVariable, constraint, type.mapper));
1456814550
}
1456914551
}
1457014552
return type;

tests/baselines/reference/homomorphicMappedTypeWithNonHomomorphicInstantiationSpreadable1.symbols

Lines changed: 0 additions & 92 deletions
This file was deleted.

tests/baselines/reference/homomorphicMappedTypeWithNonHomomorphicInstantiationSpreadable1.types

Lines changed: 0 additions & 95 deletions
This file was deleted.

tests/cases/compiler/homomorphicMappedTypeWithNonHomomorphicInstantiationSpreadable1.ts

Lines changed: 0 additions & 42 deletions
This file was deleted.

0 commit comments

Comments
 (0)