diff options
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.java | 13 |
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; } |