mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
PsiTypeParameterImpl doesn't have modifier list, so ignore it to fix EA-92866 - assert: AddAnnotationPsiFix.invoke
This commit is contained in:
+5
-6
@@ -23,7 +23,6 @@ import com.intellij.lang.findUsages.FindUsagesProvider;
|
||||
import com.intellij.lang.findUsages.LanguageFindUsages;
|
||||
import com.intellij.openapi.command.WriteCommandAction;
|
||||
import com.intellij.openapi.command.undo.UndoUtil;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.JavaCodeStyleManager;
|
||||
@@ -34,7 +33,6 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class AddAnnotationPsiFix extends LocalQuickFixOnPsiElement {
|
||||
private static final Logger LOG = Logger.getInstance("#com.intellij.codeInsight.intention.AddAnnotationPsiFix");
|
||||
protected final String myAnnotation;
|
||||
private final String[] myAnnotationsToRemove;
|
||||
private final PsiNameValuePair[] myPairs; // not used when registering local quick fix
|
||||
@@ -112,7 +110,9 @@ public class AddAnnotationPsiFix extends LocalQuickFixOnPsiElement {
|
||||
if (!PsiUtil.isLanguageLevel5OrHigher(startElement)) return false;
|
||||
final PsiModifierListOwner myModifierListOwner = (PsiModifierListOwner)startElement;
|
||||
|
||||
return !AnnotationUtil.isAnnotated(myModifierListOwner, myAnnotation, false, false);
|
||||
// e.g. PsiTypeParameterImpl doesn't have modifier list
|
||||
return myModifierListOwner.getModifierList() != null
|
||||
&& !AnnotationUtil.isAnnotated(myModifierListOwner, myAnnotation, false, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -129,8 +129,7 @@ public class AddAnnotationPsiFix extends LocalQuickFixOnPsiElement {
|
||||
|
||||
final ExternalAnnotationsManager annotationsManager = ExternalAnnotationsManager.getInstance(project);
|
||||
final PsiModifierList modifierList = myModifierListOwner.getModifierList();
|
||||
LOG.assertTrue(modifierList != null, myModifierListOwner + " ("+myModifierListOwner.getClass()+")");
|
||||
if (modifierList.findAnnotation(myAnnotation) != null) return;
|
||||
if (modifierList == null || modifierList.findAnnotation(myAnnotation) != null) return;
|
||||
final ExternalAnnotationsManager.AnnotationPlace annotationAnnotationPlace = annotationsManager.chooseAnnotationsPlace(myModifierListOwner);
|
||||
if (annotationAnnotationPlace == ExternalAnnotationsManager.AnnotationPlace.NOWHERE) return;
|
||||
if (annotationAnnotationPlace == ExternalAnnotationsManager.AnnotationPlace.EXTERNAL) {
|
||||
@@ -175,7 +174,7 @@ public class AddAnnotationPsiFix extends LocalQuickFixOnPsiElement {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public String[] getAnnotationsToRemove() {
|
||||
protected String[] getAnnotationsToRemove() {
|
||||
return myAnnotationsToRemove;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user