| /** | |
| * @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) {} | |
| } |