fn collect_lvalue_writes( expr: &Expr<'_>, candidates: &HashSet<VariableId>, writes: &mut HashSet<VariableId>, )