overload resolution for exact method references: ensure param types are equal in case non-generic methods

This commit is contained in:
Anna Kozlova
2015-02-01 16:30:45 +03:00
parent 867a714293
commit 27e575b967
3 changed files with 45 additions and 6 deletions

View File

@@ -0,0 +1,29 @@
interface I1 {
int i1(int i);
}
interface I2 {
Integer i2(Integer i);
}
interface I3 {
Integer i3(int i);
}
class Test {
private void <warning descr="Private method 'm(I1)' is never used">m</warning>(I1 i1) {System.out.println(i1);}
private void <warning descr="Private method 'm(I2)' is never used">m</warning>(I2 i2) {System.out.println(i2);}
private void m1(I1 i1) {System.out.println(i1);}
private void <warning descr="Private method 'm1(I3)' is never used">m1</warning>(I3 i2) {System.out.println(i2);}
void test() {
m <error descr="Ambiguous method call: both 'Test.m(I1)' and 'Test.m(I2)' match">(this::bar)</error>;
m1(this::bar);
}
int bar(int i) {
return i;
}
}