22 lines
681 B
Java
22 lines
681 B
Java
|
/*
|
||
|
* @test /nodynamiccopyright/
|
||
|
* @bug 8164399
|
||
|
* @summary inference of thrown variable does not work correctly
|
||
|
* @compile/fail/ref=T8164399b.out -XDrawDiagnostics T8164399b.java
|
||
|
*/
|
||
|
class T8164399b<X extends Throwable> {
|
||
|
<T extends Throwable> void m(Class<? super T> arg) throws T {}
|
||
|
<T extends X> void g() throws T {}
|
||
|
|
||
|
void test() {
|
||
|
m(RuntimeException.class); // ok
|
||
|
m(Exception.class); // error
|
||
|
m(Throwable.class); // ok
|
||
|
m(java.io.Serializable.class); // error
|
||
|
m(Object.class); // error
|
||
|
m(Runnable.class); // error
|
||
|
T8164399b<? super Exception> x = null;
|
||
|
x.g(); // expected: ok; actual: error
|
||
|
}
|
||
|
}
|