File: TargetType28.java

package info (click to toggle)
libnb-javaparser-java 9%2B2018-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 65,320 kB
  • sloc: java: 440,096; xml: 6,359; sh: 865; makefile: 314
file content (23 lines) | stat: -rw-r--r-- 629 bytes parent folder | download | duplicates (19)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/*
 * @test /nodynamiccopyright/
 * @bug 8003280
 * @summary Add lambda tests
 *  target type inference in a case where lambda expression returns diamond
 * @compile/fail/ref=TargetType28.out -XDrawDiagnostics TargetType28.java
 */

class TargetType28 {
    static class SuperFoo<X> {}

    static class Foo<X extends Number> extends SuperFoo<X> {}

    interface A<X, Y> {
       SuperFoo<Y> m(X x);
    }

    <Z, R> SuperFoo<R> apply(A<Z, R> ax, Z x) { return null; }

    SuperFoo<String> ls = apply(x-> new Foo<>(), 1);
    SuperFoo<Integer> li = apply(x-> new Foo<>(), 1);
    SuperFoo<?> lw = apply(x-> new Foo<>(), 1);
}