test/tools/javac/lambda/8016177/T8016177a.java

Mon, 16 Sep 2013 14:13:44 +0200

author
jlahoda
date
Mon, 16 Sep 2013 14:13:44 +0200
changeset 2028
4ce8148ffc4f
parent 0
959103a6100f
permissions
-rw-r--r--

8021112: Spurious unchecked warning reported by javac
6480588: No way to suppress deprecation warnings when implementing deprecated interface
Summary: Fixing DeferredLintHandler configuration, so lint warnings are reported with correct @SuppressWarnings settings
Reviewed-by: jjg, vromero

     1 /*
     2  * @test /nodynamiccopyright/
     3  * @bug 8016177 8016178
     4  * @summary structural most specific and stuckness
     5  * @compile/fail/ref=T8016177a.out -XDrawDiagnostics T8016177a.java
     6  */
     7 import java.util.List;
     9 class T8016177a {
    11     interface ToIntFunction<X> {
    12         int m(X x);
    13     }
    15     interface Function<X, Y> {
    16         Y m(X x);
    17     }
    19     <T,R> void m1(List<T> s, Function<T,R> f) { }
    20     <T,R> void m1(List<T> s, ToIntFunction<T> f) { }
    22     <T,R> List<R> m2(List<T> s, Function<T,R> f) { return null; }
    23     <T,R> List<R> m2(List<T> s, ToIntFunction<T> f) { return null; }
    25     <T,R> List<T> m3(List<T> s, Function<T,R> f) { return null; }
    26     <T,R> List<R> m3(List<T> s, ToIntFunction<T> f) { return null; }
    28     <T,R> List<T> m4(List<T> s, Function<T,R> f) { return null; }
    29     <T,R> List<T> m4(List<T> s, ToIntFunction<T> f) { return null; }
    31     <T,R> List<R> m5(List<T> s, Function<T,R> f) { return null; }
    32     <T,R> List<T> m5(List<T> s, ToIntFunction<T> f) { return null; }
    34     <T extends R,R> List<R> m6(List<T> s, Function<T,R> f) { return null; }
    35     <T extends R,R> List<T> m6(List<T> s, ToIntFunction<T> f) { return null; }
    37     void test(List<String> ss) {
    38          m1(ss, s->s.length()); //ambiguous
    39          m2(ss, s->s.length()); //ambiguous
    40          m3(ss, s->s.length()); //ambiguous
    41          m4(ss, s->s.length()); //ambiguous
    42          m5(ss, s->s.length()); //ambiguous
    43          m6(ss, s->s.length()); //ambiguous
    44     }
    45 }

mercurial