1/* 2 * @test /nodynamiccopyright/ 3 * @bug 8003280 4 * @summary Add lambda tests 5 * This is negative test for wrong parameter/return type in method references 6 * @compile/fail/ref=MethodRef_neg.out -XDrawDiagnostics MethodRef_neg.java 7 */ 8 9public class MethodRef_neg { 10 11 static interface A {void m(Integer i);} 12 13 static interface B {void m(String s);} 14 15 static interface C {Integer m();} 16 17 static interface D {String m();} 18 19 20 static void bar(int x) { } 21 22 int foo() { 23 return 5; 24 } 25 26 static void make() { } 27 28 void method() { 29 A a = MethodRef_neg::bar; //boxing on parameter type is ok 30 B b = MethodRef_neg::bar; //wrong parameter type, required: String, actual: int 31 C c = this::foo; //boxing on return type is ok 32 D d = this::foo; //wrong return type, required: String, actual: int 33 a = MethodRef_neg::make; //missing parameter 34 c = MethodRef_neg::make; //missing return type 35 } 36} 37