summaryrefslogtreecommitdiff
path: root/java/java-impl/src/com/intellij/codeInsight/intention/impl/AddAnnotationIntention.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/java-impl/src/com/intellij/codeInsight/intention/impl/AddAnnotationIntention.java')
-rw-r--r--java/java-impl/src/com/intellij/codeInsight/intention/impl/AddAnnotationIntention.java11
1 files changed, 9 insertions, 2 deletions
diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/AddAnnotationIntention.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/AddAnnotationIntention.java
index 899da3035ce5..027928a4f695 100644
--- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/AddAnnotationIntention.java
+++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/AddAnnotationIntention.java
@@ -56,9 +56,11 @@ public abstract class AddAnnotationIntention extends BaseIntentionAction {
Pair<String, String[]> annotations = getAnnotations(project);
String toAdd = annotations.first;
String[] toRemove = annotations.second;
- if (toRemove.length > 0 && AnnotationUtil.isAnnotated(owner, toRemove[0], false, false)) return false;
+ if (toRemove.length > 0 && isAnnotatedSkipInferred(owner, toRemove)) {
+ return false;
+ }
setText(AddAnnotationPsiFix.calcText(owner, toAdd));
- if (AnnotationUtil.isAnnotated(owner, toAdd, false, false)) return false;
+ if (isAnnotatedSkipInferred(owner, toAdd)) return false;
if (owner instanceof PsiMethod) {
PsiType returnType = ((PsiMethod)owner).getReturnType();
@@ -73,6 +75,11 @@ public abstract class AddAnnotationIntention extends BaseIntentionAction {
return true;
}
+ private static boolean isAnnotatedSkipInferred(PsiModifierListOwner owner, String... annoFqns) {
+ PsiAnnotation annotation = AnnotationUtil.findAnnotation(owner, false, annoFqns);
+ return annotation != null && !AnnotationUtil.isInferredAnnotation(annotation);
+ }
+
@Override
public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException {
PsiModifierListOwner owner = AddAnnotationPsiFix.getContainer(file, editor.getCaretModel().getOffset());