Remove property-override-method error (#34494)

Originally removed incorrectly along with method-override-property error
in #24343, then both were restored in #33509. Only
method-override-property should be an error, since it doesn't actually
work at runtime.
This commit is contained in:
Nathan Shively-Sanders 2019-10-15 14:11:51 -07:00 committed by GitHub
parent d8d5ead83b
commit ab56cc0c6b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 4 additions and 79 deletions

View File

@ -31692,15 +31692,13 @@ namespace ts {
}
}
else if (isPrototypeProperty(base)) {
if (isPrototypeProperty(derived)) {
// method is overridden with method -- correct case
if (isPrototypeProperty(derived) || derived.flags & SymbolFlags.Property) {
// method is overridden with method or property -- correct case
continue;
}
else if (derived.flags & SymbolFlags.Accessor) {
errorMessage = Diagnostics.Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor;
}
else {
errorMessage = Diagnostics.Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_property;
Debug.assert(!!(derived.flags & SymbolFlags.Accessor));
errorMessage = Diagnostics.Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor;
}
}
else if (base.flags & SymbolFlags.Accessor) {

View File

@ -1561,10 +1561,6 @@
"category": "Error",
"code": 2423
},
"Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member property.": {
"category": "Error",
"code": 2424
},
"Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function.": {
"category": "Error",
"code": 2425

View File

@ -1,25 +0,0 @@
tests/cases/compiler/a.js(14,10): error TS2424: Class 'A' defines instance member function 'foo', but extended class 'B' defines it as instance member property.
==== tests/cases/compiler/a.js (1 errors) ====
// @ts-check
class A {
constructor() {
}
foo() {
return 4;
}
}
class B extends A {
constructor() {
super();
this.foo = () => 3;
~~~
!!! error TS2424: Class 'A' defines instance member function 'foo', but extended class 'B' defines it as instance member property.
}
}
const i = new B();
i.foo();

View File

@ -1,15 +0,0 @@
tests/cases/compiler/inheritanceMemberPropertyOverridingMethod.ts(8,5): error TS2424: Class 'a' defines instance member function 'x', but extended class 'b' defines it as instance member property.
==== tests/cases/compiler/inheritanceMemberPropertyOverridingMethod.ts (1 errors) ====
class a {
x() {
return "20";
}
}
class b extends a {
x: () => string;
~
!!! error TS2424: Class 'a' defines instance member function 'x', but extended class 'b' defines it as instance member property.
}

View File

@ -1,13 +0,0 @@
tests/cases/conformance/classes/propertyMemberDeclarations/propertyOverridesMethod.ts(5,5): error TS2424: Class 'A' defines instance member function 'm', but extended class 'B' defines it as instance member property.
==== tests/cases/conformance/classes/propertyMemberDeclarations/propertyOverridesMethod.ts (1 errors) ====
class A {
m() { }
}
class B extends A {
m = () => 1
~
!!! error TS2424: Class 'A' defines instance member function 'm', but extended class 'B' defines it as instance member property.
}

View File

@ -1,16 +0,0 @@
tests/cases/compiler/propertyOverridingPrototype.ts(7,5): error TS2424: Class 'Base' defines instance member function 'foo', but extended class 'Derived' defines it as instance member property.
==== tests/cases/compiler/propertyOverridingPrototype.ts (1 errors) ====
class Base {
foo() {
}
}
class Derived extends Base {
foo: () => { };
~~~
!!! error TS2424: Class 'Base' defines instance member function 'foo', but extended class 'Derived' defines it as instance member property.
}