diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/classlayout/InterfaceMayBeAnnotatedFunctionalInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/classlayout/InterfaceMayBeAnnotatedFunctionalInspection.java index 58fd9e3553aa..7c0c2a377803 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/classlayout/InterfaceMayBeAnnotatedFunctionalInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/classlayout/InterfaceMayBeAnnotatedFunctionalInspection.java @@ -15,6 +15,7 @@ */ package com.siyeh.ig.classlayout; +import com.intellij.codeInsight.AnnotationUtil; import com.intellij.codeInsight.intention.AddAnnotationPsiFix; import com.intellij.psi.LambdaHighlightingUtil; import com.intellij.psi.LambdaUtil; @@ -71,7 +72,7 @@ public class InterfaceMayBeAnnotatedFunctionalInspection extends BaseInspection return; } super.visitClass(aClass); - if (!aClass.isInterface()) { + if (!aClass.isInterface() || AnnotationUtil.isAnnotated(aClass, "java.lang.FunctionalInterface", false)) { return; } if (LambdaHighlightingUtil.checkInterfaceFunctional(aClass) != null) { diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/classlayout/InterfaceMayBeAnnotatedFunctionalInspectionTest.java b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/classlayout/InterfaceMayBeAnnotatedFunctionalInspectionTest.java index 3d41d4123d97..e367b530d8ea 100644 --- a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/classlayout/InterfaceMayBeAnnotatedFunctionalInspectionTest.java +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/classlayout/InterfaceMayBeAnnotatedFunctionalInspectionTest.java @@ -44,6 +44,12 @@ public class InterfaceMayBeAnnotatedFunctionalInspectionTest extends LightInspec "}"); } + public void testAlreadyAnnotated() { + doTest("@FunctionalInterface interface Asd {" + + " boolean doSmth();" + + "}"); + } + public void testAnnotationType() { doTest("@interface A {}"); }