mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Java inspection: don't offer "Make Type Generic" inspection at variable initializer (IDEA-157727)
This commit is contained in:
+10
-2
@@ -18,6 +18,7 @@ package com.intellij.codeInspection.miscGenerics;
|
||||
import com.intellij.codeInspection.*;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.util.TypeConversionUtil;
|
||||
import org.jetbrains.annotations.Nls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -42,7 +43,14 @@ public class MakeTypeGenericInspection extends BaseJavaBatchLocalInspectionTool
|
||||
final String typeText = type.getCanonicalText();
|
||||
final String message =
|
||||
InspectionsBundle.message("inspection.raw.variable.type.make.generic.text", variable.getName(), typeText);
|
||||
holder.registerProblem(variable, message, new MyLocalQuickFix(message));
|
||||
final PsiElement beforeInitializer =
|
||||
PsiTreeUtil.skipSiblingsBackward(variable.getInitializer(), PsiWhiteSpace.class, PsiComment.class);
|
||||
final ProblemDescriptor descriptor =
|
||||
holder.getManager().createProblemDescriptor(variable.getTypeElement(),
|
||||
beforeInitializer != null ? beforeInitializer : variable.getTypeElement(),
|
||||
message, ProblemHighlightType.GENERIC_ERROR_OR_WARNING,
|
||||
isOnTheFly, new MyLocalQuickFix(message));
|
||||
holder.registerProblem(descriptor);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -96,7 +104,7 @@ public class MakeTypeGenericInspection extends BaseJavaBatchLocalInspectionTool
|
||||
|
||||
@Override
|
||||
public void applyFix(@NotNull Project project, @NotNull ProblemDescriptor descriptor) {
|
||||
final PsiElement element = descriptor.getPsiElement();
|
||||
final PsiElement element = descriptor.getStartElement().getParent();
|
||||
if (element instanceof PsiVariable) {
|
||||
final PsiVariable variable = (PsiVariable)element;
|
||||
final PsiTypeElement typeElement = variable.getTypeElement();
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
import java.util.*;
|
||||
|
||||
public class F {
|
||||
List list = new ArrayList<caret><String>();
|
||||
}
|
||||
@@ -61,6 +61,10 @@ public class MakeTypeGenericTest extends LightCodeInsightFixtureTestCase {
|
||||
doTest("Change type of list to java.util.List<java.lang.String>");
|
||||
}
|
||||
|
||||
public void testAtInitializer() {
|
||||
assertIntentionNotAvailable("Change type of list to java.util.List<java.lang.String>");
|
||||
}
|
||||
|
||||
public void testImplementedRaw() {
|
||||
assertIntentionNotAvailable("Change type of");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user