57963
|
1 |
/**
|
|
2 |
* @test /nodynamiccopyright/
|
|
3 |
* @bug 8230105
|
|
4 |
* @summary Ensuring speculative analysis on behalf of Analyzers works reasonably.
|
|
5 |
* @compile/ref=AnalyzerNotQuiteSpeculative.out -XDfind=diamond -XDrawDiagnostics AnalyzerNotQuiteSpeculative.java
|
|
6 |
*/
|
|
7 |
public class AnalyzerNotQuiteSpeculative {
|
|
8 |
private void test() {
|
|
9 |
Subclass1 c1 = null;
|
|
10 |
Subclass2 c2 = null;
|
|
11 |
Base b = null;
|
|
12 |
|
|
13 |
t(new C<Base>(c1).set(c2));
|
|
14 |
t(new C<Base>(b).set(c2));
|
|
15 |
}
|
|
16 |
|
|
17 |
public static class Base {}
|
|
18 |
public static class Subclass1 extends Base {}
|
|
19 |
public static class Subclass2 extends Base {}
|
|
20 |
public class C<T extends Base> {
|
|
21 |
public C(T t) {}
|
|
22 |
public C<T> set(T t) { return this; }
|
|
23 |
}
|
|
24 |
<T extends Base> void t(C<? extends Base> l) {}
|
|
25 |
}
|