@@ -18,31 +18,33 @@ namespace ts.codefix {
18
18
Debug . assert ( statement . getStart ( sourceFile ) === token . getStart ( sourceFile ) ) ;
19
19
20
20
const container = ( isBlock ( statement . parent ) ? statement . parent : statement ) . parent ;
21
- switch ( container . kind ) {
22
- case SyntaxKind . IfStatement :
23
- if ( ( container as IfStatement ) . elseStatement ) {
24
- if ( isBlock ( statement . parent ) ) {
25
- changes . deleteNodeRange ( sourceFile , first ( statement . parent . statements ) , last ( statement . parent . statements ) ) ;
21
+ if ( ! isBlock ( statement . parent ) || statement === first ( statement . parent . statements ) ) {
22
+ switch ( container . kind ) {
23
+ case SyntaxKind . IfStatement :
24
+ if ( ( container as IfStatement ) . elseStatement ) {
25
+ if ( isBlock ( statement . parent ) ) {
26
+ break ;
27
+ }
28
+ else {
29
+ changes . replaceNode ( sourceFile , statement , createBlock ( emptyArray ) ) ;
30
+ }
31
+ return ;
26
32
}
27
- else {
28
- changes . replaceNode ( sourceFile , statement , createBlock ( emptyArray ) ) ;
29
- }
30
- break ;
31
- }
32
- // falls through
33
- case SyntaxKind . WhileStatement :
34
- case SyntaxKind . ForStatement :
35
- changes . delete ( sourceFile , container ) ;
36
- break ;
37
- default :
38
- if ( isBlock ( statement . parent ) ) {
39
- const end = start + length ;
40
- const lastStatement = Debug . assertDefined ( lastWhere ( sliceAfter ( statement . parent . statements , statement ) , s => s . pos < end ) ) ;
41
- changes . deleteNodeRange ( sourceFile , statement , lastStatement ) ;
42
- }
43
- else {
44
- changes . delete ( sourceFile , statement ) ;
45
- }
33
+ // falls through
34
+ case SyntaxKind . WhileStatement :
35
+ case SyntaxKind . ForStatement :
36
+ changes . delete ( sourceFile , container ) ;
37
+ return ;
38
+ }
39
+ }
40
+
41
+ if ( isBlock ( statement . parent ) ) {
42
+ const end = start + length ;
43
+ const lastStatement = Debug . assertDefined ( lastWhere ( sliceAfter ( statement . parent . statements , statement ) , s => s . pos < end ) ) ;
44
+ changes . deleteNodeRange ( sourceFile , statement , lastStatement ) ;
45
+ }
46
+ else {
47
+ changes . delete ( sourceFile , statement ) ;
46
48
}
47
49
}
48
50
0 commit comments