| /* |
| * @test /nodynamiccopyright/ |
| * @bug 7015430 |
| * |
| * @summary Incorrect thrown type determined for unchecked invocations |
| * @author Daniel Smith |
| * @compile/fail/ref=T7015430_1.out -source 7 -Xlint:-options,unchecked -XDrawDiagnostics T7015430.java |
| * @compile/fail/ref=T7015430_2.out -Xlint:unchecked -XDrawDiagnostics T7015430.java |
| * |
| */ |
| |
| class T7015430 { |
| static <E extends Exception> Iterable<E> empty(Iterable<E> arg) throws E { |
| return null; |
| } |
| |
| <E extends Exception> T7015430(Iterable<E> arg) throws E { } |
| |
| static <E extends Exception> Iterable<E> empty2(Iterable x) throws E { |
| return null; |
| } |
| |
| static class Foo<X extends Exception> { |
| Foo() throws X {} |
| } |
| |
| /** |
| * Method invocation, no unchecked |
| * inferred: RuntimeException - should pass |
| */ |
| void m1() { |
| Iterable<RuntimeException> i = java.util.Collections.emptyList(); |
| empty(i); |
| } |
| |
| /** |
| * Method invocation, unchecked, inferred arguments |
| * inferred: Exception - should fail |
| */ |
| void m2() { |
| Iterable i = java.util.Collections.EMPTY_LIST; |
| empty(i); |
| } |
| |
| /** |
| * Method invocation, unchecked, explicit arguments |
| * inferred: RuntimeException - should pass |
| */ |
| void m3() { |
| Iterable i = java.util.Collections.EMPTY_LIST; |
| T7015430.<RuntimeException>empty(i); |
| } |
| |
| /** |
| * Constructor invocation, no unchecked |
| * inferred: RuntimeException - should pass |
| */ |
| void m4() { |
| Iterable<RuntimeException> i = java.util.Collections.emptyList(); |
| new T7015430(i); |
| } |
| |
| /** |
| * Constructor invocation, unchecked, inferred arguments |
| * inferred: Exception - should fail |
| */ |
| void m5() { |
| Iterable i = java.util.Collections.EMPTY_LIST; |
| new T7015430(i); |
| } |
| |
| /** |
| * Constructor invocation, unchecked, explicit arguments |
| * inferred: RuntimeException - should pass |
| */ |
| void m6() { |
| Iterable i = java.util.Collections.EMPTY_LIST; |
| new <RuntimeException>T7015430(i); |
| } |
| |
| /** |
| * Method invocation, no unchecked, inferred arguments |
| * inferred: RuntimeException - should pass |
| */ |
| void m7() { |
| Iterable i = java.util.Collections.EMPTY_LIST; |
| Iterable<RuntimeException> e = empty2(i); |
| } |
| |
| /** |
| * Method invocation, no unchecked, inferred arguments |
| * inferred: Exception - should fail |
| */ |
| void m8() { |
| Iterable i = java.util.Collections.EMPTY_LIST; |
| empty2(i); |
| } |
| |
| /** |
| * Constructor invocation, unchecked, explicit arguments |
| * inferred: RuntimeException - should pass |
| */ |
| void m9() { |
| Iterable i = java.util.Collections.EMPTY_LIST; |
| new <RuntimeException> T7015430(i); |
| } |
| |
| /** |
| * Constructor invocation, unchecked, inferred arguments |
| * inferred: Exception - should fail |
| */ |
| void m10() { |
| Iterable i = java.util.Collections.EMPTY_LIST; |
| new T7015430(i); |
| } |
| |
| /** |
| * Constructor invocation, no unchecked, inferred arguments (diamond) |
| * inferred: RuntimeException - should pass |
| */ |
| void m11() { |
| Foo<RuntimeException> o = new Foo<>(); |
| } |
| |
| /** |
| * Constructor invocation, no unchecked, inferred arguments (diamond) |
| * inferred: Exception - should fail |
| */ |
| void m12() { |
| new Foo<>(); |
| } |
| } |