diff --git a/ql/src/codeql_ruby/controlflow/internal/ControlFlowGraphImpl.qll b/ql/src/codeql_ruby/controlflow/internal/ControlFlowGraphImpl.qll index bd5e91670fd..77664806c7c 100644 --- a/ql/src/codeql_ruby/controlflow/internal/ControlFlowGraphImpl.qll +++ b/ql/src/codeql_ruby/controlflow/internal/ControlFlowGraphImpl.qll @@ -1293,8 +1293,7 @@ module Trees { } } - // TODO: make post-order - private class YieldCallTree extends StandardPreOrderTree, YieldCall { + private class YieldCallTree extends StandardPostOrderTree, YieldCall { final override ControlFlowTree getChildNode(int i) { result = this.getArgument(i) } } } diff --git a/ql/test/library-tests/controlflow/graph/Cfg.expected b/ql/test/library-tests/controlflow/graph/Cfg.expected index 3e39856c559..025f50e62e4 100644 --- a/ql/test/library-tests/controlflow/graph/Cfg.expected +++ b/ql/test/library-tests/controlflow/graph/Cfg.expected @@ -2038,7 +2038,7 @@ cfg.rb: #-----| -> ... != ... # 190| enter run_block -#-----| -> yield ... +#-----| -> 42 # 190| run_block #-----| -> self @@ -2049,10 +2049,10 @@ cfg.rb: #-----| -> exit run_block # 191| yield ... -#-----| -> 42 +#-----| -> exit run_block (normal) # 191| 42 -#-----| -> exit run_block (normal) +#-----| -> yield ... # 194| call to run_block #-----| -> exit cfg.rb (normal)