@@ -293,13 +293,14 @@ namespace ts.refactor.extractMethod {
293
293
}
294
294
295
295
let errors : Diagnostic [ ] ;
296
+ let permittedJumps = PermittedJumps . Return ;
296
297
let seenLabels : Array < __String > ;
297
298
298
- visit ( nodeToCheck , PermittedJumps . Return ) ;
299
+ visit ( nodeToCheck ) ;
299
300
300
301
return errors ;
301
302
302
- function visit ( node : Node , permittedJumps : PermittedJumps ) {
303
+ function visit ( node : Node ) {
303
304
if ( errors ) {
304
305
// already found an error - can stop now
305
306
return true ;
@@ -350,6 +351,7 @@ namespace ts.refactor.extractMethod {
350
351
// do not dive into functions or classes
351
352
return false ;
352
353
}
354
+ const savedPermittedJumps = permittedJumps ;
353
355
354
356
switch ( node . kind ) {
355
357
case SyntaxKind . IfStatement :
@@ -386,7 +388,7 @@ namespace ts.refactor.extractMethod {
386
388
{
387
389
const label = ( < LabeledStatement > node ) . label ;
388
390
( seenLabels || ( seenLabels = [ ] ) ) . push ( label . escapedText ) ;
389
- forEachChild ( node , child => visit ( child , permittedJumps ) ) ;
391
+ forEachChild ( node , visit ) ;
390
392
seenLabels . pop ( ) ;
391
393
break ;
392
394
}
@@ -423,10 +425,11 @@ namespace ts.refactor.extractMethod {
423
425
}
424
426
break ;
425
427
default :
426
- forEachChild ( node , child => visit ( child , permittedJumps ) ) ;
428
+ forEachChild ( node , visit ) ;
427
429
break ;
428
430
}
429
431
432
+ permittedJumps = savedPermittedJumps ;
430
433
}
431
434
}
432
435
}
0 commit comments