method chains completion: do not create chains for interfaces annotated as functional interface

This commit is contained in:
Dmitry Batkovich
2017-05-03 16:13:17 +03:00
parent 7beb2e1a42
commit f6474dc4fc
@@ -15,6 +15,7 @@
*/
package com.intellij.compiler.chainsSearch.context;
import com.intellij.codeInsight.AnnotationUtil;
import com.intellij.ide.hierarchy.JavaHierarchyUtil;
import com.intellij.psi.*;
import com.intellij.psi.util.InheritanceUtil;
@@ -108,7 +109,7 @@ public class ChainSearchTarget {
if (resolvedClass == null) return null;
iteratorKind = SignatureData.ITERATOR_ONE_DIM;
}
if (resolvedClass.hasTypeParameters() || resolvedClass instanceof PsiTypeParameter || LambdaUtil.isFunctionalClass(resolvedClass)) return null;
if (resolvedClass.hasTypeParameters() || resolvedClass instanceof PsiTypeParameter || AnnotationUtil.isAnnotated(resolvedClass, CommonClassNames.JAVA_LANG_FUNCTIONAL_INTERFACE, false, false)) return null;
String packageName = JavaHierarchyUtil.getPackageName(resolvedClass);
if (packageName == null || EXCLUDED_PACKAGES.contains(packageName)) return null;