Files
openide/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/CtrCallIsFirst.java
Bas Leijdekkers 176a8e0bec Java: statements before super() part I (IDEA-340403)
GitOrigin-RevId: 7307a469267746ed3432acd1e73c894ccc87a254
2023-12-28 17:39:19 +00:00

69 lines
1.4 KiB
Java

// call to super must be first
class a {
a() {}
a(int i) {}
}
class b extends a {
b() {
int i = 3;
<error descr="Call to 'super()' must be first statement in constructor body">super()</error>;
}
b(int i) {
this();
<error descr="Only one explicit constructor call allowed in constructor">super(2)</error>;
}
b(char i) {
super(4);
<error descr="Only one explicit constructor call allowed in constructor">this()</error>;
}
b(String s) {
try {
<error descr="Call to 'super()' must be a top level statement in constructor body">super(2)</error>;
}
finally {
}
}
b(String s, int i) {
{
<error descr="Call to 'super()' must be a top level statement in constructor body">super(2)</error>;
}
}
void f() {
<error descr="Call to 'super()' only allowed in constructor body">super()</error>;
}
void g() {
<error descr="Call to 'this()' only allowed in constructor body">this()</error>;
}
}
class Z {
Z() {
Object x = <error descr="Call to 'super()' must be a top level statement in constructor body">super()</error>;
}
}
class O extends A.B
{
public O(A a)
{
int i = 0;
<error descr="Call to 'a.super()' must be first statement in constructor body">a.super()</error>;
}
public O(A a,int i)
{
a.super();
i = 0;
}
}
class A
{
class B
{
class C{}
}
}