Simplify CFG tree classes for calls

This commit is contained in:
Nick Rolfe
2021-05-05 17:18:44 +01:00
parent 569063ca73
commit a0084b7732

View File

@@ -555,6 +555,10 @@ module Trees {
}
}
private class CallTree extends StandardPostOrderTree, Call {
override ControlFlowTree getChildNode(int i) { result = this.getArgument(i) }
}
private class CaseTree extends PreOrderTree, CaseExpr {
final override predicate propagatesAbnormal(AstNode child) {
child = this.getValue() or child = this.getABranch()
@@ -913,7 +917,7 @@ module Trees {
}
}
private class MethodCallTree extends StandardPostOrderTree, MethodCall {
private class MethodCallTree extends CallTree, MethodCall {
final override ControlFlowTree getChildNode(int i) {
result = this.getReceiver() and i = 0
or
@@ -1222,10 +1226,6 @@ module Trees {
final override ControlFlowTree getChildNode(int i) { result = this.getComponent(i) }
}
private class SuperCallTree extends StandardPostOrderTree, SuperCall {
final override ControlFlowTree getChildNode(int i) { result = this.getArgument(i) }
}
private class ToplevelTree extends BodyStmtTree, Toplevel {
final override AstNode getBodyChild(int i, boolean rescuable) {
result = this.getBeginBlock(i) and rescuable = true
@@ -1292,10 +1292,6 @@ module Trees {
)
}
}
private class YieldCallTree extends StandardPostOrderTree, YieldCall {
final override ControlFlowTree getChildNode(int i) { result = this.getArgument(i) }
}
}
private Scope parent(Scope n) {