Skip to content

Commit 0926674

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

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
@@ -2677,7 +2677,7 @@ namespace ts {
26772677
}
26782678

26792679
// A reserved member name starts with two underscores, but the third character cannot be an underscore,
2680-
// @ or #. A third underscore indicates an escaped form of an identifer that started
2680+
// @, or #. A third underscore indicates an escaped form of an identifer that started
26812681
// with at least two underscores. The @ character indicates that the name is denoted by a well known ES
26822682
// Symbol instance and the # indicates that the name is a PrivateName.
26832683
function isReservedMemberName(name: __String) {
@@ -12149,7 +12149,7 @@ namespace ts {
1214912149
reportError(
1215012150
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,
1215112151
diagnosticName(privateNameDescription),
12152-
diagnosticName(source.symbol.valueDeclaration.name || ("anonymous" as __String))
12152+
diagnosticName(source.symbol.valueDeclaration.name || ("(anonymous)" as __String))
1215312153
);
1215412154
hasReported = true;
1215512155
}
@@ -18658,7 +18658,7 @@ namespace ts {
1865818658
right,
1865918659
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,
1866018660
diagnosticName(right),
18661-
diagnosticName(classWithShadowedPrivateName.name || ("anonymous" as __String))
18661+
diagnosticName(classWithShadowedPrivateName.name || ("(anonymous)" as __String))
1866218662
);
1866318663
return undefined;
1866418664
}
@@ -21555,14 +21555,11 @@ namespace ts {
2155521555
}
2155621556
if (expr.kind === SyntaxKind.PropertyAccessExpression && isPrivateName((expr as PropertyAccessExpression).name)) {
2155721557
error(expr, Diagnostics.The_operand_of_a_delete_operator_cannot_be_a_private_name);
21558-
2155921558
}
2156021559
const links = getNodeLinks(expr);
2156121560
const symbol = getExportSymbolOfValueSymbolIfExported(links.resolvedSymbol);
21562-
if (symbol) {
21563-
if (isReadonlySymbol(symbol)) {
21564-
error(expr, Diagnostics.The_operand_of_a_delete_operator_cannot_be_a_read_only_property);
21565-
}
21561+
if (symbol && isReadonlySymbol(symbol)) {
21562+
error(expr, Diagnostics.The_operand_of_a_delete_operator_cannot_be_a_read_only_property);
2156621563
}
2156721564
return booleanType;
2156821565
}

src/compiler/diagnosticMessages.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4270,7 +4270,7 @@
42704270
"category": "Error",
42714271
"code": 18005
42724272
},
4273-
"#constructor is a reserved word.": {
4273+
"'#constructor' is a reserved word.": {
42744274
"category": "Error",
42754275
"code": 18006
42764276
},
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)