@@ -293,14 +293,13 @@ namespace ts.refactor.extractMethod {
293
293
}
294
294
295
295
let errors : Diagnostic [ ] ;
296
- let permittedJumps = PermittedJumps . Return ;
297
296
let seenLabels : Array < __String > ;
298
297
299
- visit ( nodeToCheck ) ;
298
+ visit ( nodeToCheck , PermittedJumps . Return ) ;
300
299
301
300
return errors ;
302
301
303
- function visit ( node : Node ) {
302
+ function visit ( node : Node , permittedJumps : PermittedJumps ) {
304
303
if ( errors ) {
305
304
// already found an error - can stop now
306
305
return true ;
@@ -351,7 +350,6 @@ namespace ts.refactor.extractMethod {
351
350
// do not dive into functions or classes
352
351
return false ;
353
352
}
354
- const savedPermittedJumps = permittedJumps ;
355
353
if ( node . parent ) {
356
354
switch ( node . parent . kind ) {
357
355
case SyntaxKind . IfStatement :
@@ -402,7 +400,7 @@ namespace ts.refactor.extractMethod {
402
400
{
403
401
const label = ( < LabeledStatement > node ) . label ;
404
402
( seenLabels || ( seenLabels = [ ] ) ) . push ( label . escapedText ) ;
405
- forEachChild ( node , visit ) ;
403
+ forEachChild ( node , child => visit ( child , permittedJumps ) ) ;
406
404
seenLabels . pop ( ) ;
407
405
break ;
408
406
}
@@ -439,11 +437,10 @@ namespace ts.refactor.extractMethod {
439
437
}
440
438
break ;
441
439
default :
442
- forEachChild ( node , visit ) ;
440
+ forEachChild ( node , child => visit ( child , permittedJumps ) ) ;
443
441
break ;
444
442
}
445
443
446
- permittedJumps = savedPermittedJumps ;
447
444
}
448
445
}
449
446
}
0 commit comments