diff options
| author | CensoredUsername <cens.username@gmail.com> | 2024-04-26 02:23:14 +0200 |
|---|---|---|
| committer | CensoredUsername <cens.username@gmail.com> | 2024-05-18 01:41:45 +0200 |
| commit | c2d2df182aae08fd9022e5e8977f63f69aa485a0 (patch) | |
| tree | 6647ad288973b7627fd063c4f4126f1fdc860358 /library/proc_macro | |
| parent | 3a36386dc1075018dc7ca2640a2656adb31a61fe (diff) | |
| download | rust-c2d2df182aae08fd9022e5e8977f63f69aa485a0.tar.gz rust-c2d2df182aae08fd9022e5e8977f63f69aa485a0.zip | |
Add a warning to Delimiter::None that rustc currently does not respect it.
It does not provide the behaviour it is indicated to provide when used in a proc_macro context.
Diffstat (limited to 'library/proc_macro')
| -rw-r--r-- | library/proc_macro/src/lib.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/library/proc_macro/src/lib.rs b/library/proc_macro/src/lib.rs index 1ceff2e506c..50611fda9a3 100644 --- a/library/proc_macro/src/lib.rs +++ b/library/proc_macro/src/lib.rs @@ -815,6 +815,18 @@ pub enum Delimiter { /// "macro variable" `$var`. It is important to preserve operator priorities in cases like /// `$var * 3` where `$var` is `1 + 2`. /// Invisible delimiters might 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> #[stable(feature = "proc_macro_lib2", since = "1.29.0")] None, } |
