mirror of
https://github.com/github/codeql.git
synced 2026-02-19 16:33:40 +01:00
CFG: fix BEGIN and END blocks
This commit is contained in:
@@ -23,10 +23,26 @@ private module CfgScope {
|
||||
|
||||
private class BeginBlockScope extends Range, Generated::BeginBlock {
|
||||
final override string getName() { result = "BEGIN block" }
|
||||
|
||||
final override predicate entry(Generated::AstNode first) {
|
||||
first(this.(Trees::BeginBlockTree).getFirstChildNode(), first)
|
||||
}
|
||||
|
||||
final override predicate exit(Generated::AstNode last, Completion c) {
|
||||
last(this.(Trees::BeginBlockTree).getLastChildNode(), last, c)
|
||||
}
|
||||
}
|
||||
|
||||
private class EndBlockScope extends Range, Generated::EndBlock {
|
||||
final override string getName() { result = "END block" }
|
||||
|
||||
final override predicate entry(Generated::AstNode first) {
|
||||
first(this.(Trees::EndBlockTree).getFirstChildNode(), first)
|
||||
}
|
||||
|
||||
final override predicate exit(Generated::AstNode last, Completion c) {
|
||||
last(this.(Trees::EndBlockTree).getLastChildNode(), last, c)
|
||||
}
|
||||
}
|
||||
|
||||
private class MethodScope extends Range, Generated::AstNode {
|
||||
|
||||
@@ -274,7 +274,7 @@ module Trees {
|
||||
override predicate isHidden() { any() }
|
||||
}
|
||||
|
||||
private class BeginBlockTree extends StandardPreOrderTree, BeginBlock {
|
||||
class BeginBlockTree extends PreOrderTree, PostOrderTree, StandardNode, BeginBlock {
|
||||
final override AstNode getChildNode(int i) { result = this.getChild(i) }
|
||||
}
|
||||
|
||||
@@ -456,7 +456,7 @@ module Trees {
|
||||
|
||||
private class EmptyStatementTree extends LeafTree, EmptyStatement { }
|
||||
|
||||
private class EndBlockTree extends StandardPreOrderTree, EndBlock {
|
||||
class EndBlockTree extends StandardNode, PreOrderTree, PostOrderTree, EndBlock {
|
||||
final override AstNode getChildNode(int i) { result = this.getChild(i) }
|
||||
}
|
||||
|
||||
|
||||
@@ -26,10 +26,10 @@ cfg.rb:
|
||||
#-----| -> bar
|
||||
|
||||
# 15| enter BEGIN block
|
||||
#-----| -> BeginBlock
|
||||
#-----| -> String
|
||||
|
||||
# 19| enter END block
|
||||
#-----| -> EndBlock
|
||||
#-----| -> String
|
||||
|
||||
# 25| enter block
|
||||
#-----| -> x
|
||||
@@ -608,10 +608,9 @@ cfg.rb:
|
||||
#-----| -> puts
|
||||
|
||||
# 15| BeginBlock
|
||||
#-----| -> String
|
||||
#-----| -> EndBlock
|
||||
|
||||
# 16| Call
|
||||
#-----| -> EndBlock
|
||||
#-----| -> exit BEGIN block (normal)
|
||||
|
||||
# 16| puts
|
||||
@@ -621,10 +620,9 @@ cfg.rb:
|
||||
#-----| -> puts
|
||||
|
||||
# 19| EndBlock
|
||||
#-----| -> String
|
||||
#-----| -> 41
|
||||
|
||||
# 20| Call
|
||||
#-----| -> 41
|
||||
#-----| -> exit END block (normal)
|
||||
|
||||
# 20| puts
|
||||
|
||||
Reference in New Issue
Block a user