Skip to content

Commit 4d8ad93

Browse files
committed
Reuse input array and avoid making mapper where possible
1 parent 60167a6 commit 4d8ad93

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

src/compiler/checker.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10693,13 +10693,15 @@ namespace ts {
1069310693
// * The original `mapper` used to create this conditional
1069410694
// * The mapper that maps the old root type parameter to the clone (`freshMapper`)
1069510695
// * The mapper that maps the clone to its inference result (`context.mapper`)
10696-
const freshParams = map(root.inferTypeParameters, maybeCloneTypeParameter);
10697-
const freshMapper = createTypeMapper(root.inferTypeParameters, freshParams);
10696+
const freshParams = sameMap(root.inferTypeParameters, maybeCloneTypeParameter);
10697+
const freshMapper = freshParams !== root.inferTypeParameters ? createTypeMapper(root.inferTypeParameters, freshParams) : undefined;
1069810698
const context = createInferenceContext(freshParams, /*signature*/ undefined, InferenceFlags.None);
10699-
const freshCombinedMapper = combineTypeMappers(mapper, freshMapper);
10700-
for (const p of freshParams) {
10701-
if (root.inferTypeParameters.indexOf(p) === -1) {
10702-
p.mapper = freshCombinedMapper;
10699+
if (freshMapper) {
10700+
const freshCombinedMapper = combineTypeMappers(mapper, freshMapper);
10701+
for (const p of freshParams) {
10702+
if (root.inferTypeParameters.indexOf(p) === -1) {
10703+
p.mapper = freshCombinedMapper;
10704+
}
1070310705
}
1070410706
}
1070510707
if (!checkTypeInstantiable) {

0 commit comments

Comments
 (0)