Could `extra` just be `Option<(@Expr, Span)>` (rather than having the field on the struct) to keep the information together?