Files
openide/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/methodRef/ConstructorAssignability.java
Aleksey Rostovskiy 185284cee6 get rid of intellij.build.toolbox.litegen parameter and use BuildOptions.TOOLBOX_LITE_GEN_STEP to skip it instead
GitOrigin-RevId: 9aac8ee4ed1ebf2a29de18a238825fafb1ab88f9
2019-05-27 15:08:08 +03:00

44 lines
970 B
Java

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<S>)' 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) {
}
}
}