fn left_edge<T: AstInfo>(expr: &Expr<T>) -> u8Expand description
The loosest precedence exposed on expr’s left spine, the mirror of
right_edge. For a right operand (an operator on its left), this is what
decides parenthesization: a left-associative operator printed to its left
reaches into the left spine and re-associates if that spine exposes a
precedence at or below the operator’s. The top operator alone is not enough,
because a left-nested chain can bury a looser operator down its left edge:
387 = ANY (...) LIKE a IN (...) has a top IN (Like) but exposes the
= ANY (Cmp) on its left, so a tighter <> to its left
(48 <> 387 = ANY (...) ...) would steal the <> into the = ANY’s left
rather than leave it as the <>’s right operand. Forms that open with their
own token on the left (a prefix operator, a keyword, (…), a literal) are
ATOM.