Skip to content

Commit 19bf705

Browse files
author
Max Heiber
committed
Incorporate checker PR feedback
Signed-off-by: Max Heiber <[email protected]>
1 parent 8903395 commit 19bf705

12 files changed

+61
-52
lines changed

src/compiler/checker.ts

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2680,7 +2680,7 @@ namespace ts {
26802680
}
26812681

26822682
// A reserved member name starts with two underscores, but the third character cannot be an underscore,
2683-
// @ or #. A third underscore indicates an escaped form of an identifer that started
2683+
// @, or #. A third underscore indicates an escaped form of an identifer that started
26842684
// with at least two underscores. The @ character indicates that the name is denoted by a well known ES
26852685
// Symbol instance and the # indicates that the name is a PrivateName.
26862686
function isReservedMemberName(name: __String) {
@@ -12219,7 +12219,7 @@ namespace ts {
1221912219
reportError(
1222012220
Diagnostics.Property_0_is_missing_in_type_1_While_type_1_has_a_private_member_with_the_same_spelling_its_declaration_and_accessibility_are_distinct,
1222112221
diagnosticName(privateNameDescription),
12222-
diagnosticName(source.symbol.valueDeclaration.name || ("anonymous" as __String))
12222+
diagnosticName(source.symbol.valueDeclaration.name || ("(anonymous)" as __String))
1222312223
);
1222412224
hasReported = true;
1222512225
}
@@ -18457,7 +18457,7 @@ namespace ts {
1845718457
right,
1845818458
Diagnostics.This_usage_of_0_refers_to_the_private_member_declared_in_its_enclosing_class_While_type_1_has_a_private_member_with_the_same_spelling_its_declaration_and_accessibility_are_distinct,
1845918459
diagnosticName(right),
18460-
diagnosticName(classWithShadowedPrivateName.name || ("anonymous" as __String))
18460+
diagnosticName(classWithShadowedPrivateName.name || ("(anonymous)" as __String))
1846118461
);
1846218462
return undefined;
1846318463
}
@@ -21439,14 +21439,11 @@ namespace ts {
2143921439
}
2144021440
if (expr.kind === SyntaxKind.PropertyAccessExpression && isPrivateName((expr as PropertyAccessExpression).name)) {
2144121441
error(expr, Diagnostics.The_operand_of_a_delete_operator_cannot_be_a_private_name);
21442-
2144321442
}
2144421443
const links = getNodeLinks(expr);
2144521444
const symbol = getExportSymbolOfValueSymbolIfExported(links.resolvedSymbol);
21446-
if (symbol) {
21447-
if (isReadonlySymbol(symbol)) {
21448-
error(expr, Diagnostics.The_operand_of_a_delete_operator_cannot_be_a_read_only_property);
21449-
}
21445+
if (symbol && isReadonlySymbol(symbol)) {
21446+
error(expr, Diagnostics.The_operand_of_a_delete_operator_cannot_be_a_read_only_property);
2145021447
}
2145121448
return booleanType;
2145221449
}

