Rollup merge of #78710 - petrochenkov:macvisit, r=davidtwco
rustc_ast: Do not panic by default when visiting macro calls Panicking by default made sense when we didn't have HIR or MIR and everything worked on AST, but now all AST visitors run early and majority of them have to deal with macro calls, often by ignoring them. The second commit renames `visit_mac` to `visit_mac_call`, the corresponding structures were renamed earlier in https://github.com/rust-lang/rust/pull/69589.
This commit is contained in:
commit
8ebca242bc
18 changed files with 29 additions and 93 deletions
|
@ -547,11 +547,6 @@ impl<'a> MutVisitor for StripUnconfigured<'a> {
|
|||
noop_flat_map_assoc_item(configure!(self, item), self)
|
||||
}
|
||||
|
||||
fn visit_mac(&mut self, _mac: &mut ast::MacCall) {
|
||||
// Don't configure interpolated AST (cf. issue #34171).
|
||||
// Interpolated AST will get configured once the surrounding tokens are parsed.
|
||||
}
|
||||
|
||||
fn visit_pat(&mut self, pat: &mut P<ast::Pat>) {
|
||||
self.configure_pat(pat);
|
||||
noop_visit_pat(pat, self)
|
||||
|
|
|
@ -850,8 +850,6 @@ impl<'a, 'b> MacroExpander<'a, 'b> {
|
|||
|
||||
visit::walk_item(self, item);
|
||||
}
|
||||
|
||||
fn visit_mac(&mut self, _: &'ast ast::MacCall) {}
|
||||
}
|
||||
|
||||
if !self.cx.ecfg.proc_macro_hygiene() {
|
||||
|
|
|
@ -5,7 +5,6 @@ use crate::mbe::macro_parser::{MatchedNonterminal, MatchedSeq, NamedMatch};
|
|||
use rustc_ast::mut_visit::{self, MutVisitor};
|
||||
use rustc_ast::token::{self, NtTT, Token};
|
||||
use rustc_ast::tokenstream::{DelimSpan, TokenStream, TokenTree, TreeAndSpacing};
|
||||
use rustc_ast::MacCall;
|
||||
use rustc_data_structures::fx::FxHashMap;
|
||||
use rustc_data_structures::sync::Lrc;
|
||||
use rustc_errors::{pluralize, PResult};
|
||||
|
@ -27,10 +26,6 @@ impl MutVisitor for Marker {
|
|||
fn visit_span(&mut self, span: &mut Span) {
|
||||
*span = span.apply_mark(self.0, self.1)
|
||||
}
|
||||
|
||||
fn visit_mac(&mut self, mac: &mut MacCall) {
|
||||
mut_visit::noop_visit_mac(mac, self)
|
||||
}
|
||||
}
|
||||
|
||||
/// An iterator over the token trees in a delimited token tree (`{ ... }`) or a sequence (`$(...)`).
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
use crate::tests::{matches_codepattern, string_to_crate};
|
||||
|
||||
use rustc_ast as ast;
|
||||
use rustc_ast::mut_visit::{self, MutVisitor};
|
||||
use rustc_ast::mut_visit::MutVisitor;
|
||||
use rustc_ast_pretty::pprust;
|
||||
use rustc_span::symbol::Ident;
|
||||
use rustc_span::with_default_session_globals;
|
||||
|
@ -21,9 +21,6 @@ impl MutVisitor for ToZzIdentMutVisitor {
|
|||
fn visit_ident(&mut self, ident: &mut Ident) {
|
||||
*ident = Ident::from_str("zz");
|
||||
}
|
||||
fn visit_mac(&mut self, mac: &mut ast::MacCall) {
|
||||
mut_visit::noop_visit_mac(mac, self)
|
||||
}
|
||||
}
|
||||
|
||||
// Maybe add to `expand.rs`.
|
||||
|
|
|
@ -385,8 +385,4 @@ impl<'a, 'b> MutVisitor for PlaceholderExpander<'a, 'b> {
|
|||
|item| !matches!(item.kind, ast::ItemKind::MacCall(_) if !self.cx.ecfg.keep_macs),
|
||||
);
|
||||
}
|
||||
|
||||
fn visit_mac(&mut self, _mac: &mut ast::MacCall) {
|
||||
// Do nothing.
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue