mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
control flow test fix
This commit is contained in:
@@ -306,21 +306,24 @@ public class PyControlFlowBuilder extends PyRecursiveElementVisitor {
|
||||
|
||||
@Override
|
||||
public void visitPyRaiseStatement(final PyRaiseStatement node) {
|
||||
final Instruction instruction = myBuilder.startNode(node);
|
||||
for (PyExpression expression : node.getExpressions()) {
|
||||
expression.accept(this);
|
||||
}
|
||||
|
||||
myBuilder.processPending(new ControlFlowBuilder.PendingProcessor() {
|
||||
public void process(final PsiElement pendingScope, final Instruction instruction) {
|
||||
final PsiElement pendingElement = instruction.getElement();
|
||||
if (PsiTreeUtil.isAncestor(node, pendingElement, false)) {
|
||||
myBuilder.addEdge(null, instruction);
|
||||
} else {
|
||||
myBuilder.addPendingEdge(pendingScope, instruction);
|
||||
}
|
||||
myBuilder.startNode(node);
|
||||
final PyExpression[] expressions = node.getExpressions();
|
||||
if (expressions != null){
|
||||
for (PyExpression expression : expressions) {
|
||||
expression.accept(this);
|
||||
}
|
||||
});
|
||||
|
||||
myBuilder.processPending(new ControlFlowBuilder.PendingProcessor() {
|
||||
public void process(final PsiElement pendingScope, final Instruction instruction) {
|
||||
final PsiElement pendingElement = instruction.getElement();
|
||||
if (PsiTreeUtil.isAncestor(node, pendingElement, false)) {
|
||||
myBuilder.addEdge(null, instruction);
|
||||
} else {
|
||||
myBuilder.addPendingEdge(pendingScope, instruction);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
myBuilder.addPendingEdge(null, myBuilder.prevInstruction);
|
||||
myBuilder.flowAbrupted();
|
||||
}
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
0(1) element: null
|
||||
1(2) element: PyIfStatement
|
||||
2(3,11) READ ACCESS: markup
|
||||
2(3,12) READ ACCESS: markup
|
||||
3(4) element: PyStatementList. Condition: markup:true
|
||||
4(5) element: PyTryExceptStatement
|
||||
5(6) element: PyTryPart
|
||||
6(7) element: PyReturnStatement
|
||||
7(14) READ ACCESS: renderer
|
||||
7(15) READ ACCESS: renderer
|
||||
8(9) element: PyExceptPart
|
||||
9(10) READ ACCESS: KeyError
|
||||
10(14) element: PyRaiseStatement
|
||||
11(12) element: PyElsePart. Condition: markup:false
|
||||
12(13) element: PyReturnStatement
|
||||
13(14) READ ACCESS: body
|
||||
14() element: null
|
||||
10(11) element: PyRaiseStatement
|
||||
11(15) READ ACCESS: Error
|
||||
12(13) element: PyElsePart. Condition: markup:false
|
||||
13(14) element: PyReturnStatement
|
||||
14(15) READ ACCESS: body
|
||||
15() element: null
|
||||
@@ -2,11 +2,12 @@
|
||||
1(2) element: PyTryExceptStatement
|
||||
2(3) element: PyTryPart
|
||||
3(4) element: PyForStatement
|
||||
4(5,10) READ ACCESS: bar
|
||||
4(5,11) READ ACCESS: bar
|
||||
5(6) element: PyStatementList
|
||||
6(7) WRITE ACCESS: i
|
||||
7(10) element: PyBreakStatement
|
||||
7(11) element: PyBreakStatement
|
||||
8(9) element: PyExceptPart
|
||||
9(11) element: PyRaiseStatement
|
||||
10(11) element: PyReturnStatement
|
||||
11() element: null
|
||||
9(10) element: PyRaiseStatement
|
||||
10(12) READ ACCESS: Exception
|
||||
11(12) element: PyReturnStatement
|
||||
12() element: null
|
||||
Reference in New Issue
Block a user