Skip to content

--noImplicitOverride #39669

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 76 commits into from
Mar 26, 2021
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
8b90b8d
wip: add types
Kingwl Jul 15, 2020
ea5608a
wip
Kingwl Jul 17, 2020
9371d87
Add cases
Kingwl Jul 17, 2020
6cb7f5e
Add some case
Kingwl Jul 17, 2020
061cd27
Add more check
Kingwl Jul 20, 2020
37ada55
accept baseline
Kingwl Jul 20, 2020
6401e1a
add abstract abd declare method
Kingwl Jul 20, 2020
be00363
add override in declaration
Kingwl Jul 20, 2020
fbb6e28
accept baseline
Kingwl Jul 20, 2020
6014a3a
add property override
Kingwl Jul 21, 2020
a65df91
Fix decalre modifier
Kingwl Jul 21, 2020
43d9f70
update baseline
Kingwl Jul 21, 2020
e73c941
Add more cases
Kingwl Jul 21, 2020
c0edf6f
make lint happy
Kingwl Jul 21, 2020
dca93ac
make lint happy
Kingwl Jul 21, 2020
2fd560a
Update description
Kingwl Jul 21, 2020
94187c7
Add codefix
Kingwl Aug 19, 2020
2b57fbd
simplify code
Kingwl Aug 19, 2020
3a2286b
Merge branch 'master' into exprement-override
Kingwl Aug 19, 2020
d34afb9
accept baseline
Kingwl Aug 19, 2020
b4614d1
Update desc
Kingwl Aug 21, 2020
1ef034d
Accept baseline
Kingwl Aug 21, 2020
aebfb28
Add override completions
Kingwl Aug 24, 2020
7753983
filter out implements field in override context
Kingwl Aug 24, 2020
5c04ccc
fix tests
Kingwl Aug 24, 2020
add16c9
Add parameter property check
Kingwl Aug 24, 2020
5316e2f
Accept baseline
Kingwl Aug 24, 2020
f36fede
acept baseline
Kingwl Aug 24, 2020
811bd1e
Add parameter property to declaration code action
Kingwl Aug 25, 2020
d0f5095
Add quickfix for override parameter property
Kingwl Aug 25, 2020
dd51815
Merge branch 'master' into exprement-override
Kingwl Sep 1, 2020
22bb09d
fix code style
Kingwl Sep 3, 2020
eee3b77
Add override with interface tests
Kingwl Sep 3, 2020
f94e93c
Add more cases about modifier position
Kingwl Sep 3, 2020
74f14c3
Merge branch 'master' into exprement-override
Kingwl Sep 14, 2020
e35ee17
rename flag
Kingwl Sep 14, 2020
d8fda5f
rename flags
Kingwl Sep 14, 2020
18434fd
Added tests.
DanielRosenwasser Sep 14, 2020
5ab5a7f
Accepted baselines.
DanielRosenwasser Sep 15, 2020
f52822a
Always issue errors for unnecessary 'override' modifiers.
DanielRosenwasser Sep 15, 2020
48c23a5
Accepted baselines.
DanielRosenwasser Sep 15, 2020
a3f0443
Merge branch 'master' into exprement-override
Kingwl Sep 15, 2020
cdd0739
Override perf (#4)
Kingwl Sep 15, 2020
8e53ad3
Merge branch 'master' into exprement-override
Kingwl Sep 16, 2020
827bc95
Do not issue error if implement abstract
Kingwl Sep 16, 2020
618f883
Add abstract-spec check
Kingwl Sep 16, 2020
bc4d758
Avoid override dead lock
Kingwl Sep 16, 2020
47296d6
Add more case
Kingwl Sep 16, 2020
5d19a90
Add codefix for new error
Kingwl Sep 16, 2020
68e1440
Fix error message
Kingwl Sep 16, 2020
82109e9
Merge branch 'master' into exprement-override
Kingwl Oct 30, 2020
2552495
Add jsdoc override tag (#6)
Kingwl Nov 2, 2020
cf5dc7e
Override jsdoc tag (#7)
Kingwl Nov 2, 2020
b65d244
Disallow codefix in js
Kingwl Nov 2, 2020
84cc69d
Merge branch 'master' into exprement-override
Kingwl Nov 5, 2020
6d89a7a
update baseline
Kingwl Nov 5, 2020
062f149
update baseline
Kingwl Nov 5, 2020
feb9093
Omit override in d.ts
Kingwl Nov 5, 2020
0c09a2e
Add more case in js
Kingwl Nov 5, 2020
3cf3c28
Accept baseline
Kingwl Nov 5, 2020
d874ae8
fix override js test
Kingwl Nov 6, 2020
e361ddc
Merge branch 'master' into exprement-override
Kingwl Dec 31, 2020
40da344
Merge branch 'master' into exprement-override
Kingwl Jan 7, 2021
f9384bc
fix crlf
Kingwl Jan 7, 2021
eea8259
Revert merge conflict changes
Kingwl Jan 7, 2021
ff3cbc1
Accept baseline
Kingwl Jan 7, 2021
a3766d2
Avoid space
Kingwl Jan 7, 2021
e2c245e
Merge branch 'master' into exprement-override
Kingwl Feb 4, 2021
8f3dcb9
Merge branch 'master' into exprement-override
Kingwl Mar 5, 2021
1db64fb
Fix CR issues
Kingwl Mar 5, 2021
71c00d5
Merge branch 'master' into exprement-override
Kingwl Mar 8, 2021
e3c0993
Accept baseline
Kingwl Mar 8, 2021
89517a0
Fix typo and add more check
Kingwl Mar 9, 2021
6c8d00d
Fix error name
Kingwl Mar 9, 2021
bbfb7eb
Merge branch 'master' into exprement-override
Kingwl Mar 10, 2021
4575b5a
Merge branch 'master' into exprement-override
Kingwl Mar 26, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
update baseline
  • Loading branch information
Kingwl committed Jul 21, 2020
commit 43d9f701ec6596d804fb84cc313deba1c1c71d38
5 changes: 3 additions & 2 deletions src/compiler/checker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34319,7 +34319,8 @@ namespace ts {
checkClassForDuplicateDeclarations(node);

// Only check for reserved static identifiers on non-ambient context.
if (!(node.flags & NodeFlags.Ambient)) {
const nodeInAmbientContext = !!(node.flags & NodeFlags.Ambient)
if (!nodeInAmbientContext) {
checkClassForStaticPropertyNameConflicts(node);
}

Expand Down Expand Up @@ -34375,7 +34376,7 @@ namespace ts {
}
}

if (compilerOptions.pedanticOverride) {
if (compilerOptions.pedanticOverride && !nodeInAmbientContext) {
issueMemberWithOverride(node, type, typeWithThis);
}

Expand Down
11 changes: 8 additions & 3 deletions tests/baselines/reference/override3.errors.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
tests/cases/conformance/override/override3.ts(7,5): error TS4113: Method must have override modifier because it's override the base class 'B'.
tests/cases/conformance/override/override3.ts(22,5): error TS4113: Method must have override modifier because it's override the base class 'D'.


==== tests/cases/conformance/override/override3.ts (1 errors) ====
Expand All @@ -9,8 +9,6 @@ tests/cases/conformance/override/override3.ts(7,5): error TS4113: Method must ha

declare class D extends B {
foo (): void;
~~~
!!! error TS4113: Method must have override modifier because it's override the base class 'B'.
override bar (): void;
}

Expand All @@ -23,4 +21,11 @@ tests/cases/conformance/override/override3.ts(7,5): error TS4113: Method must ha
override foo(): void {}
override bar(): void {}
}

class EB extends D {
foo(): void {}
~~~
!!! error TS4113: Method must have override modifier because it's override the base class 'D'.
override bar(): void {}
}

18 changes: 18 additions & 0 deletions tests/baselines/reference/override3.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ class DD extends D {
override foo(): void {}
override bar(): void {}
}

class EB extends D {
foo(): void {}
override bar(): void {}
}


//// [override3.js]
Expand Down Expand Up @@ -52,6 +57,15 @@ var DD = /** @class */ (function (_super) {
DD.prototype.bar = function () { };
return DD;
}(D));
var EB = /** @class */ (function (_super) {
__extends(EB, _super);
function EB() {
return _super !== null && _super.apply(this, arguments) || this;
}
EB.prototype.foo = function () { };
EB.prototype.bar = function () { };
return EB;
}(D));


//// [override3.d.ts]
Expand All @@ -71,3 +85,7 @@ declare class DD extends D {
override foo(): void;
override bar(): void;
}
declare class EB extends D {
foo(): void;
override bar(): void;
}
11 changes: 11 additions & 0 deletions tests/baselines/reference/override3.symbols
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,14 @@ class DD extends D {
>bar : Symbol(DD.bar, Decl(override3.ts, 16, 27))
}

class EB extends D {
>EB : Symbol(EB, Decl(override3.ts, 18, 1))
>D : Symbol(D, Decl(override3.ts, 3, 1))

foo(): void {}
>foo : Symbol(EB.foo, Decl(override3.ts, 20, 20))

override bar(): void {}
>bar : Symbol(EB.bar, Decl(override3.ts, 21, 18))
}

11 changes: 11 additions & 0 deletions tests/baselines/reference/override3.types
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,14 @@ class DD extends D {
>bar : () => void
}

class EB extends D {
>EB : EB
>D : D

foo(): void {}
>foo : () => void

override bar(): void {}
>bar : () => void
}

17 changes: 17 additions & 0 deletions tests/baselines/reference/override5.errors.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
tests/cases/conformance/override/override5.ts(9,22): error TS4114: Override modifier cannot be used with declare modifier.


==== tests/cases/conformance/override/override5.ts (1 errors) ====
class B {
p1: number = 1;
p2: number = 2;
}

class D extends B{
declare p1: number

override declare p2: number
~~
!!! error TS4114: Override modifier cannot be used with declare modifier.
}

52 changes: 52 additions & 0 deletions tests/baselines/reference/override5.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
//// [override5.ts]
class B {
p1: number = 1;
p2: number = 2;
}

class D extends B{
declare p1: number

override declare p2: number
}


//// [override5.js]
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var B = /** @class */ (function () {
function B() {
this.p1 = 1;
this.p2 = 2;
}
return B;
}());
var D = /** @class */ (function (_super) {
__extends(D, _super);
function D() {
return _super !== null && _super.apply(this, arguments) || this;
}
return D;
}(B));


//// [override5.d.ts]
declare class B {
p1: number;
p2: number;
}
declare class D extends B {
p1: number;
override p2: number;
}
22 changes: 22 additions & 0 deletions tests/baselines/reference/override5.symbols
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
=== tests/cases/conformance/override/override5.ts ===
class B {
>B : Symbol(B, Decl(override5.ts, 0, 0))

p1: number = 1;
>p1 : Symbol(B.p1, Decl(override5.ts, 0, 9))

p2: number = 2;
>p2 : Symbol(B.p2, Decl(override5.ts, 1, 19))
}

class D extends B{
>D : Symbol(D, Decl(override5.ts, 3, 1))
>B : Symbol(B, Decl(override5.ts, 0, 0))

declare p1: number
>p1 : Symbol(D.p1, Decl(override5.ts, 5, 18))

override declare p2: number
>p2 : Symbol(D.p2, Decl(override5.ts, 6, 22))
}

24 changes: 24 additions & 0 deletions tests/baselines/reference/override5.types
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
=== tests/cases/conformance/override/override5.ts ===
class B {
>B : B

p1: number = 1;
>p1 : number
>1 : 1

p2: number = 2;
>p2 : number
>2 : 2
}

class D extends B{
>D : D
>B : B

declare p1: number
>p1 : number

override declare p2: number
>p2 : number
}

5 changes: 5 additions & 0 deletions tests/cases/conformance/override/override3.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,8 @@ class DD extends D {
override foo(): void {}
override bar(): void {}
}

class EB extends D {
foo(): void {}
override bar(): void {}
}