src/compiler/diagnosticMessages.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4307,7 +4307,7 @@
43074307
"category": "Error",
43084308
"code": 18005
43094309
},
4310-
"#constructor is a reserved word.": {
4310+
"'#constructor' is a reserved word.": {
43114311
"category": "Error",
43124312
"code": 18006
43134313
},
Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,10 @@
1-
tests/cases/conformance/classes/members/privateNames/privateNameConstructorReserved.ts(1,7): error TS2300: Duplicate identifier 'A'.
2-
tests/cases/conformance/classes/members/privateNames/privateNameConstructorReserved.ts(2,5): error TS18006: #constructor is a reserved word.
3-
tests/cases/conformance/classes/members/privateNames/privateNameConstructorReserved.ts(5,7): error TS2300: Duplicate identifier 'A'.
4-
tests/cases/conformance/classes/members/privateNames/privateNameConstructorReserved.ts(6,5): error TS18006: #constructor is a reserved word.
1+
tests/cases/conformance/classes/members/privateNames/privateNameConstructorReserved.ts(2,5): error TS18006: '#constructor' is a reserved word.
52

63

7-
==== tests/cases/conformance/classes/members/privateNames/privateNameConstructorReserved.ts (4 errors) ====
4+
==== tests/cases/conformance/classes/members/privateNames/privateNameConstructorReserved.ts (1 errors) ====
85
class A {
9-
~
10-
!!! error TS2300: Duplicate identifier 'A'.
116
#constructor() {} // Error: `#constructor` is a reserved word.
127
~~~~~~~~~~~~
13-
!!! error TS18006: #constructor is a reserved word.
8+
!!! error TS18006: '#constructor' is a reserved word.
149
}
15-
16-
class A {
17-
~
18-
!!! error TS2300: Duplicate identifier 'A'.
19-
#constructor = 5 // Error: `#constructor` is a reserved word.
20-
~~~~~~~~~~~~
21-
!!! error TS18006: #constructor is a reserved word.
22-
}
10+

tests/baselines/reference/privateNameConstructorReserved.js

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,7 @@
22
class A {
33
#constructor() {} // Error: `#constructor` is a reserved word.
44
}
5-
6-
class A {
7-
#constructor = 5 // Error: `#constructor` is a reserved word.
8-
}
5+
96

107
//// [privateNameConstructorReserved.js]
118
var A = /** @class */ (function () {
@@ -14,9 +11,3 @@ var A = /** @class */ (function () {
1411
A.prototype.#constructor = function () { }; // Error: `#constructor` is a reserved word.
1512
return A;
1613
}());
17-
var A = /** @class */ (function () {
18-
function A() {
19-
this.#constructor = 5; // Error: `#constructor` is a reserved word.
20-
}
21-
return A;
22-
}());

tests/baselines/reference/privateNameConstructorReserved.symbols

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,3 @@ class A {
66
>#constructor : Symbol(A[#constructor], Decl(privateNameConstructorReserved.ts, 0, 9))
77
}
88

9-
class A {
10-
>A : Symbol(A, Decl(privateNameConstructorReserved.ts, 2, 1))
11-
12-
#constructor = 5 // Error: `#constructor` is a reserved word.
13-
>#constructor : Symbol(A[#constructor], Decl(privateNameConstructorReserved.ts, 4, 9))
14-
}

tests/baselines/reference/privateNameConstructorReserved.types

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,3 @@ class A {
66
>#constructor : () => void
77
}
88

9-
class A {
10-
>A : A
11-
12-
#constructor = 5 // Error: `#constructor` is a reserved word.
13-
>#constructor : number
14-
>5 : 5
15-
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
tests/cases/conformance/classes/members/privateNames/privateNameDuplicateField.ts(3,5): error TS2300: Duplicate identifier '#foo'.
2+
3+
4+
==== tests/cases/conformance/classes/members/privateNames/privateNameDuplicateField.ts (1 errors) ====
5+
class A {
6+
#foo;
7+
#foo;
8+
~~~~
9+
!!! error TS2300: Duplicate identifier '#foo'.
10+
}
11+
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
//// [privateNameDuplicateField.ts]
2+
class A {
3+
#foo;
4+
#foo;
5+
}
6+
7+
8+
//// [privateNameDuplicateField.js]
9+
var A = /** @class */ (function () {
10+
function A() {
11+
}
12+
return A;
13+
}());
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
=== tests/cases/conformance/classes/members/privateNames/privateNameDuplicateField.ts ===
2+
class A {
3+
>A : Symbol(A, Decl(privateNameDuplicateField.ts, 0, 0))
4+
5+
#foo;
6+
>#foo : Symbol(A[#foo], Decl(privateNameDuplicateField.ts, 0, 9), Decl(privateNameDuplicateField.ts, 1, 9))
7+
8+
#foo;
9+
>#foo : Symbol(A[#foo], Decl(privateNameDuplicateField.ts, 0, 9), Decl(privateNameDuplicateField.ts, 1, 9))
10+
}
11+
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
=== tests/cases/conformance/classes/members/privateNames/privateNameDuplicateField.ts ===
2+
class A {
3+
>A : A
4+
5+
#foo;
6+
>#foo : any
7+
8+
#foo;
9+
>#foo : any
10+
}
11+
Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
11
class A {
22
#constructor() {} // Error: `#constructor` is a reserved word.
33
}
4-
5-
class A {
6-
#constructor = 5 // Error: `#constructor` is a reserved word.
7-
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
class A {
2+
#foo;
3+
#foo;
4+
}

0 commit comments

Comments
 (0)