Files
openide/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/PreferDefaultMethodsOverStatic.java
Bas Leijdekkers d19410735d [java] improve error message (IDEA-223692)
GitOrigin-RevId: df344c76be34232b3dc682d36b9d233ab2a6d54f
2024-03-10 15:30:11 +00:00

45 lines
1.1 KiB
Java

class Test {
interface I {
default void f() {}
}
interface J {
static void f() {}
}
static class IJ implements I, J {}
static class JI implements J, I {}
public static void main(String[] args) {
new IJ(). f();
new JI(). f();
IJ.<error descr="Non-static method 'f()' cannot be referenced from a static context">f</error>();
JI.<error descr="Non-static method 'f()' cannot be referenced from a static context">f</error>();
J.f();
}
}
class Test2 {
interface I {
static void f(String <warning descr="Parameter 's' is never used">s</warning>) {}
}
interface J<T> {
default void f(T <warning descr="Parameter 't' is never used">t</warning>) {}
//another pair
default void j(T <warning descr="Parameter 't' is never used">t</warning>) {}
static void j(String <warning descr="Parameter 's' is never used">s</warning>) {};
}
static class IJ implements I, J<String> {}
public static void main(IJ s, J<String> j) {
s.f("");
<error descr="Static method may only be called on its containing interface">j.j("");</error>
}
}