From fdda0435266cfff7a5a155e01f55d0fca2d576e2 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Fri, 2 Jun 2017 16:07:44 +0300 Subject: [PATCH] disable make method default for annotation types --- .../src/com/siyeh/ipp/types/MakeMethodDefaultIntention.java | 2 +- .../com/siyeh/ipp/types/makeDefault/AnnotationType.java | 3 +++ .../testSrc/com/siyeh/ipp/types/MakeMethodDefaultTest.java | 6 +++++- 3 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 plugins/IntentionPowerPak/test/com/siyeh/ipp/types/makeDefault/AnnotationType.java diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/types/MakeMethodDefaultIntention.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/types/MakeMethodDefaultIntention.java index a37ff7a31970..634b2e62e242 100644 --- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/types/MakeMethodDefaultIntention.java +++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/types/MakeMethodDefaultIntention.java @@ -47,7 +47,7 @@ public class MakeMethodDefaultIntention extends BaseElementAtCaretIntentionActio if (psiMethod != null && PsiUtil.isLanguageLevel8OrHigher(psiMethod)) { if (psiMethod.getBody() == null && !psiMethod.hasModifierProperty(PsiModifier.DEFAULT)) { final PsiClass containingClass = psiMethod.getContainingClass(); - if (containingClass != null && containingClass.isInterface()) { + if (containingClass != null && containingClass.isInterface() && !containingClass.isAnnotationType()) { text = "Make '" + psiMethod.getName() + "()' default"; return true; } diff --git a/plugins/IntentionPowerPak/test/com/siyeh/ipp/types/makeDefault/AnnotationType.java b/plugins/IntentionPowerPak/test/com/siyeh/ipp/types/makeDefault/AnnotationType.java new file mode 100644 index 000000000000..4aa6e097cfbd --- /dev/null +++ b/plugins/IntentionPowerPak/test/com/siyeh/ipp/types/makeDefault/AnnotationType.java @@ -0,0 +1,3 @@ +@interface I { + String foo() default "foo"; +} \ No newline at end of file diff --git a/plugins/IntentionPowerPak/testSrc/com/siyeh/ipp/types/MakeMethodDefaultTest.java b/plugins/IntentionPowerPak/testSrc/com/siyeh/ipp/types/MakeMethodDefaultTest.java index e2939b50abe1..b3dfb59cdb06 100644 --- a/plugins/IntentionPowerPak/testSrc/com/siyeh/ipp/types/MakeMethodDefaultTest.java +++ b/plugins/IntentionPowerPak/testSrc/com/siyeh/ipp/types/MakeMethodDefaultTest.java @@ -15,7 +15,6 @@ */ package com.siyeh.ipp.types; -import com.siyeh.IntentionPowerPackBundle; import com.siyeh.ipp.IPPTestCase; public class MakeMethodDefaultTest extends IPPTestCase { @@ -41,4 +40,9 @@ public class MakeMethodDefaultTest extends IPPTestCase { public void testAlreadyHasBody() throws Exception { assertIntentionNotAvailable(); } + + public void testAnnotationType() throws Exception { + assertIntentionNotAvailable(); + } + }