115 lines
3.9 KiB
Plaintext
115 lines
3.9 KiB
Plaintext
==== tests/cases/conformance/expressions/superCalls/errorSuperCalls.ts (20 errors) ====
|
|
//super call in class constructor with no base type
|
|
class NoBase {
|
|
constructor() {
|
|
super();
|
|
~~~~~
|
|
!!! error TS2335: 'super' can only be referenced in a derived class.
|
|
}
|
|
|
|
//super call in class member function with no base type
|
|
fn() {
|
|
super();
|
|
~~~~~
|
|
!!! error TS2335: 'super' can only be referenced in a derived class.
|
|
}
|
|
|
|
//super call in class accessor (get and set) with no base type
|
|
get foo() {
|
|
~~~
|
|
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
|
|
super();
|
|
~~~~~
|
|
!!! error TS2335: 'super' can only be referenced in a derived class.
|
|
return null;
|
|
}
|
|
set foo(v) {
|
|
~~~
|
|
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
|
|
super();
|
|
~~~~~
|
|
!!! error TS2335: 'super' can only be referenced in a derived class.
|
|
}
|
|
|
|
//super call in class member initializer with no base type
|
|
p = super();
|
|
~~~~~
|
|
!!! error TS2335: 'super' can only be referenced in a derived class.
|
|
|
|
//super call in static class member function with no base type
|
|
static fn() {
|
|
super();
|
|
~~~~~
|
|
!!! error TS2335: 'super' can only be referenced in a derived class.
|
|
}
|
|
|
|
//super call in static class member initializer with no base type
|
|
static k = super();
|
|
~~~~~
|
|
!!! error TS2335: 'super' can only be referenced in a derived class.
|
|
|
|
//super call in static class accessor (get and set) with no base type
|
|
static get q() {
|
|
~
|
|
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
|
|
super();
|
|
~~~~~
|
|
!!! error TS2335: 'super' can only be referenced in a derived class.
|
|
return null;
|
|
}
|
|
static set q(n) {
|
|
~
|
|
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
|
|
super();
|
|
~~~~~
|
|
!!! error TS2335: 'super' can only be referenced in a derived class.
|
|
}
|
|
}
|
|
|
|
class Base<T> { private n: T; }
|
|
class Derived<T> extends Base<T> {
|
|
//super call with type arguments
|
|
constructor() {
|
|
super<string>();
|
|
~
|
|
!!! error TS1034: 'super' must be followed by an argument list or member access.
|
|
super();
|
|
}
|
|
}
|
|
|
|
|
|
class OtherBase {
|
|
private n: string;
|
|
}
|
|
|
|
class OtherDerived extends OtherBase {
|
|
//super call in class member initializer of derived type
|
|
t = super();
|
|
~~~~~
|
|
!!! error TS2337: Super calls are not permitted outside constructors or in nested functions inside constructors
|
|
|
|
fn() {
|
|
//super call in class member function of derived type
|
|
super();
|
|
~~~~~
|
|
!!! error TS2337: Super calls are not permitted outside constructors or in nested functions inside constructors
|
|
}
|
|
|
|
//super call in class accessor (get and set) of derived type
|
|
get foo() {
|
|
~~~
|
|
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
|
|
super();
|
|
~~~~~
|
|
!!! error TS2337: Super calls are not permitted outside constructors or in nested functions inside constructors
|
|
return null;
|
|
}
|
|
set foo(n) {
|
|
~~~
|
|
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
|
|
super();
|
|
~~~~~
|
|
!!! error TS2337: Super calls are not permitted outside constructors or in nested functions inside constructors
|
|
}
|
|
}
|
|
|