Skip to main content

mutates_var

Function mutates_var 

Source
fn mutates_var<'hir>(
    hir: &'hir Hir<'hir>,
    stmt: &'hir Stmt<'hir>,
    var: VariableId,
) -> bool
Expand description

Whether a statement assigns to var: var = x, var += x, var++, delete var, or var as a component of a tuple assignment. An assembly block is treated as an opaque assignment, since it can rewrite Solidity locals outside the HIR expression tree. Identity here is by variable, not by value, so a guard that checked var says nothing once var is reassigned: the delegation then credits a value or an address the guard never saw, though the two spell the same variable.