mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
do not suggest @FunctionalInterface for interfaces with generics methods
This commit is contained in:
@@ -250,7 +250,7 @@ public class LambdaUtil {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
static List<MethodSignature> findFunctionCandidates(PsiClass psiClass) {
|
||||
public static List<MethodSignature> findFunctionCandidates(PsiClass psiClass) {
|
||||
if (psiClass instanceof PsiAnonymousClass) {
|
||||
psiClass = PsiUtil.resolveClassInType(((PsiAnonymousClass)psiClass).getBaseClassType());
|
||||
}
|
||||
|
||||
+11
@@ -20,6 +20,7 @@ import com.intellij.psi.LambdaHighlightingUtil;
|
||||
import com.intellij.psi.LambdaUtil;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiNameValuePair;
|
||||
import com.intellij.psi.util.MethodSignature;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import com.siyeh.InspectionGadgetsBundle;
|
||||
import com.siyeh.ig.BaseInspection;
|
||||
@@ -30,6 +31,8 @@ import org.jetbrains.annotations.Nls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Bas Leijdekkers
|
||||
*/
|
||||
@@ -74,6 +77,14 @@ public class InterfaceMayBeAnnotatedFunctionalInspection extends BaseInspection
|
||||
if (LambdaHighlightingUtil.checkInterfaceFunctional(aClass) != null) {
|
||||
return;
|
||||
}
|
||||
final List<MethodSignature> candidates = LambdaUtil.findFunctionCandidates(aClass);
|
||||
if (candidates == null || candidates.size() != 1) {
|
||||
return;
|
||||
}
|
||||
final MethodSignature signature = candidates.get(0);
|
||||
if (signature.getTypeParameters().length > 0) {
|
||||
return;
|
||||
}
|
||||
registerClassError(aClass, aClass);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user