/* * @test /nodynamiccopyright/ * @bug 8055514 * @summary Wrong, confusing error when non-static varargs referenced in static context * @compile/fail/ref=T8055514.out -Xlint:varargs -Werror -XDrawDiagnostics T8055514.java */ class T8055514 { void m(int... args) { } void m2(int... args) { } static void m2(String s) { } void m3(int... args) { } static void m3(String s) { } static void m3(Runnable r) { } void m4(int... args) { } void m4(int i1, int i2, int i3) { } static void test() { m(1,2,3); //only one candidate (varargs) - varargs error wins m2(1,2,3); //two candidates - only one applicable (varargs) - varargs error wins m3(1,2,3); //three candidates - only one applicable (varargs) - varargs error wins m4(1,2,3); //two candidates - both applicable - basic error wins } }