blob: fb12c28646ed1226bd05363f1aa9278cd10c989a [file] [log] [blame]
// unhandled exceptions from superclases/etc
import java.io.*;
import java.net.*;
class a {
a(int i) {}
}
// super ctr
<error descr="There is no default constructor available in 'a'">class b extends a</error> {
}
class c extends a {
<error descr="There is no default constructor available in 'a'">c()</error> {
}
c(String s) {
this(1);
}
c(int i) {
super(i);
}
}
class A {
private A() {}
class B extends A {}
}
class A1 {
A1() throws Exception {}
}
<error descr="Unhandled exception: java.lang.Exception">class B1 extends A1</error>
{}
class A2 extends A1 {
<error descr="Unhandled exception: java.lang.Exception">A2()</error> {}
}
// exception thrown from within anonymous
class A3 {
void f() throws Exception {
new A3() {
int g() throws Exception {
return 0;
}
int k=g();
};
}
}
// in initializer
class Test{
final String s = <error descr="Unhandled exception: java.lang.Exception">makeString();</error>
String makeString() throws Exception {throw new Exception();}
}
class C1 {
public C1() throws IllegalArgumentException {}
}
class C2 extends C1 {
public C2() {
}
}
// private but accessible base ctr
class D1 {
private D1() {}
static class D2 extends D1 {
D2() {
System.out.println("!");
}
}
public static void main(String[] args) {
new D2();
new D1();
}
}
///////////////
class MyClass
{
public MyClass() throws Exception
{
//default ctor throws exc
}
public MyClass(Object anObject)
{
//other ctor does not
}
}
class MyClass2 extends MyClass
{
//HERE good code is marked red
public MyClass2 (Object anObject)
{
super(anObject);
}
}
class ThrowCC {
public void test3() throws Exception {
Throwable exception = null;
<error descr="Unhandled exception: java.lang.Throwable">throw exception;</error>
}
}
//Inaccessible field
class J {
int t = new I1().i; //access object class is OK
int v = new I2().<error descr="'i' has private access in 'J.I1'">i</error>; //bad access object class
class I1 {
class I3 {
int t = i; //visibility OK
}
private int i;
}
class I2 extends I1 {
int j = <error descr="'i' has private access in 'J.I1'">i</error>; //We don't see i from baser class
}
static I1 i1;
class I4 {
int u = i1.i; //OK, i is visible since the toplevel class is the same
}
}
class Test3 {
private class Child extends Parent {
}
private class Parent extends SuperParent {
}
private class SuperParent {
private int field = 1;
}
public void foo() {
Child child = new Child();
int i = child.<error descr="'field' has private access in 'Test3.SuperParent'">field</error>;
}
}
//IDEADEV-4455: this code is OK
class XYZ {
private class Inner extends XYZ {
private final String s;
Inner(String _s) {
this.s = _s;
}
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
final Inner y = (Inner) o;
if (s != null ? !s.equals(y.s) : y.s != null) return false;
return true;
}
}
}
//end of IDEADEV-4455