mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-07 14:34:35 -06:00
Make permittedJumps a parameter to eliminate save-restore pattern
This commit is contained in:
parent
9d11fbb9b9
commit
a81fa7a801
@ -293,14 +293,13 @@ namespace ts.refactor.extractMethod {
|
||||
}
|
||||
|
||||
let errors: Diagnostic[];
|
||||
let permittedJumps = PermittedJumps.Return;
|
||||
let seenLabels: Array<__String>;
|
||||
|
||||
visit(nodeToCheck);
|
||||
visit(nodeToCheck, PermittedJumps.Return);
|
||||
|
||||
return errors;
|
||||
|
||||
function visit(node: Node) {
|
||||
function visit(node: Node, permittedJumps: PermittedJumps) {
|
||||
if (errors) {
|
||||
// already found an error - can stop now
|
||||
return true;
|
||||
@ -351,7 +350,6 @@ namespace ts.refactor.extractMethod {
|
||||
// do not dive into functions or classes
|
||||
return false;
|
||||
}
|
||||
const savedPermittedJumps = permittedJumps;
|
||||
if (node.parent) {
|
||||
switch (node.parent.kind) {
|
||||
case SyntaxKind.IfStatement:
|
||||
@ -402,7 +400,7 @@ namespace ts.refactor.extractMethod {
|
||||
{
|
||||
const label = (<LabeledStatement>node).label;
|
||||
(seenLabels || (seenLabels = [])).push(label.escapedText);
|
||||
forEachChild(node, visit);
|
||||
forEachChild(node, child => visit(child, permittedJumps));
|
||||
seenLabels.pop();
|
||||
break;
|
||||
}
|
||||
@ -439,11 +437,10 @@ namespace ts.refactor.extractMethod {
|
||||
}
|
||||
break;
|
||||
default:
|
||||
forEachChild(node, visit);
|
||||
forEachChild(node, child => visit(child, permittedJumps));
|
||||
break;
|
||||
}
|
||||
|
||||
permittedJumps = savedPermittedJumps;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user