summaryrefslogtreecommitdiff
path: root/java/java-analysis-impl/src/com/intellij/codeInsight/intention/AddAnnotationPsiFix.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/java-analysis-impl/src/com/intellij/codeInsight/intention/AddAnnotationPsiFix.java')
-rw-r--r--java/java-analysis-impl/src/com/intellij/codeInsight/intention/AddAnnotationPsiFix.java13
1 files changed, 8 insertions, 5 deletions
diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/intention/AddAnnotationPsiFix.java b/java/java-analysis-impl/src/com/intellij/codeInsight/intention/AddAnnotationPsiFix.java
index 84f704f64dcd..e5e4bb68d11e 100644
--- a/java/java-analysis-impl/src/com/intellij/codeInsight/intention/AddAnnotationPsiFix.java
+++ b/java/java-analysis-impl/src/com/intellij/codeInsight/intention/AddAnnotationPsiFix.java
@@ -75,13 +75,16 @@ public class AddAnnotationPsiFix extends LocalQuickFixOnPsiElement {
PsiElement element = file.findElementAt(offset);
- PsiModifierListOwner listOwner = PsiTreeUtil.getParentOfType(element, PsiParameter.class, false);
- if (listOwner != null) return listOwner;
+ PsiModifierListOwner listOwner = PsiTreeUtil.getParentOfType(element, PsiModifierListOwner.class, false);
+ if (listOwner instanceof PsiParameter) return listOwner;
- final PsiIdentifier psiIdentifier = PsiTreeUtil.getParentOfType(element, PsiIdentifier.class, false);
- if (psiIdentifier != null && psiIdentifier.getParent() instanceof PsiModifierListOwner) {
- return (PsiModifierListOwner)psiIdentifier.getParent();
+ if (listOwner instanceof PsiNameIdentifierOwner) {
+ PsiElement id = ((PsiNameIdentifierOwner)listOwner).getNameIdentifier();
+ if (id != null && id.getTextRange().containsOffset(offset)) { // Groovy methods will pass this check as well
+ return listOwner;
+ }
}
+
return null;
}