Skip to content

Commit 639190d

Browse files
committed
fix compiler crash (#26209)
1 parent 3ab7a98 commit 639190d

File tree

6 files changed

+48
-18
lines changed

6 files changed

+48
-18
lines changed

src/compiler/checker.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23958,13 +23958,13 @@ namespace ts {
2395823958
}
2395923959
else {
2396023960
addDiagnostic(bindingPattern, kind, bindingElements.length === 1
23961-
? createDiagnosticForNode(bindingPattern, Diagnostics._0_is_declared_but_its_value_is_never_read, idText(cast(first(bindingElements).name, isIdentifier)))
23961+
? createDiagnosticForNode(bindingPattern, Diagnostics._0_is_declared_but_its_value_is_never_read, bindingNameText(first(bindingElements).name))
2396223962
: createDiagnosticForNode(bindingPattern, Diagnostics.All_destructured_elements_are_unused));
2396323963
}
2396423964
}
2396523965
else {
2396623966
for (const e of bindingElements) {
23967-
addDiagnostic(e, kind, createDiagnosticForNode(e, Diagnostics._0_is_declared_but_its_value_is_never_read, idText(cast(e.name, isIdentifier))));
23967+
addDiagnostic(e, kind, createDiagnosticForNode(e, Diagnostics._0_is_declared_but_its_value_is_never_read, bindingNameText(e.name)));
2396823968
}
2396923969
}
2397023970
});
@@ -23976,7 +23976,7 @@ namespace ts {
2397623976
}
2397723977
else {
2397823978
for (const decl of declarations) {
23979-
addDiagnostic(decl, UnusedKind.Local, createDiagnosticForNode(decl, Diagnostics._0_is_declared_but_its_value_is_never_read, idText(cast(decl.name, isIdentifier))));
23979+
addDiagnostic(decl, UnusedKind.Local, createDiagnosticForNode(decl, Diagnostics._0_is_declared_but_its_value_is_never_read, bindingNameText(decl.name)));
2398023980
}
2398123981
}
2398223982
});

tests/baselines/reference/unusedLocalsAndParameters.errors.txt

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,11 @@ tests/cases/compiler/unusedLocalsAndParameters.ts(15,5): error TS6133: 'farrow'
44
tests/cases/compiler/unusedLocalsAndParameters.ts(15,15): error TS6133: 'a' is declared but its value is never read.
55
tests/cases/compiler/unusedLocalsAndParameters.ts(18,7): error TS6196: 'C' is declared but never used.
66
tests/cases/compiler/unusedLocalsAndParameters.ts(20,12): error TS6133: 'a' is declared but its value is never read.
7-
tests/cases/compiler/unusedLocalsAndParameters.ts(23,9): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
87
tests/cases/compiler/unusedLocalsAndParameters.ts(23,11): error TS6133: 'v' is declared but its value is never read.
98
tests/cases/compiler/unusedLocalsAndParameters.ts(27,5): error TS6133: 'E' is declared but its value is never read.
109
tests/cases/compiler/unusedLocalsAndParameters.ts(29,12): error TS6133: 'a' is declared but its value is never read.
11-
tests/cases/compiler/unusedLocalsAndParameters.ts(32,9): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
1210
tests/cases/compiler/unusedLocalsAndParameters.ts(32,11): error TS6133: 'v' is declared but its value is never read.
1311
tests/cases/compiler/unusedLocalsAndParameters.ts(38,12): error TS6133: 'a' is declared but its value is never read.
14-
tests/cases/compiler/unusedLocalsAndParameters.ts(41,9): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
1512
tests/cases/compiler/unusedLocalsAndParameters.ts(41,11): error TS6133: 'v' is declared but its value is never read.
1613
tests/cases/compiler/unusedLocalsAndParameters.ts(48,10): error TS6133: 'i' is declared but its value is never read.
1714
tests/cases/compiler/unusedLocalsAndParameters.ts(52,10): error TS6133: 'i' is declared but its value is never read.
@@ -22,9 +19,13 @@ tests/cases/compiler/unusedLocalsAndParameters.ts(71,11): error TS6133: 'c' is d
2219
tests/cases/compiler/unusedLocalsAndParameters.ts(74,11): error TS6133: 'c' is declared but its value is never read.
2320
tests/cases/compiler/unusedLocalsAndParameters.ts(79,11): error TS6133: 'N' is declared but its value is never read.
2421
tests/cases/compiler/unusedLocalsAndParameters.ts(80,9): error TS6133: 'x' is declared but its value is never read.
22+
tests/cases/compiler/unusedLocalsAndParameters.ts(83,13): error TS2304: Cannot find name 'y'.
23+
tests/cases/compiler/unusedLocalsAndParameters.ts(83,14): error TS1005: ',' expected.
24+
tests/cases/compiler/unusedLocalsAndParameters.ts(84,6): error TS1005: ',' expected.
25+
tests/cases/compiler/unusedLocalsAndParameters.ts(85,1): error TS1109: Expression expected.
2526

