mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-30 02:09:59 +07:00
method refs: accept default constructors refs for SAMs with void return type
This commit is contained in:
@@ -613,6 +613,7 @@ public class LambdaUtil {
|
||||
} else if (resolve instanceof PsiClass) {
|
||||
final PsiType interfaceReturnType = getFunctionalInterfaceReturnType(left);
|
||||
if (interfaceReturnType != null) {
|
||||
if (interfaceReturnType == PsiType.VOID) return true;
|
||||
final PsiClassType classType = JavaPsiFacade.getElementFactory(methodReferenceExpression.getProject()).createType((PsiClass)resolve, result.getSubstitutor());
|
||||
if (TypeConversionUtil.isAssignable(interfaceReturnType, classType, false)) {
|
||||
final PsiParameter[] parameters = method.getParameterList().getParameters();
|
||||
|
||||
@@ -33,4 +33,14 @@ class DefaultConstructor {
|
||||
I2<Outer.Inner, Outer> i2 = Outer.Inner::new;
|
||||
<error descr="Incompatible types. Found: '<method reference>', required: 'DefaultConstructor.I2<DefaultConstructor.Outer.Inner,java.lang.String>'">I2<Outer.Inner, String> i2str = Outer.Inner::new;</error>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class DefaultConstructor1 {
|
||||
|
||||
public void bar() {
|
||||
}
|
||||
|
||||
{
|
||||
Runnable b1 = DefaultConstructor1 :: new;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user