Maybe it would be better to write this as `is_plan_ident(...) || *t == UNDERSCORE` just to reduce the duplication of logic between parse::token and here?

Otherwise r=me