| /** |
| * @test /nodynamiccopyright/ |
| * @bug 8230105 |
| * @summary Ensuring speculative analysis on behalf of Analyzers works reasonably. |
| * @compile/ref=AnalyzerNotQuiteSpeculative.out -XDfind=diamond -XDrawDiagnostics AnalyzerNotQuiteSpeculative.java |
| */ |
| public class AnalyzerNotQuiteSpeculative { |
| private void test() { |
| Subclass1 c1 = null; |
| Subclass2 c2 = null; |
| Base b = null; |
| |
| t(new C<Base>(c1).set(c2)); |
| t(new C<Base>(b).set(c2)); |
| } |
| |
| public static class Base {} |
| public static class Subclass1 extends Base {} |
| public static class Subclass2 extends Base {} |
| public class C<T extends Base> { |
| public C(T t) {} |
| public C<T> set(T t) { return this; } |
| } |
| <T extends Base> void t(C<? extends Base> l) {} |
| } |