Skip to content

Commit 2d7e227

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

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
@@ -2595,7 +2595,7 @@ namespace ts {
25952595
}
25962596

25972597
// A reserved member name starts with two underscores, but the third character cannot be an underscore,
2598-
// @ or #. A third underscore indicates an escaped form of an identifer that started
2598+
// @, or #. A third underscore indicates an escaped form of an identifer that started
25992599
// with at least two underscores. The @ character indicates that the name is denoted by a well known ES
26002600
// Symbol instance and the # indicates that the name is a PrivateName.
26012601
function isReservedMemberName(name: __String) {
@@ -11867,7 +11867,7 @@ namespace ts {
1186711867
reportError(
1186811868
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,
1186911869
diagnosticName(privateNameDescription),
11870-
diagnosticName(source.symbol.valueDeclaration.name || ("anonymous" as __String))
11870+
diagnosticName(source.symbol.valueDeclaration.name || ("(anonymous)" as __String))
1187111871
);
1187211872
hasReported = true;
1187311873
}
@@ -18011,7 +18011,7 @@ namespace ts {
1801118011
right,
1801218012
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,
1801318013
diagnosticName(right),
18014-
diagnosticName(classWithShadowedPrivateName.name || ("anonymous" as __String))
18014+
diagnosticName(classWithShadowedPrivateName.name || ("(anonymous)" as __String))
1801518015
);
1801618016
return undefined;
1801718017
}
@@ -20791,14 +20791,11 @@ namespace ts {
2079120791
}
2079220792
if (expr.kind === SyntaxKind.PropertyAccessExpression && isPrivateName((expr as PropertyAccessExpression).name)) {
2079320793
error(expr, Diagnostics.The_operand_of_a_delete_operator_cannot_be_a_private_name);
20794-
2079520794
}
2079620795
const links = getNodeLinks(expr);
2079720796
const symbol = getExportSymbolOfValueSymbolIfExported(links.resolvedSymbol);
20798-
if (symbol) {
20799-
if (isReadonlySymbol(symbol)) {
20800-
error(expr, Diagnostics.The_operand_of_a_delete_operator_cannot_be_a_read_only_property);
20801-
}
20797+
if (symbol && isReadonlySymbol(symbol)) {
20798+
error(expr, Diagnostics.The_operand_of_a_delete_operator_cannot_be_a_read_only_property);
2080220799
}
2080320800
return booleanType;
2080420801
}

src/compiler/diagnosticMessages.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4174,7 +4174,7 @@
41744174
"category": "Error",
41754175
"code": 18005
41764176
},
4177-
"#constructor is a reserved word.": {
4177+
"'#constructor' is a reserved word.": {
41784178
"category": "Error",
41794179
"code": 18006
41804180
},
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)