Skip to content

Commit a81fa7a

Browse files
committed
Make permittedJumps a parameter to eliminate save-restore pattern
1 parent 9d11fbb commit a81fa7a

File tree

1 file changed

+4
-7
lines changed

1 file changed

+4
-7
lines changed

src/services/refactors/extractMethod.ts

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -293,14 +293,13 @@ namespace ts.refactor.extractMethod {
293293
}
294294

295295
let errors: Diagnostic[];
296-
let permittedJumps = PermittedJumps.Return;
297296
let seenLabels: Array<__String>;
298297

299-
visit(nodeToCheck);
298+
visit(nodeToCheck, PermittedJumps.Return);
300299

301300
return errors;
302301

303-
function visit(node: Node) {
302+
function visit(node: Node, permittedJumps: PermittedJumps) {
304303
if (errors) {
305304
// already found an error - can stop now
306305
return true;
@@ -351,7 +350,6 @@ namespace ts.refactor.extractMethod {
351350
// do not dive into functions or classes
352351
return false;
353352
}
354-
const savedPermittedJumps = permittedJumps;
355353
if (node.parent) {
356354
switch (node.parent.kind) {
357355
case SyntaxKind.IfStatement:
@@ -402,7 +400,7 @@ namespace ts.refactor.extractMethod {
402400
{
403401
const label = (<LabeledStatement>node).label;
404402
(seenLabels || (seenLabels = [])).push(label.escapedText);
405-
forEachChild(node, visit);
403+
forEachChild(node, child => visit(child, permittedJumps));
406404
seenLabels.pop();
407405
break;
408406
}
@@ -439,11 +437,10 @@ namespace ts.refactor.extractMethod {
439437
}
440438
break;
441439
default:
442-
forEachChild(node, visit);
440+
forEachChild(node, child => visit(child, permittedJumps));
443441
break;
444442
}
445443

446-
permittedJumps = savedPermittedJumps;
447444
}
448445
}
449446
}

0 commit comments

Comments
 (0)