Skip to content

Commit a4224d6

Browse files
committed
Skip caching for tail recursive temporary conditional types
1 parent 093f76a commit a4224d6

File tree

1 file changed

+10
-12
lines changed

1 file changed

+10
-12
lines changed

src/compiler/checker.ts

+10-12
Original file line numberDiff line numberDiff line change
@@ -15322,19 +15322,17 @@ namespace ts {
1532215322
if (newRoot.outerTypeParameters) {
1532315323
const typeParamMapper = combineTypeMappers((newType as ConditionalType).mapper, newMapper);
1532415324
const typeArguments = map(newRoot.outerTypeParameters, t => getMappedType(t, typeParamMapper));
15325-
if (!newRoot.instantiations!.get(getTypeListId(typeArguments))) {
15326-
const newRootMapper = createTypeMapper(newRoot.outerTypeParameters, typeArguments);
15327-
const newCheckType = newRoot.isDistributive ? getMappedType(newRoot.checkType, newRootMapper) : undefined;
15328-
if (!newCheckType || newCheckType === newRoot.checkType || !(newCheckType.flags & (TypeFlags.Union | TypeFlags.Never))) {
15329-
root = newRoot;
15330-
mapper = newRootMapper;
15331-
aliasSymbol = undefined;
15332-
aliasTypeArguments = undefined;
15333-
if (newRoot.aliasSymbol) {
15334-
tailCount++;
15335-
}
15336-
return true;
15325+
const newRootMapper = createTypeMapper(newRoot.outerTypeParameters, typeArguments);
15326+
const newCheckType = newRoot.isDistributive ? getMappedType(newRoot.checkType, newRootMapper) : undefined;
15327+
if (!newCheckType || newCheckType === newRoot.checkType || !(newCheckType.flags & (TypeFlags.Union | TypeFlags.Never))) {
15328+
root = newRoot;
15329+
mapper = newRootMapper;
15330+
aliasSymbol = undefined;
15331+
aliasTypeArguments = undefined;
15332+
if (newRoot.aliasSymbol) {
15333+
tailCount++;
1533715334
}
15335+
return true;
1533815336
}
1533915337
}
1534015338
}

0 commit comments

Comments
 (0)