blob: 8622224336d090372d05e4b9a9882b994c72bdcd [file] [log] [blame]
// casts
public class a {
void f(i ii) {
boolean b;
b = <error descr="Inconvertible types; cannot cast 'int' to 'a'">2 instanceof a</error>;
b = <error descr="Inconvertible types; cannot cast 'null' to 'int'">null instanceof int</error>;
b = <error descr="Inconvertible types; cannot cast 'c3' to 'java.lang.Boolean'">(c3)null instanceof Boolean</error>;
b = ii instanceof i;
b = ((c2)ii) instanceof c4;
b = null instanceof a;
b = ii instanceof c3;
b = Boolean.valueOf("true") instanceof Boolean;
b = new Long(3) instanceof Number;
b = this instanceof a;
b = ii instanceof a;
b = this instanceof i;
// casts
c2 c2i = null;
c3 c3i = null;
c4 c4i = null;
Object o;
c4i = <error descr="Inconvertible types; cannot cast 'a' to 'c4'">(c4) this</error>;
o = <error descr="Inconvertible types; cannot cast 'c2' to 'boolean'">(boolean) c2i</error>;
o = <error descr="Inconvertible types; cannot cast 'c3' to 'java.lang.Integer'">(Integer) c3i</error>;
o = <error descr="Inconvertible types; cannot cast 'c2' to 'a'">(a) c2i</error>;
o = <error descr="Inconvertible types; cannot cast 'c3' to 'int'">(int) c3i</error>;
o = (a) ii;
o = (i) c4i; //cast to interface
o = (c3) c2i;
o = (c3) c3i;
o = (c3) c4i;
o = (Object) ii;
o = (iunrelated) ii;
o = (iunrelated) c2i;
o = (c4) c2i;
o = (c4) ii;
o = <error descr="Inconvertible types; cannot cast 'i' to 'c5'">(c5) ii</error>;
int[] ai = null;
o = <error descr="Inconvertible types; cannot cast 'int[]' to 'byte[]'">(byte[])ai</error>;
o = <error descr="Inconvertible types; cannot cast 'int[]' to 'double[]'">(double[])ai</error>;
c3[] ac3i = null;
o = ac3i;
o = (c4[])ac3i;
o = (i[])ac3i;
Object[] results = null;
int index = (<error descr="Inconvertible types; cannot cast 'java.lang.Object[]' to 'java.lang.Integer'">(Integer) results</error>).intValue();
// arrays and Serializable/Cloneable/Object
int[] ai2 = (int[])o;
Cloneable cloneable = null;
ai2 = (int[]) cloneable;
java.io.Serializable serializable = null;
ai2 = (int[]) serializable;
}
}
interface iunrelated {}
interface i {}
class c2 implements i {
public c2() {}
public void f() {}
protected void g() {}
}
class c3 extends c2 {
protected c3() {}
private int g(int k) { return 0; }
}
final class c4 extends c3 {
private c4() {
int[] a=new int[3];
Cloneable s=a;
java.io.Serializable ss = a;
}
}
final class c5 {}
// clashing interfaces
interface A {
void g();
}
interface B {
int g();
}
interface BB extends B {
}
class Foo {
void f(A a) {
B b = <error descr="Inconvertible types; cannot cast 'A' to 'B'">(B) a</error>;
BB b2 = <error descr="Inconvertible types; cannot cast 'A' to 'BB'">(BB) a</error>;
A a2 = <error descr="Inconvertible types; cannot cast 'BB' to 'A'">(A) b2</error>;
}
}