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.
This commit is contained in:
parent
3a36386dc1
commit
c2d2df182a
1 changed files with 12 additions and 0 deletions
|
@ -815,6 +815,18 @@ pub enum Delimiter {
|
||||||
/// "macro variable" `$var`. It is important to preserve operator priorities in cases like
|
/// "macro variable" `$var`. It is important to preserve operator priorities in cases like
|
||||||
/// `$var * 3` where `$var` is `1 + 2`.
|
/// `$var * 3` where `$var` is `1 + 2`.
|
||||||
/// Invisible delimiters might not survive roundtrip of a token stream through a string.
|
/// 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")]
|
#[stable(feature = "proc_macro_lib2", since = "1.29.0")]
|
||||||
None,
|
None,
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue