test/langtools/tools/javac/lvti/BadLocalVarInferenceTest.java
author mcimadamore
Tue, 26 Sep 2017 12:52:53 +0100
changeset 47268 48ec75306997
child 47934 6373d9a0ad82
permissions -rw-r--r--
8177466: Add compiler support for local variable type-inference Summary: Add support for 'var' in implicitly typed local variable declarations Reviewed-by: vromero, jlahoda

/*
 * @test /nodynamiccopyright/
 * @bug 8177466
 * @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
    }

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