2627

27-
==== tests/cases/compiler/unusedLocalsAndParameters.ts (24 errors) ====
28+
==== tests/cases/compiler/unusedLocalsAndParameters.ts (25 errors) ====
2829
export { };
2930

3031
// function declaration paramter
@@ -60,8 +61,6 @@ tests/cases/compiler/unusedLocalsAndParameters.ts(80,9): error TS6133: 'x' is de
6061
}
6162
// Accessor declaration paramter
6263
set x(v: number) {
63-
~
64-
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
6564
~
6665
!!! error TS6133: 'v' is declared but its value is never read.
6766
}
@@ -77,8 +76,6 @@ tests/cases/compiler/unusedLocalsAndParameters.ts(80,9): error TS6133: 'x' is de
7776
}
7877
// Accessor declaration paramter
7978
set x(v: number) {
80-
~
81-
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
8279
~
8380
!!! error TS6133: 'v' is declared but its value is never read.
8481
}
@@ -92,8 +89,6 @@ tests/cases/compiler/unusedLocalsAndParameters.ts(80,9): error TS6133: 'x' is de
9289
},
9390
// Accessor declaration paramter
9491
set x(v: number) {
95-
~
96-
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
9792
~
9893
!!! error TS6133: 'v' is declared but its value is never read.
9994
}
@@ -155,4 +150,15 @@ tests/cases/compiler/unusedLocalsAndParameters.ts(80,9): error TS6133: 'x' is de
155150
!!! error TS6133: 'x' is declared but its value is never read.
156151
}
157152

158-
153+
for (let x: y) {
154+
~
155+
!!! error TS2304: Cannot find name 'y'.
156+
~
157+
!!! error TS1005: ',' expected.
158+
z(x);
159+
~
160+
!!! error TS1005: ',' expected.
161+
}
162+
~
163+
!!! error TS1109: Expression expected.
164+

tests/baselines/reference/unusedLocalsAndParameters.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,10 @@ namespace N {
8181
var x;
8282
}
8383

84-
84+
for (let x: y) {
85+
z(x);
86+
}
87+
8588

8689
//// [unusedLocalsAndParameters.js]
8790
"use strict";
@@ -166,3 +169,5 @@ var N;
166169
(function (N) {
167170
var x;
168171
})(N || (N = {}));
172+
for (var x = void 0, z = (void 0).z; (x); )
173+
;

tests/baselines/reference/unusedLocalsAndParameters.symbols

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,4 +131,11 @@ namespace N {
131131
>x : Symbol(x, Decl(unusedLocalsAndParameters.ts, 79, 7))
132132
}
133133

134-
134+
for (let x: y) {
135+
>x : Symbol(x, Decl(unusedLocalsAndParameters.ts, 82, 8))
136+
137+
z(x);
138+
>z : Symbol(z, Decl(unusedLocalsAndParameters.ts, 82, 16))
139+
>x : Symbol(x, Decl(unusedLocalsAndParameters.ts, 82, 8))
140+
}
141+

tests/baselines/reference/unusedLocalsAndParameters.types

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,4 +152,14 @@ namespace N {
152152
>x : any
153153
}
154154

155-
155+
for (let x: y) {
156+
>x : any
157+
158+
z(x);
159+
>z : any
160+
>(x) : any
161+
>x : any
162+
}
163+
> : any
164+
> : any
165+

tests/cases/compiler/unusedLocalsAndParameters.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,4 +83,6 @@ namespace N {
8383
var x;
8484
}
8585

86-
86+
for (let x: y) {
87+
z(x);
88+
}

0 commit comments

Comments
 (0)