Ruby: Switch from ssaDefAssigns/ssaDefInitializesParam to WriteDefSourceNode.

This commit is contained in:
Anders Schack-Mulligen
2025-03-27 15:21:48 +01:00
parent 8aedd63b9e
commit 25297cb2b6
2 changed files with 8 additions and 5 deletions

View File

@@ -108,7 +108,12 @@ module SsaFlow {
or
result.(Impl::ExprPostUpdateNode).getExpr() = n.(PostUpdateNode).getPreUpdateNode().asExpr()
or
n = toParameterNode(result.(Impl::ParameterNode).getParameter())
exists(SsaImpl::ParameterExt p |
n = toParameterNode(p) and
p.isInitializedBy(result.(Impl::WriteDefSourceNode).getDefinition())
)
or
result.(Impl::WriteDefSourceNode).getDefinition().(Ssa::WriteDefinition).assigns(n.asExpr())
}
predicate localFlowStep(

View File

@@ -481,11 +481,9 @@ private module DataFlowIntegrationInput implements Impl::DataFlowIntegrationInpu
Expr getARead(Definition def) { result = Cached::getARead(def) }
predicate ssaDefAssigns(WriteDefinition def, Expr value) {
def.(Ssa::WriteDefinition).assigns(value)
}
predicate ssaDefAssigns(WriteDefinition def, Expr value) { none() }
predicate ssaDefInitializesParam(WriteDefinition def, Parameter p) { p.isInitializedBy(def) }
predicate ssaDefInitializesParam(WriteDefinition def, Parameter p) { none() }
class Guard extends Cfg::CfgNodes::AstCfgNode {
/**