nitc :: ANode :: accept_forward_analysis
v
to self
.
# Apply the forward analysis `v` to `self`.
fun accept_forward_analysis(v: ForwardAnalysis) do
v.current_inset = v.current_outset.clone
v.current_outset = v.current_inset.clone
v.insets[self] = v.current_inset
visit_all(v)
v.outsets[self] = v.current_outset
end
src/saf/saf_base.nit:132,2--139,4
# Merge flow on if .. else constructs.
redef fun accept_forward_analysis(v) do
v.enter_visit(n_expr)
var inset = v.current_inset
var outset = v.current_outset
if n_then != null then v.enter_visit(n_then)
var then_outset = v.current_outset
v.current_inset = inset
v.current_outset = outset
if n_else != null then
v.enter_visit(n_else)
outset = v.merge(then_outset, v.current_outset)
else
outset = v.merge(then_outset, v.current_inset)
end
v.current_inset = inset
v.current_outset = outset
end
src/saf/saf_base.nit:144,2--164,4
redef fun accept_forward_analysis(v) do
v.current_inset = v.new_initial_method_flow(self)
v.current_outset = v.current_inset.clone
v.insets[self] = v.current_inset
visit_all(v)
v.outsets[self] = v.current_outset
end
src/saf/saf_base.nit:239,2--245,4
redef fun accept_forward_analysis(v) do accept_loop_forward_analysis(v)
src/saf/saf_base.nit:204,2--72
redef fun accept_forward_analysis(v) do
v.enter_visit(n_expr)
accept_loop_forward_analysis(v)
end
src/saf/saf_base.nit:219,2--222,4
redef fun accept_forward_analysis(v) do accept_loop_forward_analysis(v)
src/saf/saf_base.nit:211,2--72
redef fun accept_forward_analysis(v) do
for n_group in n_groups do
v.enter_visit(n_group.n_expr)
end
accept_loop_forward_analysis(v)
end
src/saf/saf_base.nit:230,2--235,4