diff -r 000000000000 -r 959103a6100f test/tools/javac/lambda/MethodReference44.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/lambda/MethodReference44.java Wed Apr 27 01:34:52 2016 +0800 @@ -0,0 +1,45 @@ +/* + * @test /nodynamiccopyright/ + * @bug 8003280 + * @summary Add lambda tests + * check that generic method reference is inferred when type parameters are omitted + * @compile/fail/ref=MethodReference44.out -XDrawDiagnostics MethodReference44.java + */ + +public class MethodReference44 { + + static class SuperFoo { } + + static class Foo extends SuperFoo { } + + interface SAM1 { + SuperFoo m(); + } + + interface SAM2 { + SuperFoo m(); + } + + interface SAM3 { + SuperFoo m(); + } + + static Foo m() { return null; } + + static void g1(SAM1 s) { } + + static void g2(SAM2 s) { } + + static void g3(SAM3 s) { } + + static void g4(SAM1 s) { } + static void g4(SAM2 s) { } + static void g4(SAM3 s) { } + + public static void main(String[] args) { + g1(MethodReference44::m); + g2(MethodReference44::m); + g3(MethodReference44::m); + g4(MethodReference44::m); + } +}