@@ -1211,7 +1211,7 @@ namespace ts {
1211
1211
bind ( node . statement ) ;
1212
1212
popActiveLabel ( ) ;
1213
1213
if ( ! activeLabel . referenced && ! options . allowUnusedLabels ) {
1214
- errorOrSuggestionOnFirstToken ( unusedLabelIsError ( options ) , node , Diagnostics . Unused_label ) ;
1214
+ errorOrSuggestionOnNode ( unusedLabelIsError ( options ) , node . label , Diagnostics . Unused_label ) ;
1215
1215
}
1216
1216
if ( ! node . statement || node . statement . kind !== SyntaxKind . DoStatement ) {
1217
1217
// do statement sets current flow inside bindDoStatement
@@ -1918,9 +1918,16 @@ namespace ts {
1918
1918
file . bindDiagnostics . push ( createFileDiagnostic ( file , span . start , span . length , message , arg0 , arg1 , arg2 ) ) ;
1919
1919
}
1920
1920
1921
- function errorOrSuggestionOnFirstToken ( isError : boolean , node : Node , message : DiagnosticMessage , arg0 ?: any , arg1 ?: any , arg2 ?: any ) {
1922
- const span = getSpanOfTokenAtPosition ( file , node . pos ) ;
1923
- const diag = createFileDiagnostic ( file , span . start , span . length , message , arg0 , arg1 , arg2 ) ;
1921
+ function errorOrSuggestionOnNode ( isError : boolean , node : Node , message : DiagnosticMessage ) : void {
1922
+ errorOrSuggestionOnRange ( isError , node , node , message ) ;
1923
+ }
1924
+
1925
+ function errorOrSuggestionOnRange ( isError : boolean , startNode : Node , endNode : Node , message : DiagnosticMessage ) : void {
1926
+ addErrorOrSuggestionDiagnostic ( isError , { pos : getTokenPosOfNode ( startNode , file ) , end : endNode . end } , message ) ;
1927
+ }
1928
+
1929
+ function addErrorOrSuggestionDiagnostic ( isError : boolean , range : TextRange , message : DiagnosticMessage ) : void {
1930
+ const diag = createFileDiagnostic ( file , range . pos , range . end - range . pos , message ) ;
1924
1931
if ( isError ) {
1925
1932
file . bindDiagnostics . push ( diag ) ;
1926
1933
}
@@ -2792,7 +2799,7 @@ namespace ts {
2792
2799
node . declarationList . declarations . some ( d => ! ! d . initializer )
2793
2800
) ;
2794
2801
2795
- errorOrSuggestionOnFirstToken ( isError , node , Diagnostics . Unreachable_code_detected ) ;
2802
+ errorOrSuggestionOnRange ( isError , node , isBlock ( node . parent ) ? last ( node . parent . statements ) : node , Diagnostics . Unreachable_code_detected ) ;
2796
2803
}
2797
2804
}
2798
2805
}
0 commit comments