/**
 * @test /nodynamiccopyright/
 * @bug     8012003
 * @summary Method diagnostics resolution need to be simplified in some cases
 *          test lambda-related overload resolution simplifications
 * @compile/fail/ref=T8012003b.out -XDrawDiagnostics -Xdiags:compact T8012003b.java
 */

class T8012003b {

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

    interface Consumer_NV<X> {
        Integer m(X x);
    }

    void m1(Runnable r) { }
    void m1(Runnable r, String s) { }

    void m2(Consumer_V<Integer> ci) { }

    void m3(Consumer_NV<String> ci) { }

    void g(String arg) { }
    String g2(String arg) { return arg; }

    void test() {
        m1(this::g);
        m1(()->1);
        m1(()->false ? "" : "");
        m2(this::g);
        m3(this::g2);
        m3(this::k);
    }
}