mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-07 13:39:36 +07:00
method refs: check more specific by return type; check used method in test via unused symbol inspection
This commit is contained in:
@@ -16,11 +16,94 @@ class MyTest {
|
||||
Object m(Foo<Integer> f);
|
||||
}
|
||||
|
||||
static void foo(I1 i) {}
|
||||
static void foo(I2 i) {}
|
||||
static void foo(I3 i) {}
|
||||
private static void <warning descr="Private method 'foo(MyTest.I1)' is never used">foo</warning>(I1 i) {
|
||||
System.out.println(i);
|
||||
}
|
||||
|
||||
static {
|
||||
private static void foo(I2 i) {
|
||||
System.out.println(i);
|
||||
}
|
||||
|
||||
private static void <warning descr="Private method 'foo(MyTest.I3)' is never used">foo</warning>(I3 i) {
|
||||
System.out.println(i);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
foo(Foo::m);
|
||||
}
|
||||
}
|
||||
|
||||
class MyTest1 {
|
||||
|
||||
interface I1 {
|
||||
Foo<?> m(String s);
|
||||
}
|
||||
|
||||
|
||||
interface I2 {
|
||||
Foo<?> m(Integer i);
|
||||
}
|
||||
|
||||
interface I3 {
|
||||
Foo<Number> m(Integer i);
|
||||
}
|
||||
|
||||
static class Foo<T extends Number> {
|
||||
Foo(T t) {
|
||||
System.out.println(t);
|
||||
}
|
||||
}
|
||||
|
||||
private static void <warning descr="Private method 'm(MyTest1.I1)' is never used">m</warning>(I1 i) {
|
||||
System.out.println(i);
|
||||
}
|
||||
|
||||
private static void m(I2 i) {
|
||||
System.out.println(i);
|
||||
}
|
||||
|
||||
private static void <warning descr="Private method 'm(MyTest1.I3)' is never used">m</warning>(I3 i) {
|
||||
System.out.println(i);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
m(Foo::new);
|
||||
}
|
||||
}
|
||||
class MyTest2 {
|
||||
|
||||
interface I1 {
|
||||
Foo<?> m(String s);
|
||||
}
|
||||
|
||||
|
||||
interface I2 {
|
||||
Foo<Integer> m(Integer i);
|
||||
}
|
||||
|
||||
interface I3 {
|
||||
Foo<Number> m(Integer i);
|
||||
}
|
||||
|
||||
static class Foo<T extends Number> {
|
||||
Foo(T t) {
|
||||
System.out.println(t);
|
||||
}
|
||||
}
|
||||
|
||||
private static void <warning descr="Private method 'm(MyTest2.I1)' is never used">m</warning>(I1 i) {
|
||||
System.out.println(i);
|
||||
}
|
||||
|
||||
private static void m(I2 i) {
|
||||
System.out.println(i);
|
||||
}
|
||||
|
||||
private static void <warning descr="Private method 'm(MyTest2.I3)' is never used">m</warning>(I3 i) {
|
||||
System.out.println(i);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
m(Foo::new);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user