mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-25 10:51:06 +07:00
63 lines
2.0 KiB
Java
63 lines
2.0 KiB
Java
class Test {
|
|
|
|
interface I1 {
|
|
void m(String s);
|
|
}
|
|
|
|
interface I2 {
|
|
void m(Integer s);
|
|
}
|
|
|
|
interface I3 {
|
|
void m(Object o);
|
|
}
|
|
|
|
static class Foo<X extends Number> {
|
|
Foo(X x) { }
|
|
}
|
|
|
|
static <X extends Number> void foo(X x) { }
|
|
|
|
static void meth1(I1 s) { }
|
|
|
|
static void meth2(I2 s) { }
|
|
|
|
static void meth3(I3 s) { }
|
|
|
|
static void meth4(I1 s) { }
|
|
static void meth4(I2 s) { }
|
|
static void meth4(I3 s) { }
|
|
|
|
static {
|
|
meth1(<error descr="Inferred type 'java.lang.String' for type parameter 'X' is not within its bound; should extend 'java.lang.Number'">Foo::new</error>);
|
|
meth2(Foo::new);
|
|
meth3(<error descr="Inferred type 'java.lang.Object' for type parameter 'X' is not within its bound; should extend 'java.lang.Number'">Foo::new</error>);
|
|
meth4<error descr="Ambiguous method call: both 'Test.meth4(I1)' and 'Test.meth4(I2)' match">(Foo::new)</error>;
|
|
|
|
meth1(<error descr="Inferred type 'java.lang.String' for type parameter 'X' is not within its bound; should extend 'java.lang.Number'">Test::foo</error>);
|
|
meth2(Test::foo);
|
|
meth3(<error descr="Inferred type 'java.lang.Object' for type parameter 'X' is not within its bound; should extend 'java.lang.Number'">Test::foo</error>);
|
|
meth4<error descr="Ambiguous method call: both 'Test.meth4(I1)' and 'Test.meth4(I2)' match">(Test::foo)</error>;
|
|
}
|
|
|
|
|
|
<X extends Number> void fooInstance(X x) { }
|
|
interface II1 {
|
|
<X extends String> void m(X x);
|
|
}
|
|
|
|
interface II2 {
|
|
<X extends Integer> void m(X x);
|
|
}
|
|
|
|
interface II3 {
|
|
<X> void m(X x);
|
|
}
|
|
|
|
void test() {
|
|
II1 i1 = <error descr="Inferred type 'X' for type parameter 'X' is not within its bound; should extend 'java.lang.Number'">this::fooInstance</error>;
|
|
II2 i2 = this::fooInstance;
|
|
II3 i3 = <error descr="Inferred type 'X' for type parameter 'X' is not within its bound; should extend 'java.lang.Number'">this::fooInstance</error>;
|
|
}
|
|
}
|