pub(super) fn is_pure(expr: &Expr) -> bool
Whether working out expr can’t change state or locals, so values borrowed before it stay alive.
expr