From 771b42d5597e6a284a83b2ed7e2bde1c83ab95f8 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Tue, 4 Apr 2023 15:42:44 -0700 Subject: [PATCH 1/2] Don't linearly search for fresh param in getConditionalType --- src/compiler/checker.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 0cd80de4a78de..399a7d90a9bde 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -17790,11 +17790,11 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { const context = createInferenceContext(freshParams, /*signature*/ undefined, InferenceFlags.None); if (freshMapper) { const freshCombinedMapper = combineTypeMappers(mapper, freshMapper); - for (const p of freshParams) { - if (root.inferTypeParameters.indexOf(p) === -1) { + forEach(freshParams, (p, i) => { + if (p !== root.inferTypeParameters![i]) { p.mapper = freshCombinedMapper; } - } + }); } if (!checkTypeDeferred) { // We don't want inferences from constraints as they may cause us to eagerly resolve the From 558746f275a807a38725dfcaad644c822d263889 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Thu, 6 Apr 2023 12:05:38 -0700 Subject: [PATCH 2/2] PR feedback --- src/compiler/checker.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 399a7d90a9bde..ccf9bece3416e 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -17790,11 +17790,11 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { const context = createInferenceContext(freshParams, /*signature*/ undefined, InferenceFlags.None); if (freshMapper) { const freshCombinedMapper = combineTypeMappers(mapper, freshMapper); - forEach(freshParams, (p, i) => { - if (p !== root.inferTypeParameters![i]) { - p.mapper = freshCombinedMapper; + for (let i = 0; i < freshParams.length; i++) { + if (freshParams[i] !== root.inferTypeParameters[i]) { + freshParams[i].mapper = freshCombinedMapper; } - }); + } } if (!checkTypeDeferred) { // We don't want inferences from constraints as they may cause us to eagerly resolve the