blob: d3c9ba2436330287e0242fb82424fe74f8684cda [file] [log] [blame]
// Test case for issue #775
// https://github.com/typetools/checker-framework/issues/775
public class UnionCrash {
void foo(MyInterface<Throwable> param) throws Throwable {
try {
bar();
} catch (MyExceptionA | MyExceptionB ex1) {
try {
bar();
} catch (SubMyExceptionA | MyExceptionB ex2) {
// This call cause a crash
typeVar(ex1, ex2);
}
}
}
<T extends Throwable> void typeVar(T param, T param2) {}
void bar() throws MyExceptionA, MyExceptionB {}
interface MyInterface<T> {}
class MyExceptionA extends Throwable implements Cloneable, MyInterface<String> {}
class MyExceptionB extends Throwable implements Cloneable, MyInterface<String> {}
class SubMyExceptionA extends MyExceptionA {}
}