langtools/test/tools/javac/generics/inference/8170410/T8170410.java
author mcimadamore
Mon, 05 Dec 2016 19:00:56 +0000
changeset 42416 1cfad0990b99
permissions -rw-r--r--
8170410: inference: javac doesn't implement 18.2.5 correctly Summary: javac does not generate constraints of the kind 'throws alpha' as described in the spec Reviewed-by: vromero, dlsmith
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
42416
1cfad0990b99 8170410: inference: javac doesn't implement 18.2.5 correctly
mcimadamore
parents:
diff changeset
     1
/*
1cfad0990b99 8170410: inference: javac doesn't implement 18.2.5 correctly
mcimadamore
parents:
diff changeset
     2
 * @test
1cfad0990b99 8170410: inference: javac doesn't implement 18.2.5 correctly
mcimadamore
parents:
diff changeset
     3
 * @bug 8170410
1cfad0990b99 8170410: inference: javac doesn't implement 18.2.5 correctly
mcimadamore
parents:
diff changeset
     4
 * @summary inference: javac doesn't implement 18.2.5 correctly
1cfad0990b99 8170410: inference: javac doesn't implement 18.2.5 correctly
mcimadamore
parents:
diff changeset
     5
 * @compile T8170410.java
1cfad0990b99 8170410: inference: javac doesn't implement 18.2.5 correctly
mcimadamore
parents:
diff changeset
     6
 */
1cfad0990b99 8170410: inference: javac doesn't implement 18.2.5 correctly
mcimadamore
parents:
diff changeset
     7
1cfad0990b99 8170410: inference: javac doesn't implement 18.2.5 correctly
mcimadamore
parents:
diff changeset
     8
class T8170410 {
1cfad0990b99 8170410: inference: javac doesn't implement 18.2.5 correctly
mcimadamore
parents:
diff changeset
     9
    interface CheckedSupplier<T extends Throwable, R> {
1cfad0990b99 8170410: inference: javac doesn't implement 18.2.5 correctly
mcimadamore
parents:
diff changeset
    10
        R get() throws T;
1cfad0990b99 8170410: inference: javac doesn't implement 18.2.5 correctly
mcimadamore
parents:
diff changeset
    11
    }
1cfad0990b99 8170410: inference: javac doesn't implement 18.2.5 correctly
mcimadamore
parents:
diff changeset
    12
1cfad0990b99 8170410: inference: javac doesn't implement 18.2.5 correctly
mcimadamore
parents:
diff changeset
    13
    static <T extends Throwable, R> CheckedSupplier<T, R> checked(CheckedSupplier<T, R> checkedSupplier) {
1cfad0990b99 8170410: inference: javac doesn't implement 18.2.5 correctly
mcimadamore
parents:
diff changeset
    14
        return checkedSupplier;
1cfad0990b99 8170410: inference: javac doesn't implement 18.2.5 correctly
mcimadamore
parents:
diff changeset
    15
    }
1cfad0990b99 8170410: inference: javac doesn't implement 18.2.5 correctly
mcimadamore
parents:
diff changeset
    16
1cfad0990b99 8170410: inference: javac doesn't implement 18.2.5 correctly
mcimadamore
parents:
diff changeset
    17
    static void test() {
1cfad0990b99 8170410: inference: javac doesn't implement 18.2.5 correctly
mcimadamore
parents:
diff changeset
    18
        checked(() -> null).get();
1cfad0990b99 8170410: inference: javac doesn't implement 18.2.5 correctly
mcimadamore
parents:
diff changeset
    19
        checked(T8170410::m).get();
1cfad0990b99 8170410: inference: javac doesn't implement 18.2.5 correctly
mcimadamore
parents:
diff changeset
    20
    }
1cfad0990b99 8170410: inference: javac doesn't implement 18.2.5 correctly
mcimadamore
parents:
diff changeset
    21
1cfad0990b99 8170410: inference: javac doesn't implement 18.2.5 correctly
mcimadamore
parents:
diff changeset
    22
    static String m() { return ""; }
1cfad0990b99 8170410: inference: javac doesn't implement 18.2.5 correctly
mcimadamore
parents:
diff changeset
    23
}