fix(43535): preserves 'override' modifier in JavaScript output (#43536)

This commit is contained in:
Oleksandr T 2021-04-06 21:31:54 +03:00 committed by GitHub
parent a56baa7394
commit 3a22b3e701
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 285 additions and 0 deletions

View File

@ -968,6 +968,7 @@ namespace ts {
case SyntaxKind.BigIntKeyword:
case SyntaxKind.NeverKeyword:
case SyntaxKind.ObjectKeyword:
case SyntaxKind.OverrideKeyword:
case SyntaxKind.StringKeyword:
case SyntaxKind.BooleanKeyword:
case SyntaxKind.SymbolKeyword:

View File

@ -0,0 +1,45 @@
//// [override12.ts]
class A {
public m1(): number {
return 0;
}
public m2(): number {
return 0;
}
public m3(): void {}
}
class B extends A {
override m1() {
return 10;
}
override m2(): number {
return 30;
}
override m3(): void {}
}
//// [override12.js]
class A {
m1() {
return 0;
}
m2() {
return 0;
}
m3() { }
}
class B extends A {
m1() {
return 10;
}
m2() {
return 30;
}
m3() { }
}

View File

@ -0,0 +1,40 @@
=== tests/cases/conformance/override/override12.ts ===
class A {
>A : Symbol(A, Decl(override12.ts, 0, 0))
public m1(): number {
>m1 : Symbol(A.m1, Decl(override12.ts, 0, 9))
return 0;
}
public m2(): number {
>m2 : Symbol(A.m2, Decl(override12.ts, 3, 5))
return 0;
}
public m3(): void {}
>m3 : Symbol(A.m3, Decl(override12.ts, 7, 5))
}
class B extends A {
>B : Symbol(B, Decl(override12.ts, 10, 1))
>A : Symbol(A, Decl(override12.ts, 0, 0))
override m1() {
>m1 : Symbol(B.m1, Decl(override12.ts, 12, 19))
return 10;
}
override m2(): number {
>m2 : Symbol(B.m2, Decl(override12.ts, 15, 5))
return 30;
}
override m3(): void {}
>m3 : Symbol(B.m3, Decl(override12.ts, 19, 5))
}

View File

@ -0,0 +1,44 @@
=== tests/cases/conformance/override/override12.ts ===
class A {
>A : A
public m1(): number {
>m1 : () => number
return 0;
>0 : 0
}
public m2(): number {
>m2 : () => number
return 0;
>0 : 0
}
public m3(): void {}
>m3 : () => void
}
class B extends A {
>B : B
>A : A
override m1() {
>m1 : () => number
return 10;
>10 : 10
}
override m2(): number {
>m2 : () => number
return 30;
>30 : 30
}
override m3(): void {}
>m3 : () => void
}

View File

@ -0,0 +1,45 @@
//// [override12.ts]
class A {
public m1(): number {
return 0;
}
public m2(): number {
return 0;
}
public m3(): void {}
}
class B extends A {
override m1() {
return 10;
}
override m2(): number {
return 30;
}
override m3(): void {}
}
//// [override12.js]
class A {
m1() {
return 0;
}
m2() {
return 0;
}
m3() { }
}
class B extends A {
m1() {
return 10;
}
m2() {
return 30;
}
m3() { }
}

View File

@ -0,0 +1,40 @@
=== tests/cases/conformance/override/override12.ts ===
class A {
>A : Symbol(A, Decl(override12.ts, 0, 0))
public m1(): number {
>m1 : Symbol(A.m1, Decl(override12.ts, 0, 9))
return 0;
}
public m2(): number {
>m2 : Symbol(A.m2, Decl(override12.ts, 3, 5))
return 0;
}
public m3(): void {}
>m3 : Symbol(A.m3, Decl(override12.ts, 7, 5))
}
class B extends A {
>B : Symbol(B, Decl(override12.ts, 10, 1))
>A : Symbol(A, Decl(override12.ts, 0, 0))
override m1() {
>m1 : Symbol(B.m1, Decl(override12.ts, 12, 19))
return 10;
}
override m2(): number {
>m2 : Symbol(B.m2, Decl(override12.ts, 15, 5))
return 30;
}
override m3(): void {}
>m3 : Symbol(B.m3, Decl(override12.ts, 19, 5))
}

View File

@ -0,0 +1,44 @@
=== tests/cases/conformance/override/override12.ts ===
class A {
>A : A
public m1(): number {
>m1 : () => number
return 0;
>0 : 0
}
public m2(): number {
>m2 : () => number
return 0;
>0 : 0
}
public m3(): void {}
>m3 : () => void
}
class B extends A {
>B : B
>A : A
override m1() {
>m1 : () => number
return 10;
>10 : 10
}
override m2(): number {
>m2 : () => number
return 30;
>30 : 30
}
override m3(): void {}
>m3 : () => void
}

View File

@ -0,0 +1,26 @@
// @noImplicitOverride: true
// @target: es2015,esnext
class A {
public m1(): number {
return 0;
}
public m2(): number {
return 0;
}
public m3(): void {}
}
class B extends A {
override m1() {
return 10;
}
override m2(): number {
return 30;
}
override m3(): void {}
}