@@ -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