Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unify AST Visitors with a macro like MIR Visitors #128974

Draft
wants to merge 82 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
85e6071
Merge visit and mut_visit in a single file
maxcabrajac Oct 12, 2024
ad4a2f3
Pull uses out of modules
maxcabrajac Oct 12, 2024
ce290fa
Add macro_if!
maxcabrajac Oct 12, 2024
eaaee58
Add make_ast_visitor!
maxcabrajac Oct 12, 2024
d8c70a2
Add ref_t!, result!, make_visit! and P!
maxcabrajac Oct 12, 2024
4882464
Use make_visit! on every possible visit_
maxcabrajac Oct 12, 2024
c7398d1
Unify make_visit!s
maxcabrajac Oct 12, 2024
87cc131
Add visits for nodes that already had walks (QSelf,FnRetTy,FnDecl)
maxcabrajac Oct 12, 2024
c73930b
Add return_result!, defer_P!, visit_{id,span}!, try_v! and visit_{o,l…
maxcabrajac Oct 12, 2024
632dc06
Pass Ident by reference
maxcabrajac Oct 12, 2024
72457f5
Unify {visit,walk}_ident
maxcabrajac Oct 13, 2024
6d12aeb
Unify walk_label
maxcabrajac Oct 13, 2024
736f784
Unify {visit,walk}_lifetime
maxcabrajac Oct 13, 2024
3436219
Unify {visit,walk}_angle_bracketed_parameter_data
maxcabrajac Oct 13, 2024
80ac89f
Unify {visit,walk}_parenthesized_parameter_data
maxcabrajac Oct 13, 2024
73f3285
Unify walk_generic_args
maxcabrajac Oct 13, 2024
b7df6f1
Unify walk_fn_ret_ty
maxcabrajac Oct 13, 2024
5238327
Unify walk_anon_const
maxcabrajac Oct 13, 2024
26043fb
Unify walk_format_args
maxcabrajac Oct 13, 2024
2458e61
Unify {visit,walk}_mt
maxcabrajac Oct 13, 2024
dfdd0b2
Unify walk_closure_binder
maxcabrajac Oct 13, 2024
59607ec
Unify walk_fn_decl
maxcabrajac Oct 13, 2024
f4504b6
Unify walk_poly_trait_ref
maxcabrajac Oct 13, 2024
aecb5e3
Unify {visit,walk}_where_clause
maxcabrajac Oct 13, 2024
13b296a
Unify walk_generics
maxcabrajac Oct 13, 2024
e49f850
Unify {visit,walk}_capture_by
maxcabrajac Oct 13, 2024
2d9bbfe
Unify {visit,walk}_enum_def
maxcabrajac Oct 13, 2024
a90eac5
Unify {visit,walk}_pat_field
maxcabrajac Oct 13, 2024
71c7203
Unify {visit,walk}_param
maxcabrajac Oct 13, 2024
f90cad5
Unify walk_where_predicate
maxcabrajac Oct 13, 2024
87ca293
Unify {visit,walk}_variant_data (renaming walk_struct_def)
maxcabrajac Oct 13, 2024
74e242c
Unify {visit,walk}_expr_field
maxcabrajac Oct 13, 2024
82468f6
Unify {visit,walk}_arm
maxcabrajac Oct 13, 2024
c956db5
Unify visit_variant_discr
maxcabrajac Oct 13, 2024
f0957be
Unify {visit,walk}_variant
maxcabrajac Oct 13, 2024
3398a69
Unify walk_path_segment
maxcabrajac Oct 13, 2024
23ba653
Unify walk_qself
maxcabrajac Oct 13, 2024
5e40db2
Unify {visit,walk}_field_def
maxcabrajac Oct 13, 2024
d1529f9
Unify walk_inline_asm
maxcabrajac Oct 13, 2024
bf12d09
Add mut_only_visit!
maxcabrajac Oct 13, 2024
cbb9087
Unify walk_local
maxcabrajac Oct 13, 2024
5cac236
Unify {visit,walk}_use_tree
maxcabrajac Oct 13, 2024
0de2305
Unify {visit,walk}_path
maxcabrajac Oct 13, 2024
978fa3f
Unify walk_generic_argz
maxcabrajac Oct 13, 2024
a4abc86
Unify walk_param_bound
maxcabrajac Oct 13, 2024
ac3e06e
Unify {visit,walk}_precise_capturing_arg
maxcabrajac Oct 13, 2024
eba661f
Unify walk_trait_ref
maxcabrajac Oct 13, 2024
3863002
Unify {visit,walk}_block
maxcabrajac Oct 13, 2024
097269d
Unify walk_pat
maxcabrajac Oct 13, 2024
479cc1c
Unify walk_inline_asm_sym
maxcabrajac Oct 13, 2024
1b036e8
Unify walk_vis
maxcabrajac Oct 13, 2024
d64f965
Unify {visit,walk}_generic_param
maxcabrajac Oct 13, 2024
5887760
Unify walk_crate
maxcabrajac Oct 13, 2024
ad94bfd
Add visit_attr_args and Unify walk_attr_args
maxcabrajac Oct 13, 2024
5002c21
Add {visit,walk}_safety
maxcabrajac Oct 13, 2024
ba05c88
Unify walk_ty
maxcabrajac Oct 13, 2024
b7078cf
Unify walk_assoc_item_constraint
maxcabrajac Oct 13, 2024
364dc87
Unify walk_mac_call
maxcabrajac Oct 13, 2024
0fa7e60
Unify walk_attribute
maxcabrajac Oct 13, 2024
f4e0a22
Unify {visit,walk}_foreign_mod
maxcabrajac Oct 13, 2024
ac7bb60
Unify {visit,walk}_macro_def
maxcabrajac Oct 13, 2024
089d0ee
Unify {visit,walk}_ty_alias_where_clauses
maxcabrajac Oct 13, 2024
fcb93eb
Unify WalkItemKind and unimpl it for AssocItemKind
maxcabrajac Oct 14, 2024
f42dcf1
Unify {visit,walk}{,_foreign}_item
maxcabrajac Oct 14, 2024
0595ae1
Unify FnKind
maxcabrajac Oct 14, 2024
fd615f6
Unify {visit,walk}_coroutine_kind
maxcabrajac Oct 14, 2024
9dbcb65
Unify {visit,walk}_fn
maxcabrajac Oct 14, 2024
0bae806
Add {visit,walk}_constness
maxcabrajac Oct 13, 2024
04239d4
Unify {visit,walk}_fn_header
maxcabrajac Oct 14, 2024
2618c86
Add {visit,walk}_impl_polarity
maxcabrajac Oct 14, 2024
a8392b1
Add {visit,walk}_defaultness
maxcabrajac Oct 14, 2024
201db75
Unify impl WalkItemKind for ItemKind
maxcabrajac Oct 14, 2024
b31b31b
Unify impl WalkItemKind for ForeignItemKind
maxcabrajac Oct 14, 2024
0e75ea0
Unify {visit,walk}_assoc_item
maxcabrajac Oct 14, 2024
d6a89c1
Remove visit_expr_post
maxcabrajac Oct 14, 2024
f097c35
Unify walk_expr
maxcabrajac Oct 14, 2024
a6d7ecc
Add flat maps to make_visit!
maxcabrajac Oct 14, 2024
6b814ca
Use make_visit! to write flat maps
maxcabrajac Oct 14, 2024
24465fd
Add make_walk_flat_map
maxcabrajac Oct 14, 2024
6440429
Unify visit_method_receiver_expr
maxcabrajac Oct 15, 2024
fdc62e4
Unify comment
maxcabrajac Oct 15, 2024
87e6380
Add FIXME asking for removal of some P!s
maxcabrajac Oct 15, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions compiler/rustc_ast/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#![feature(box_patterns)]
#![feature(if_let_guard)]
#![feature(let_chains)]
#![feature(macro_metavar_expr)]
#![feature(negative_impls)]
#![feature(never_type)]
#![feature(rustdoc_internals)]
Expand All @@ -37,17 +38,17 @@ pub mod attr;
pub mod entry;
pub mod expand;
pub mod format;
pub mod mut_visit;
pub mod node_id;
pub mod ptr;
pub mod token;
pub mod tokenstream;
pub mod visit;
pub mod visitors;

use rustc_data_structures::stable_hasher::{HashStable, StableHasher};

pub use self::ast::*;
pub use self::ast_traits::{AstDeref, AstNodeWrapper, HasAttrs, HasNodeId, HasTokens};
pub use self::visitors::{mut_visit, visit};

/// Requirements for a `StableHashingContext` to be used in this crate.
/// This is a hack to allow using the `HashStable_Generic` derive macro
Expand Down
Loading
Loading