mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Moved exceptions to upper level
This commit is contained in:
@@ -107,7 +107,7 @@ public class ExceptionUtil {
|
||||
addExceptions(array, thrownExceptions);
|
||||
}
|
||||
}
|
||||
catch (ControlFlowAnalyzer.AnalysisCanceledException e) {
|
||||
catch (AnalysisCanceledException e) {
|
||||
// incomplete code
|
||||
}
|
||||
}
|
||||
@@ -432,7 +432,7 @@ public class ExceptionUtil {
|
||||
int completionReasons = ControlFlowUtil.getCompletionReasons(flow, 0, flow.getSize());
|
||||
if ((completionReasons & ControlFlowUtil.NORMAL_COMPLETION_REASON) == 0) return true;
|
||||
}
|
||||
catch (ControlFlowAnalyzer.AnalysisCanceledException e) {
|
||||
catch (AnalysisCanceledException e) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ public class HighlightControlFlowUtil {
|
||||
return highlightInfo;
|
||||
}
|
||||
}
|
||||
catch (ControlFlowAnalyzer.AnalysisCanceledException e) {
|
||||
catch (AnalysisCanceledException e) {
|
||||
// incomplete code
|
||||
}
|
||||
return null;
|
||||
@@ -82,7 +82,7 @@ public class HighlightControlFlowUtil {
|
||||
"Unreachable statement");
|
||||
}
|
||||
}
|
||||
catch (ControlFlowAnalyzer.AnalysisCanceledException e) {
|
||||
catch (AnalysisCanceledException e) {
|
||||
// incomplete code
|
||||
}
|
||||
return null;
|
||||
@@ -231,7 +231,7 @@ public class HighlightControlFlowUtil {
|
||||
ControlFlow controlFlow = ControlFlowFactory.getControlFlow(context, LocalsOrMyInstanceFieldsControlFlowPolicy.getInstance());
|
||||
return ControlFlowUtil.isVariableDefinitelyAssigned(variable, controlFlow);
|
||||
}
|
||||
catch (ControlFlowAnalyzer.AnalysisCanceledException e) {
|
||||
catch (AnalysisCanceledException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -241,7 +241,7 @@ public class HighlightControlFlowUtil {
|
||||
ControlFlow controlFlow = ControlFlowFactory.getControlFlow(context, LocalsOrMyInstanceFieldsControlFlowPolicy.getInstance());
|
||||
return ControlFlowUtil.isVariableDefinitelyNotAssigned(variable, controlFlow);
|
||||
}
|
||||
catch (ControlFlowAnalyzer.AnalysisCanceledException e) {
|
||||
catch (AnalysisCanceledException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -386,7 +386,7 @@ public class HighlightControlFlowUtil {
|
||||
final ControlFlow controlFlow = ControlFlowFactory.getControlFlow(topBlock, LocalsOrMyInstanceFieldsControlFlowPolicy.getInstance());
|
||||
codeBlockProblems = ControlFlowUtil.getReadBeforeWrite(controlFlow);
|
||||
}
|
||||
catch (ControlFlowAnalyzer.AnalysisCanceledException e) {
|
||||
catch (AnalysisCanceledException e) {
|
||||
codeBlockProblems = new ArrayList<PsiReferenceExpression>();
|
||||
}
|
||||
uninitializedVarProblems.put(topBlock, codeBlockProblems);
|
||||
@@ -467,7 +467,7 @@ public class HighlightControlFlowUtil {
|
||||
break;
|
||||
}
|
||||
}
|
||||
catch (ControlFlowAnalyzer.AnalysisCanceledException e) {
|
||||
catch (AnalysisCanceledException e) {
|
||||
// incomplete code
|
||||
return null;
|
||||
}
|
||||
@@ -515,7 +515,7 @@ public class HighlightControlFlowUtil {
|
||||
final ControlFlow controlFlow = ControlFlowFactory.getControlFlow(codeBlock, LocalsOrMyInstanceFieldsControlFlowPolicy.getInstance());
|
||||
codeBlockProblems = ControlFlowUtil.getInitializedTwice(controlFlow);
|
||||
}
|
||||
catch (ControlFlowAnalyzer.AnalysisCanceledException e) {
|
||||
catch (AnalysisCanceledException e) {
|
||||
codeBlockProblems = new ArrayList<PsiElement>();
|
||||
}
|
||||
finalVarProblems.put(codeBlock, codeBlockProblems);
|
||||
@@ -664,7 +664,7 @@ public class HighlightControlFlowUtil {
|
||||
"Initializer must be able to complete normally");
|
||||
}
|
||||
}
|
||||
catch (ControlFlowAnalyzer.AnalysisCanceledException e) {
|
||||
catch (AnalysisCanceledException e) {
|
||||
// incomplete code
|
||||
}
|
||||
return null;
|
||||
|
||||
@@ -14,13 +14,9 @@ import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.CodeStyleManager;
|
||||
import com.intellij.psi.controlFlow.ControlFlow;
|
||||
import com.intellij.psi.controlFlow.ControlFlowAnalyzer;
|
||||
import com.intellij.psi.controlFlow.ControlFlowFactory;
|
||||
import com.intellij.psi.controlFlow.LocalsOrMyInstanceFieldsControlFlowPolicy;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import com.intellij.psi.controlFlow.ControlFlowUtil;
|
||||
import com.intellij.psi.controlFlow.*;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -103,7 +99,7 @@ public class DeferFinalAssignmentFix implements IntentionAction {
|
||||
try {
|
||||
controlFlow = ControlFlowFactory.getControlFlow(outerCodeBlock, LocalsOrMyInstanceFieldsControlFlowPolicy.getInstance(), false);
|
||||
}
|
||||
catch (ControlFlowAnalyzer.AnalysisCanceledException e) {
|
||||
catch (AnalysisCanceledException e) {
|
||||
return;
|
||||
}
|
||||
int minOffset = 0;
|
||||
|
||||
@@ -7,10 +7,7 @@ import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.controlFlow.ControlFlow;
|
||||
import com.intellij.psi.controlFlow.ControlFlowAnalyzer;
|
||||
import com.intellij.psi.controlFlow.ControlFlowUtil;
|
||||
import com.intellij.psi.controlFlow.LocalsOrMyInstanceFieldsControlFlowPolicy;
|
||||
import com.intellij.psi.controlFlow.*;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
|
||||
/**
|
||||
@@ -43,7 +40,7 @@ public class RemoveRedundantElseAction implements IntentionAction {
|
||||
int endOffset = controlFlow.getEndOffset(ifStatement.getThenBranch());
|
||||
return !ControlFlowUtil.canCompleteNormally(controlFlow, startOffset,endOffset);
|
||||
}
|
||||
catch (ControlFlowAnalyzer.AnalysisCanceledException e) {
|
||||
catch (AnalysisCanceledException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,10 +22,7 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.EmptyRunnable;
|
||||
import com.intellij.openapi.wm.WindowManager;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.controlFlow.ControlFlow;
|
||||
import com.intellij.psi.controlFlow.ControlFlowAnalyzer;
|
||||
import com.intellij.psi.controlFlow.ControlFlowUtil;
|
||||
import com.intellij.psi.controlFlow.LocalsOrMyInstanceFieldsControlFlowPolicy;
|
||||
import com.intellij.psi.controlFlow.*;
|
||||
import com.intellij.psi.jsp.JspFile;
|
||||
import com.intellij.psi.search.LocalSearchScope;
|
||||
import com.intellij.psi.search.PsiSearchHelper;
|
||||
@@ -377,7 +374,7 @@ public class HighlightUsagesHandler extends HighlightHandlerBase {
|
||||
|
||||
return new DoHighlightExitPointsRunnable(project, editor, exitStatements.toArray(new PsiElement[exitStatements.size()]));
|
||||
}
|
||||
catch (ControlFlowAnalyzer.AnalysisCanceledException e) {
|
||||
catch (AnalysisCanceledException e) {
|
||||
return EMPTY_HIGHLIGHT_RUNNABLE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,7 +148,7 @@ public class InvertIfConditionAction extends BaseIntentionAction {
|
||||
ControlFlow controlFlow = new ControlFlowAnalyzer(element, LocalsOrMyInstanceFieldsControlFlowPolicy.getInstance(), false, false).buildControlFlow();
|
||||
return controlFlow;
|
||||
}
|
||||
catch (ControlFlowAnalyzer.AnalysisCanceledException e) {
|
||||
catch (AnalysisCanceledException e) {
|
||||
return ControlFlow.EMPTY;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -113,7 +113,7 @@ public class DefUseUtil {
|
||||
try {
|
||||
flow = new ControlFlowAnalyzer(body, ourPolicy).buildControlFlow();
|
||||
}
|
||||
catch (ControlFlowAnalyzer.AnalysisCanceledException e) {
|
||||
catch (AnalysisCanceledException e) {
|
||||
return null;
|
||||
}
|
||||
Instruction[] instructions = flow.getInstructions();
|
||||
@@ -266,7 +266,7 @@ public class DefUseUtil {
|
||||
}
|
||||
}.get(def, ref);
|
||||
}
|
||||
catch (ControlFlowAnalyzer.AnalysisCanceledException e) {
|
||||
catch (AnalysisCanceledException e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -302,7 +302,7 @@ public class DefUseUtil {
|
||||
}
|
||||
}.get(def, ref);
|
||||
}
|
||||
catch (ControlFlowAnalyzer.AnalysisCanceledException e) {
|
||||
catch (AnalysisCanceledException e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -317,7 +317,7 @@ public class DefUseUtil {
|
||||
final PsiCodeBlock body;
|
||||
|
||||
|
||||
protected RefsDefs(PsiCodeBlock body) throws ControlFlowAnalyzer.AnalysisCanceledException {
|
||||
protected RefsDefs(PsiCodeBlock body) throws AnalysisCanceledException {
|
||||
this.body = body;
|
||||
flow = new ControlFlowAnalyzer(body, ourPolicy, false, false, true).buildControlFlow();
|
||||
instructions = flow.getInstructions();
|
||||
|
||||
@@ -8,10 +8,7 @@ import com.intellij.codeInspection.ex.BaseLocalInspectionTool;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.controlFlow.ControlFlow;
|
||||
import com.intellij.psi.controlFlow.ControlFlowAnalyzer;
|
||||
import com.intellij.psi.controlFlow.ControlFlowPolicy;
|
||||
import com.intellij.psi.controlFlow.ControlFlowUtil;
|
||||
import com.intellij.psi.controlFlow.*;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
|
||||
@@ -89,7 +86,7 @@ public class LocalCanBeFinal extends BaseLocalInspectionTool {
|
||||
}
|
||||
}).buildControlFlow();
|
||||
}
|
||||
catch (ControlFlowAnalyzer.AnalysisCanceledException e) {
|
||||
catch (AnalysisCanceledException e) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -14,10 +14,7 @@ import com.intellij.j2ee.J2EERolesUtil;
|
||||
import com.intellij.j2ee.ejb.role.EjbClassRole;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.controlFlow.ControlFlow;
|
||||
import com.intellij.psi.controlFlow.ControlFlowAnalyzer;
|
||||
import com.intellij.psi.controlFlow.ControlFlowUtil;
|
||||
import com.intellij.psi.controlFlow.LocalsOrMyInstanceFieldsControlFlowPolicy;
|
||||
import com.intellij.psi.controlFlow.*;
|
||||
import com.intellij.psi.util.PsiFormatUtil;
|
||||
|
||||
import java.util.*;
|
||||
@@ -245,7 +242,7 @@ public class RefClass extends RefElement {
|
||||
try {
|
||||
flow = analyzer.buildControlFlow();
|
||||
}
|
||||
catch (ControlFlowAnalyzer.AnalysisCanceledException e) {
|
||||
catch (AnalysisCanceledException e) {
|
||||
flow = ControlFlow.EMPTY;
|
||||
}
|
||||
PsiVariable[] ssaVariables = ControlFlowUtil.getSSAVariables(flow, false);
|
||||
@@ -284,7 +281,7 @@ public class RefClass extends RefElement {
|
||||
try {
|
||||
flow = analyzer.buildControlFlow();
|
||||
}
|
||||
catch (ControlFlowAnalyzer.AnalysisCanceledException e) {
|
||||
catch (AnalysisCanceledException e) {
|
||||
flow = ControlFlow.EMPTY;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.intellij.psi.controlFlow;
|
||||
|
||||
import com.intellij.psi.PsiElement;
|
||||
|
||||
/**
|
||||
* @author mike
|
||||
*/
|
||||
public class AnalysisCanceledException extends Exception {
|
||||
private final PsiElement myErrorElement;
|
||||
|
||||
public AnalysisCanceledException(PsiElement errorElement) {
|
||||
myErrorElement = errorElement;
|
||||
}
|
||||
|
||||
public PsiElement getErrorElement() {
|
||||
return myErrorElement;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.intellij.psi.controlFlow;
|
||||
|
||||
import com.intellij.psi.PsiElement;
|
||||
|
||||
/**
|
||||
* @author mike
|
||||
*/
|
||||
class AnalysisCanceledSoftException extends RuntimeException {
|
||||
private final PsiElement myErrorElement;
|
||||
|
||||
public AnalysisCanceledSoftException(PsiElement errorElement) {
|
||||
myErrorElement = errorElement;
|
||||
}
|
||||
|
||||
public PsiElement getErrorElement() {
|
||||
return myErrorElement;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -199,31 +199,6 @@ public class ControlFlowAnalyzer extends PsiElementVisitor {
|
||||
return myCurrentFlow;
|
||||
}
|
||||
|
||||
public static class AnalysisCanceledException extends Exception {
|
||||
private final PsiElement myErrorElement;
|
||||
|
||||
public AnalysisCanceledException(PsiElement errorElement) {
|
||||
myErrorElement = errorElement;
|
||||
}
|
||||
|
||||
public PsiElement getErrorElement() {
|
||||
return myErrorElement;
|
||||
}
|
||||
}
|
||||
|
||||
private static class AnalysisCanceledSoftException extends RuntimeException {
|
||||
private final PsiElement myErrorElement;
|
||||
|
||||
public AnalysisCanceledSoftException(PsiElement errorElement) {
|
||||
myErrorElement = errorElement;
|
||||
}
|
||||
|
||||
public PsiElement getErrorElement() {
|
||||
return myErrorElement;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void startElement(PsiElement element) {
|
||||
if (PsiUtil.hasErrorElementChild(element)) {
|
||||
// do not perform control flow analysis for incomplete code
|
||||
|
||||
@@ -35,11 +35,11 @@ public class ControlFlowFactory {
|
||||
}
|
||||
}
|
||||
|
||||
public static ControlFlow getControlFlow(PsiElement element, ControlFlowPolicy policy) throws ControlFlowAnalyzer.AnalysisCanceledException {
|
||||
public static ControlFlow getControlFlow(PsiElement element, ControlFlowPolicy policy) throws AnalysisCanceledException {
|
||||
return getControlFlow(element, policy, true);
|
||||
}
|
||||
|
||||
public static ControlFlow getControlFlow(PsiElement element, ControlFlowPolicy policy, boolean evaluateConstantIfCondition) throws ControlFlowAnalyzer.AnalysisCanceledException {
|
||||
public static ControlFlow getControlFlow(PsiElement element, ControlFlowPolicy policy, boolean evaluateConstantIfCondition) throws AnalysisCanceledException {
|
||||
SoftReference<ControlFlowContext> ref = element.getUserData(CONTROL_FLOW_KEY);
|
||||
ControlFlowContext flows = ref == null ? null : ref.get();
|
||||
ControlFlowContext currentFlow = flows;
|
||||
|
||||
@@ -1392,7 +1392,7 @@ public class ControlFlowUtil {
|
||||
try {
|
||||
flow = ControlFlowFactory.getControlFlow(codeBlock, LocalsOrMyInstanceFieldsControlFlowPolicy.getInstance(), false);
|
||||
}
|
||||
catch (ControlFlowAnalyzer.AnalysisCanceledException e) {
|
||||
catch (AnalysisCanceledException e) {
|
||||
return false;
|
||||
}
|
||||
final PsiAssignmentExpression assignmentExpression = (PsiAssignmentExpression)expression.getParent();
|
||||
|
||||
@@ -16,10 +16,7 @@ import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.openapi.wm.WindowManager;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.codeStyle.CodeStyleManager;
|
||||
import com.intellij.psi.controlFlow.ControlFlow;
|
||||
import com.intellij.psi.controlFlow.ControlFlowAnalyzer;
|
||||
import com.intellij.psi.controlFlow.ControlFlowUtil;
|
||||
import com.intellij.psi.controlFlow.LocalsControlFlowPolicy;
|
||||
import com.intellij.psi.controlFlow.*;
|
||||
import com.intellij.psi.impl.source.jsp.JspFileImpl;
|
||||
import com.intellij.psi.search.LocalSearchScope;
|
||||
import com.intellij.psi.text.BlockSupport;
|
||||
@@ -181,7 +178,7 @@ public class ExtractMethodProcessor implements MatchProvider {
|
||||
try {
|
||||
myControlFlow = analyzer.buildControlFlow();
|
||||
}
|
||||
catch (ControlFlowAnalyzer.AnalysisCanceledException e) {
|
||||
catch (AnalysisCanceledException e) {
|
||||
throw new PrepareFailedException("Code contains syntax errors." +
|
||||
"Cannot perform neccessary analysis.",
|
||||
e.getErrorElement());
|
||||
|
||||
@@ -12,10 +12,7 @@ import com.intellij.openapi.editor.markup.TextAttributes;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.wm.WindowManager;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.controlFlow.ControlFlow;
|
||||
import com.intellij.psi.controlFlow.ControlFlowAnalyzer;
|
||||
import com.intellij.psi.controlFlow.ControlFlowUtil;
|
||||
import com.intellij.psi.controlFlow.LocalsControlFlowPolicy;
|
||||
import com.intellij.psi.controlFlow.*;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.psi.search.PsiSearchHelper;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
@@ -138,7 +135,7 @@ class InlineLocalHandler {
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (ControlFlowAnalyzer.AnalysisCanceledException e) {
|
||||
catch (AnalysisCanceledException e) {
|
||||
}
|
||||
|
||||
if (!ApplicationManager.getApplication().isUnitTestMode()) {
|
||||
@@ -180,7 +177,7 @@ class InlineLocalHandler {
|
||||
try {
|
||||
controlFlow = new ControlFlowAnalyzer(codeFragment, new LocalsControlFlowPolicy(codeFragment), false).buildControlFlow();
|
||||
}
|
||||
catch (ControlFlowAnalyzer.AnalysisCanceledException e) {
|
||||
catch (AnalysisCanceledException e) {
|
||||
controlFlow = ControlFlow.EMPTY;
|
||||
}
|
||||
PsiElement insertAnchor = firstWriteUsage.getElement();
|
||||
|
||||
@@ -1024,7 +1024,7 @@ public class InlineMethodProcessor extends BaseRefactoringProcessor {
|
||||
try {
|
||||
controlFlow = new ControlFlowAnalyzer(body, new LocalsControlFlowPolicy(body), false).buildControlFlow();
|
||||
}
|
||||
catch (ControlFlowAnalyzer.AnalysisCanceledException e) {
|
||||
catch (AnalysisCanceledException e) {
|
||||
return false;
|
||||
}
|
||||
if (LOG.isDebugEnabled()) {
|
||||
|
||||
Reference in New Issue
Block a user