def set_value var, value
if node_type? value, :if
value = value_from_if(value)
elsif node_type? value, :case
value = value_from_case(value)
end
if @ignore_ifs or not @inside_if
if @meth_env and node_type? var, :ivar and env[var].nil?
@meth_env[var] = value
else
env[var] = value
end
elsif env.current[var]
env.current[var] = value
elsif @branch_env and @branch_env[var]
@branch_env[var] = value
elsif @branch_env and @meth_env and node_type? var, :ivar
@branch_env[var] = value
else
env.current[var] = value
end
end