test/langtools/tools/javac/lvti/BadLocalVarInferenceTest.java
author phh
Sat, 30 Nov 2019 14:33:05 -0800
changeset 59330 5b96c12f909d
parent 47934 6373d9a0ad82
permissions -rw-r--r--
8234541: C1 emits an empty message when it inlines successfully Summary: Use "inline" as the message when successfull Reviewed-by: thartmann, mdoerr Contributed-by: navy.xliu@gmail.com

/*
 * @test /nodynamiccopyright/
 * @bug 8177466 8191834
 * @summary Add compiler support for local variable type-inference
 * @compile/fail/ref=BadLocalVarInferenceTest.out -XDrawDiagnostics BadLocalVarInferenceTest.java
 */

class BadLocalVarInferenceTest {

    interface Foo<X> {
        void m(X x);
    }

    interface Supplier<X> {
        void m(X x);
    }

    void test() {
        var x;
        var f = () -> { };
        var m = this::l;
        var g = null;
        var d = d = 1;
        var k = { 1 , 2 };
        var l = new Foo<>() { //LHS was Foo<String>
            @Override
            void m(String s) { }
        };
        var s = f(x -> { x.charAt(0); }); //LHS was String
        var t = m(); //void
    }

    <Z> Z f(Supplier<Z> sz) { return null; }

    void m() { }
}