mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-08-26 15:27:45 +07:00
method refs: allow unchecked conversions in default constructors (IDEA-93346)
This commit is contained in:
+44
@@ -0,0 +1,44 @@
|
||||
class Foo<R> {
|
||||
public interface Factory<U> {
|
||||
U make();
|
||||
}
|
||||
|
||||
interface ASink<R, K extends ASink<R, K>> {
|
||||
public void combine(K other);
|
||||
}
|
||||
|
||||
static <R, S extends ASink<R, S>> R reduce(Factory<S> factory) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void foo() {
|
||||
reduce(Moo::new);
|
||||
reduce<error descr="'reduce(Foo.Factory<Foo.ASink>)' in 'Foo' cannot be applied to '(<method reference>)'">(AMoo::new)</error>;
|
||||
reduce(AAMoo::new);
|
||||
reduce(AAAMoo::new);
|
||||
}
|
||||
|
||||
private class Moo implements ASink<R, Moo> {
|
||||
@Override
|
||||
public void combine(Moo other) {
|
||||
}
|
||||
}
|
||||
|
||||
private class AMoo {
|
||||
}
|
||||
|
||||
private class AAMoo implements ASink<AAMoo, AAMoo> {
|
||||
@Override
|
||||
public void combine(AAMoo other) {
|
||||
}
|
||||
}
|
||||
|
||||
private class AAAMoo implements ASink<R, AAAMoo> {
|
||||
private AAAMoo() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void combine(AAAMoo other) {
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user