mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-05-06 05:10:22 +07:00
disable exceptional fixes for local classes (IDEA-189596)
This commit is contained in:
@@ -30,6 +30,7 @@ import com.intellij.psi.codeStyle.JavaCodeStyleManager;
|
||||
import com.intellij.psi.codeStyle.VariableKind;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import com.intellij.refactoring.util.RefactoringUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -167,6 +168,11 @@ public class AddExceptionToCatchFix extends BaseIntentionAction {
|
||||
PsiElement element = file.findElementAt(offset);
|
||||
if (element instanceof PsiWhiteSpace) element = file.findElementAt(offset - 1);
|
||||
if (element == null) return null;
|
||||
PsiElement parentStatement = RefactoringUtil.getParentStatement(element, false);
|
||||
if (parentStatement instanceof PsiDeclarationStatement &&
|
||||
((PsiDeclarationStatement)parentStatement).getDeclaredElements()[0] instanceof PsiClass) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@SuppressWarnings({"unchecked"})
|
||||
final PsiElement parent = PsiTreeUtil.getParentOfType(element, PsiTryStatement.class, PsiMethod.class, PsiFunctionalExpression.class);
|
||||
|
||||
@@ -29,6 +29,7 @@ import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.CodeStyleManager;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import com.intellij.refactoring.util.RefactoringUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import gnu.trove.THashSet;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -173,8 +174,19 @@ public class AddExceptionToThrowsFix extends BaseIntentionAction {
|
||||
PsiElement targetElement = null;
|
||||
PsiMethod targetMethod = null;
|
||||
|
||||
final PsiElement psiElement = myWrongElement instanceof PsiMethodReferenceExpression ? myWrongElement
|
||||
: PsiTreeUtil.getParentOfType(myWrongElement, PsiFunctionalExpression.class, PsiMethod.class);
|
||||
final PsiElement psiElement;
|
||||
if (myWrongElement instanceof PsiMethodReferenceExpression) {
|
||||
psiElement = myWrongElement;
|
||||
}
|
||||
else {
|
||||
PsiElement parentStatement = RefactoringUtil.getParentStatement(myWrongElement, false);
|
||||
if (parentStatement instanceof PsiDeclarationStatement &&
|
||||
((PsiDeclarationStatement)parentStatement).getDeclaredElements()[0] instanceof PsiClass) {
|
||||
return null;
|
||||
}
|
||||
|
||||
psiElement = PsiTreeUtil.getParentOfType(myWrongElement, PsiFunctionalExpression.class, PsiMethod.class);
|
||||
}
|
||||
if (psiElement instanceof PsiFunctionalExpression) {
|
||||
targetMethod = LambdaUtil.getFunctionalInterfaceMethod(psiElement);
|
||||
targetElement = psiElement instanceof PsiLambdaExpression ? ((PsiLambdaExpression)psiElement).getBody() : psiElement;
|
||||
|
||||
@@ -62,7 +62,13 @@ public class SurroundWithTryCatchFix implements IntentionAction {
|
||||
|
||||
@Override
|
||||
public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) {
|
||||
return myElement != null && myElement.isValid();
|
||||
if (myElement != null && myElement.isValid()) {
|
||||
PsiElement parentStatement = RefactoringUtil.getParentStatement(myElement, false);
|
||||
return !(parentStatement instanceof PsiDeclarationStatement &&
|
||||
((PsiDeclarationStatement)parentStatement).getDeclaredElements()[0] instanceof PsiClass);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
// "Add exception to method signature" "false"
|
||||
|
||||
import java.io.*;
|
||||
|
||||
class C {
|
||||
public void m() {
|
||||
class Local {
|
||||
InputStream in = new File<caret>InputStream("");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
// "Surround with try/catch" "false"
|
||||
// "Add exception to method signature" "false"
|
||||
import java.io.*;
|
||||
|
||||
class C {
|
||||
public void m() {
|
||||
class Local {
|
||||
InputStream in = new File<caret>InputStream("");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user