fn root_vars(gcx: Gcx<'_>, expr: &Expr<'_>, roots: &mut HashSet<VariableId>)
The variables an expression is rooted in, through indexing, member access and ternaries.