Auto merge of #76585 - Aaron1011:ignore-vert-plus, r=petrochenkov
Ignore `|` and `+` tokens during proc-macro pretty-print check Fixes #76182 This is an alternative to PR #76188 These tokens are not preserved in the AST in certain cases (e.g. a leading `|` in a pattern or a trailing `+` in a trait bound). This PR ignores them entirely during the pretty-print/reparse check to avoid spuriously using the re-parsed tokenstream.
This commit is contained in:
commit
dd33766e4a
5 changed files with 155 additions and 0 deletions
|
@ -364,6 +364,12 @@ pub fn tokenstream_probably_equal_for_proc_macro(
|
|||
| token::CloseDelim(DelimToken::NoDelim)
|
||||
// The pretty printer collapses many semicolons into one.
|
||||
| token::Semi
|
||||
// We don't preserve leading `|` tokens in patterns, so
|
||||
// we ignore them entirely
|
||||
| token::BinOp(token::BinOpToken::Or)
|
||||
// We don't preserve trailing '+' tokens in trait bounds,
|
||||
// so we ignore them entirely
|
||||
| token::BinOp(token::BinOpToken::Plus)
|
||||
// The pretty printer can turn `$crate` into `::crate_name`
|
||||
| token::ModSep = token.kind {
|
||||
return false;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue