Skip to content

Commit

Permalink
Add a warning to Delimiter::None that rustc currently does not respec…
Browse files Browse the repository at this point in the history
…t it.

It does not provide the behaviour it is indicated to provide when used in
a proc_macro context.

This is a port of rust-lang/rust/124389.
  • Loading branch information
CensoredUsername committed May 25, 2024
1 parent fd2c998 commit eabac15
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -685,6 +685,18 @@ pub enum Delimiter {
/// operator priorities in cases like `$var * 3` where `$var` is `1 + 2`.
/// Invisible delimiters may not survive roundtrip of a token stream through
/// a string.
///
/// <div class="warning">
///
/// Note: rustc currently can ignore the grouping of tokens delimited by `None` in the output
/// of a proc_macro. Only `None`-delimited groups created by a macro_rules macro in the input
/// of a proc_macro macro are preserved, and only in very specific circumstances.
/// Any `None`-delimited groups (re)created by a proc_macro will therefore not preserve
/// operator priorities as indicated above. The other `Delimiter` variants should be used
/// instead in this context. This is a rustc bug. For details, see
/// [rust-lang/rust#67062](https://github.com/rust-lang/rust/issues/67062).
///
/// </div>
None,
}

Expand Down

0 comments on commit eabac15

Please sign in to comment.