diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiMethodReferenceExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiMethodReferenceExpressionImpl.java index 883a15584af3..029db164f0c3 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiMethodReferenceExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiMethodReferenceExpressionImpl.java @@ -488,7 +488,7 @@ public class PsiMethodReferenceExpressionImpl extends PsiReferenceExpressionBase methodReturnType = JavaPsiFacade.getElementFactory(getProject()).createType(containingClass, subst); } - return TypeConversionUtil.isAssignable(interfaceReturnType, methodReturnType, false); + return TypeConversionUtil.isAssignable(interfaceReturnType, methodReturnType); } return false; } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/ArrayTypeNewReifiable.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/ArrayTypeNewReifiable.java new file mode 100644 index 000000000000..13678d96a67a --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newMethodRef/ArrayTypeNewReifiable.java @@ -0,0 +1,23 @@ +class Main { + + { + I > aNew = Main[]::new; + I > aNew1 = Main[]::new; + I> aNew2 = Main[]::new; + + I p = int[][]::new; + I[]> a = Main[][]::new; + I[]> a1 = Main[][]::new; + I[]> a2 = Main[][]::new; + + I> inn1 = Main.Inner[]::new; + I.Inner> inn2 = Main.Inner[]::new; + I.Inner> inn3 = Main.Inner[]::new; + } + + class Inner

{} + + interface I { + K[] v(int i); + } +} diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/NewMethodRefHighlightingTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/NewMethodRefHighlightingTest.java index d88346424fda..59624a3099fc 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/NewMethodRefHighlightingTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/NewMethodRefHighlightingTest.java @@ -358,6 +358,10 @@ public class NewMethodRefHighlightingTest extends LightDaemonAnalyzerTestCase { doTest(); } + public void testArrayTypeNewReifiable() throws Exception { + doTest(); + } + private void doTest() { doTest(false); }