From f6474dc4fc2752c0a9d890bfaa85ee5235505bef Mon Sep 17 00:00:00 2001 From: Dmitry Batkovich Date: Wed, 3 May 2017 15:31:46 +0300 Subject: [PATCH] method chains completion: do not create chains for interfaces annotated as functional interface --- .../compiler/chainsSearch/context/ChainSearchTarget.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/java/compiler/impl/src/com/intellij/compiler/chainsSearch/context/ChainSearchTarget.java b/java/compiler/impl/src/com/intellij/compiler/chainsSearch/context/ChainSearchTarget.java index 87798d4d2581..dc8204b48852 100644 --- a/java/compiler/impl/src/com/intellij/compiler/chainsSearch/context/ChainSearchTarget.java +++ b/java/compiler/impl/src/com/intellij/compiler/chainsSearch/context/ChainSearchTarget.java @@ -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;