mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
WrapWithAdapterMethodCallFix: add more diagnostics for EA-114444.
This commit is contained in:
+16
-1
@@ -26,6 +26,7 @@ import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.JavaCodeStyleManager;
|
||||
import com.intellij.psi.infos.CandidateInfo;
|
||||
import com.intellij.psi.util.InheritanceUtil;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.ObjectUtils;
|
||||
@@ -67,7 +68,21 @@ public class WrapWithAdapterMethodCallFix extends LocalQuickFixAndIntentionActio
|
||||
if (LambdaUtil.notInferredType(variableType)) return false;
|
||||
|
||||
String typeText = variableType.getCanonicalText();
|
||||
PsiExpression replacement = createReplacement(context, "((" + typeText + ")null)");
|
||||
PsiExpression replacement;
|
||||
try {
|
||||
replacement = createReplacement(context, "((" + typeText + ")null)");
|
||||
}
|
||||
catch (IncorrectOperationException ioe) {
|
||||
PsiClass aClass = PsiUtil.resolveClassInClassTypeOnly(variableType);
|
||||
String message = "Cannot create expression for type " + variableType.getClass() + "\n"
|
||||
+ "Canonical text: " + variableType.getCanonicalText() + "\n"
|
||||
+ "Internal text: " + variableType.getInternalCanonicalText() + "\n";
|
||||
if (aClass != null) {
|
||||
message += "Class: " + aClass.getClass() + "|" + aClass.getQualifiedName() + "\n"
|
||||
+ "File: " + aClass.getContainingFile() + "\n";
|
||||
}
|
||||
throw new IncorrectOperationException(message, (Throwable)ioe);
|
||||
}
|
||||
PsiDeclarationStatement declaration =
|
||||
JavaPsiFacade.getElementFactory(context.getProject()).createVariableDeclarationStatement("x", outType, replacement, context);
|
||||
PsiVariable var = ObjectUtils.tryCast(ArrayUtil.getFirstElement(declaration.getDeclaredElements()), PsiVariable.class);
|
||||
|
||||
Reference in New Issue
Block a user