Skip to content

Commit f526a38

Browse files
authored
Always grammar checker for override (#43544)
1 parent 3cf26e4 commit f526a38

File tree

2 files changed

+17
-5
lines changed

2 files changed

+17
-5
lines changed

src/compiler/checker.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40385,7 +40385,7 @@ namespace ts {
4038540385
if (flags & ModifierFlags.AccessibilityModifier) {
4038640386
return grammarErrorOnNode(modifier, Diagnostics.Accessibility_modifier_already_seen);
4038740387
}
40388-
else if (compilerOptions.noImplicitOverride && flags & ModifierFlags.Override) {
40388+
else if (flags & ModifierFlags.Override) {
4038940389
return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, text, "override");
4039040390
}
4039140391
else if (flags & ModifierFlags.Static) {
@@ -40421,7 +40421,7 @@ namespace ts {
4042140421
else if (flags & ModifierFlags.Readonly) {
4042240422
return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, "static", "readonly");
4042340423
}
40424-
else if (compilerOptions.noImplicitOverride && flags & ModifierFlags.Override) {
40424+
else if (flags & ModifierFlags.Override) {
4042540425
return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, "static", "override");
4042640426
}
4042740427
else if (flags & ModifierFlags.Async) {
@@ -40488,7 +40488,7 @@ namespace ts {
4048840488
else if (flags & ModifierFlags.Async) {
4048940489
return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_in_an_ambient_context, "async");
4049040490
}
40491-
else if (compilerOptions.noImplicitOverride && flags & ModifierFlags.Override) {
40491+
else if (flags & ModifierFlags.Override) {
4049240492
return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_in_an_ambient_context, "override");
4049340493
}
4049440494
else if (isClassLike(node.parent) && !isPropertyDeclaration(node)) {
@@ -40565,7 +40565,7 @@ namespace ts {
4056540565
if (flags & ModifierFlags.Abstract) {
4056640566
return grammarErrorOnNode(lastStatic!, Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "abstract"); // TODO: GH#18217
4056740567
}
40568-
if (compilerOptions.noImplicitOverride && flags & ModifierFlags.Override) {
40568+
if (flags & ModifierFlags.Override) {
4056940569
return grammarErrorOnNode(lastOverride!, Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "override"); // TODO: GH#18217
4057040570
}
4057140571
else if (flags & ModifierFlags.Async) {

tests/baselines/reference/override7.errors.txt

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
1+
tests/cases/conformance/override/override7.ts(11,14): error TS1040: 'override' modifier cannot be used in an ambient context.
2+
tests/cases/conformance/override/override7.ts(17,14): error TS1243: 'static' modifier cannot be used with 'override' modifier.
13
tests/cases/conformance/override/override7.ts(19,14): error TS1030: 'override' modifier already seen.
24
tests/cases/conformance/override/override7.ts(19,23): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'B'.
35
tests/cases/conformance/override/override7.ts(21,21): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'B'.
6+
tests/cases/conformance/override/override7.ts(22,14): error TS1029: 'public' modifier must precede 'override' modifier.
47
tests/cases/conformance/override/override7.ts(22,21): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'B'.
8+
tests/cases/conformance/override/override7.ts(24,5): error TS1089: 'override' modifier cannot appear on a constructor declaration.
59
tests/cases/conformance/override/override7.ts(41,23): error TS4112: This member cannot have an 'override' modifier because its containing class 'AND' does not extend another class.
610
tests/cases/conformance/override/override7.ts(42,23): error TS4112: This member cannot have an 'override' modifier because its containing class 'AND' does not extend another class.
711

812

9-
==== tests/cases/conformance/override/override7.ts (6 errors) ====
13+
==== tests/cases/conformance/override/override7.ts (10 errors) ====
1014
class B {
1115
p1: number = 1;
1216
p2: number = 2;
@@ -18,12 +22,16 @@ tests/cases/conformance/override/override7.ts(42,23): error TS4112: This member
1822
declare p1: number
1923

2024
override declare p2: number;
25+
~~~~~~~
26+
!!! error TS1040: 'override' modifier cannot be used in an ambient context.
2127

2228
readonly override p3: number;
2329

2430
override readonly p4: number;
2531

2632
override static sp: number;
33+
~~~~~~
34+
!!! error TS1243: 'static' modifier cannot be used with 'override' modifier.
2735

2836
override override oop: number;
2937
~~~~~~~~
@@ -35,10 +43,14 @@ tests/cases/conformance/override/override7.ts(42,23): error TS4112: This member
3543
~~
3644
!!! error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'B'.
3745
override public op: number;
46+
~~~~~~
47+
!!! error TS1029: 'public' modifier must precede 'override' modifier.
3848
~~
3949
!!! error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'B'.
4050

4151
override constructor () {
52+
~~~~~~~~
53+
!!! error TS1089: 'override' modifier cannot appear on a constructor declaration.
4254
super();
4355
}
4456
}

0 commit comments

Comments
 (0)