blob: ec3cf454bfdd7a4f9e228d4bb613ee86230a47e3 [file] [log] [blame]
// The test cases GenericNull, FieldAccessTest, and InferTypeArgs often fail together.
// See the comments at GenericNull for some tips about what might be wrong.
public class FieldAccessTest {
class MyClass {
Object field = new Object();
}
class MyException extends RuntimeException {
Object field = new Object();
}
class MyExceptionA extends MyException {}
class MyExceptionB extends MyException {}
@SuppressWarnings("nullness")
class MyGen<T extends MyClass> {
T myClass = null;
}
void test(Object o, MyGen raw) {
// Raw type field access:
raw.myClass.field = new Object();
// Intersection type field access
Object a = ((MyClass & Cloneable) o).field;
try {
} catch (MyExceptionA | MyExceptionB ex) {
// Union type field access
ex.field = new Object();
}
}
void classLiterals() {
Class<?> c = byte.class;
Class<?> d = void.class;
}
}