diff --git a/java/java-psi-api/src/com/intellij/psi/LambdaHighlightingUtil.java b/java/java-psi-api/src/com/intellij/psi/LambdaHighlightingUtil.java
index 1b22d9c4288f..8dc811e6258d 100644
--- a/java/java-psi-api/src/com/intellij/psi/LambdaHighlightingUtil.java
+++ b/java/java-psi-api/src/com/intellij/psi/LambdaHighlightingUtil.java
@@ -97,18 +97,17 @@ public class LambdaHighlightingUtil {
@Nullable
public static String checkInterfaceFunctional(PsiType functionalInterfaceType) {
if (functionalInterfaceType instanceof PsiIntersectionType) {
- if (!LambdaUtil.isFunctionalType(functionalInterfaceType)) {
- int count = 0;
- for (PsiType type : ((PsiIntersectionType)functionalInterfaceType).getConjuncts()) {
- if (checkInterfaceFunctional(type) == null) {
- count++;
- }
- }
-
- if (count > 1) {
- return "Multiple non-overriding abstract methods found in " + functionalInterfaceType.getPresentableText();
+ int count = 0;
+ for (PsiType type : ((PsiIntersectionType)functionalInterfaceType).getConjuncts()) {
+ if (checkInterfaceFunctional(type) == null) {
+ count++;
}
}
+
+ if (count > 1) {
+ return "Multiple non-overriding abstract methods found in " + functionalInterfaceType.getPresentableText();
+ }
+ return null;
}
final PsiClassType.ClassResolveResult resolveResult = PsiUtil.resolveGenericsClassInType(functionalInterfaceType);
final PsiClass aClass = resolveResult.getElement();
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/Intersection.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/Intersection.java
index e470cf357b0b..767b54788948 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/Intersection.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/Intersection.java
@@ -18,3 +18,18 @@ class Test {
Object o5 = (Runnable & A) () -> {};
}
}
+
+class Test1 {
+
+ interface A {
+ void foo();
+ }
+
+ interface B {
+ void foo();
+ }
+
+ {
+ Object c0 = (A & B) ()->{};
+ }
+}