Convert proc_macro_back_compat
lint to an unconditional error.
We still check for the `rental`/`allsorts-rental` crates. But now if they are detected we just emit a fatal error, instead of emitting a warning and providing alternative behaviour. The original "hack" implementing alternative behaviour was added in #73345. The lint was added in #83127. The tracking issue is #83125. The direct motivation for the change is that providing the alternative behaviour is interfering with #125174 and follow-on work.
This commit is contained in:
parent
3607cee3e7
commit
cf0c2c7333
14 changed files with 54 additions and 570 deletions
|
@ -276,21 +276,20 @@ impl FromInternal<(TokenStream, &mut Rustc<'_, '_>)> for Vec<TokenTree<TokenStre
|
|||
|
||||
Interpolated(nt) => {
|
||||
let stream = TokenStream::from_nonterminal_ast(&nt);
|
||||
// A hack used to pass AST fragments to attribute and derive
|
||||
// macros as a single nonterminal token instead of a token
|
||||
// stream. Such token needs to be "unwrapped" and not
|
||||
// represented as a delimited group.
|
||||
// FIXME: It needs to be removed, but there are some
|
||||
// compatibility issues (see #73345).
|
||||
if crate::base::nt_pretty_printing_compatibility_hack(&nt, rustc.ecx.sess) {
|
||||
trees.extend(Self::from_internal((stream, rustc)));
|
||||
} else {
|
||||
trees.push(TokenTree::Group(Group {
|
||||
delimiter: pm::Delimiter::None,
|
||||
stream: Some(stream),
|
||||
span: DelimSpan::from_single(span),
|
||||
}))
|
||||
}
|
||||
// We used to have an alternative behaviour for crates that
|
||||
// needed it: a hack used to pass AST fragments to
|
||||
// attribute and derive macros as a single nonterminal
|
||||
// token instead of a token stream. Such token needs to be
|
||||
// "unwrapped" and not represented as a delimited group. We
|
||||
// had a lint for a long time, but now we just emit a hard
|
||||
// error. Eventually we might remove the special case hard
|
||||
// error check altogether. See #73345.
|
||||
crate::base::nt_pretty_printing_compatibility_hack(&nt, rustc.ecx.sess);
|
||||
trees.push(TokenTree::Group(Group {
|
||||
delimiter: pm::Delimiter::None,
|
||||
stream: Some(stream),
|
||||
span: DelimSpan::from_single(span),
|
||||
}))
|
||||
}
|
||||
|
||||
OpenDelim(..) | CloseDelim(..) => unreachable!(),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue