File: derivedClassParameterProperties.errors.txt

package info (click to toggle)
node-typescript 2.1.5-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 203,952 kB
  • ctags: 52,987
  • sloc: sh: 11; makefile: 5
file content (138 lines) | stat: -rw-r--r-- 6,028 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassParameterProperties.ts(15,5): error TS2376: A 'super' call must be the first statement in the constructor when a class contains initialized properties or has parameter properties.
tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassParameterProperties.ts(30,5): error TS2376: A 'super' call must be the first statement in the constructor when a class contains initialized properties or has parameter properties.
tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassParameterProperties.ts(47,9): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class.
tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassParameterProperties.ts(56,5): error TS2376: A 'super' call must be the first statement in the constructor when a class contains initialized properties or has parameter properties.
tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassParameterProperties.ts(57,9): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class.
tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassParameterProperties.ts(58,9): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class.
tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassParameterProperties.ts(79,5): error TS2376: A 'super' call must be the first statement in the constructor when a class contains initialized properties or has parameter properties.
tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassParameterProperties.ts(80,9): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class.
tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassParameterProperties.ts(81,9): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class.


==== tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassParameterProperties.ts (9 errors) ====
    // ordering of super calls in derived constructors matters depending on other class contents
    
    class Base {
        x: string;
    }
    
    class Derived extends Base {
        constructor(y: string) {
            var a = 1;
            super(); // ok
        }
    }
    
    class Derived2 extends Base {
        constructor(public y: string) {
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            var a = 1;
    ~~~~~~~~~~~~~~~~~~
            super(); // error
    ~~~~~~~~~~~~~~~~~~~~~~~~~
        }
    ~~~~~
!!! error TS2376: A 'super' call must be the first statement in the constructor when a class contains initialized properties or has parameter properties.
    }
    
    class Derived3 extends Base {
        constructor(public y: string) {
            super(); // ok
            var a = 1;
        }
    }
    
    class Derived4 extends Base {
        a = 1;
        constructor(y: string) {
        ~~~~~~~~~~~~~~~~~~~~~~~~
            var b = 2;
    ~~~~~~~~~~~~~~~~~~
            super(); // error
    ~~~~~~~~~~~~~~~~~~~~~~~~~
        }
    ~~~~~
!!! error TS2376: A 'super' call must be the first statement in the constructor when a class contains initialized properties or has parameter properties.
    }
    
    class Derived5 extends Base {
        a = 1;
        constructor(y: string) {
            super(); // ok
            var b = 2;
        }
    }
    
    class Derived6 extends Base {
        a: number;
        constructor(y: string) {
            this.a = 1;
            ~~~~
!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class.
            var b = 2;
            super(); // error: "super" has to be called before "this" accessing
        }
    }
    
    class Derived7 extends Base {
        a = 1;
        b: number;
        constructor(y: string) {
        ~~~~~~~~~~~~~~~~~~~~~~~~
            this.a = 3;
    ~~~~~~~~~~~~~~~~~~~
            ~~~~
!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class.
            this.b = 3;
    ~~~~~~~~~~~~~~~~~~~
            ~~~~
!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class.
            super(); // error
    ~~~~~~~~~~~~~~~~~~~~~~~~~
        }
    ~~~~~
!!! error TS2376: A 'super' call must be the first statement in the constructor when a class contains initialized properties or has parameter properties.
    }
    
    class Derived8 extends Base {
        a = 1;
        b: number;
        constructor(y: string) {
            super(); // ok
            this.a = 3;
            this.b = 3;        
        }
    }
    
    // generic cases of Derived7 and Derived8
    class Base2<T> { x: T; }
    
    class Derived9<T> extends Base2<T> {
        a = 1;
        b: number;
        constructor(y: string) {
        ~~~~~~~~~~~~~~~~~~~~~~~~
            this.a = 3;
    ~~~~~~~~~~~~~~~~~~~
            ~~~~
!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class.
            this.b = 3;
    ~~~~~~~~~~~~~~~~~~~
            ~~~~
!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class.
            super(); // error
    ~~~~~~~~~~~~~~~~~~~~~~~~~
        }
    ~~~~~
!!! error TS2376: A 'super' call must be the first statement in the constructor when a class contains initialized properties or has parameter properties.
    }
    
    class Derived10<T> extends Base2<T> {
        a = 1;
        b: number;
        constructor(y: string) {
            super(); // ok
            this.a = 3;
            this.b = 3;
        }
    }