Skip to content

Commit 5ad560f

Browse files
committed
remove MethodReceiverExpr special-casing
1 parent 210f03a commit 5ad560f

2 files changed

Lines changed: 9 additions & 14 deletions

File tree

compiler/rustc_expand/src/base.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,10 @@ pub trait MacResult {
423423
None
424424
}
425425

426+
fn make_method_receiver_expr(self: Box<Self>) -> Option<Box<ast::Expr>> {
427+
self.make_expr()
428+
}
429+
426430
/// Creates zero or more items.
427431
fn make_items(self: Box<Self>) -> Option<SmallVec<[Box<ast::Item>; 1]>> {
428432
None

compiler/rustc_expand/src/expand.rs

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -68,23 +68,20 @@ macro_rules! ast_fragments {
6868
/// Can also serve as an input and intermediate result for macro expansion operations.
6969
pub enum AstFragment {
7070
OptExpr(Option<Box<ast::Expr>>),
71-
MethodReceiverExpr(Box<ast::Expr>),
7271
$($Kind($AstTy),)*
7372
}
7473

7574
/// "Discriminant" of an AST fragment.
7675
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
7776
pub enum AstFragmentKind {
7877
OptExpr,
79-
MethodReceiverExpr,
8078
$($Kind,)*
8179
}
8280

8381
impl AstFragmentKind {
8482
pub fn name(self) -> &'static str {
8583
match self {
8684
AstFragmentKind::OptExpr => "expression",
87-
AstFragmentKind::MethodReceiverExpr => "expression",
8885
$(AstFragmentKind::$Kind => $kind_name,)*
8986
}
9087
}
@@ -93,8 +90,6 @@ macro_rules! ast_fragments {
9390
match self {
9491
AstFragmentKind::OptExpr =>
9592
result.make_expr().map(Some).map(AstFragment::OptExpr),
96-
AstFragmentKind::MethodReceiverExpr =>
97-
result.make_expr().map(AstFragment::MethodReceiverExpr),
9893
$(AstFragmentKind::$Kind => result.$make_ast().map(AstFragment::$Kind),)*
9994
}
10095
}
@@ -121,13 +116,6 @@ macro_rules! ast_fragments {
121116
}
122117
}
123118

124-
pub(crate) fn make_method_receiver_expr(self) -> Box<ast::Expr> {
125-
match self {
126-
AstFragment::MethodReceiverExpr(expr) => expr,
127-
_ => panic!("AstFragment::make_method_receiver_expr called on the wrong kind of fragment"),
128-
}
129-
}
130-
131119
$(pub fn $make_ast(self) -> $AstTy {
132120
match self {
133121
AstFragment::$Kind(ast) => ast,
@@ -146,7 +134,6 @@ macro_rules! ast_fragments {
146134
*opt_expr = vis.filter_map_expr(expr)
147135
}
148136
}
149-
AstFragment::MethodReceiverExpr(expr) => vis.visit_method_receiver_expr(expr),
150137
$($(AstFragment::$Kind(ast) => vis.$visit_ast(ast),)?)*
151138
$($(AstFragment::$Kind(ast) =>
152139
ast.flat_map_in_place(|ast| vis.$flat_map_ast_elt(ast, $($args)*)),)?)*
@@ -157,7 +144,6 @@ macro_rules! ast_fragments {
157144
match self {
158145
AstFragment::OptExpr(Some(expr)) => try_visit!(visitor.visit_expr(expr)),
159146
AstFragment::OptExpr(None) => {}
160-
AstFragment::MethodReceiverExpr(expr) => try_visit!(visitor.visit_method_receiver_expr(expr)),
161147
$($(AstFragment::$Kind(ast) => try_visit!(visitor.$visit_ast(ast)),)?)*
162148
$($(AstFragment::$Kind(ast) => walk_list!(visitor, $visit_ast_elt, &ast[..], $($args)*),)?)*
163149
}
@@ -180,6 +166,11 @@ ast_fragments! {
180166
one fn visit_expr;
181167
fn make_expr;
182168
}
169+
MethodReceiverExpr(Box<ast::Expr>) {
170+
"expression";
171+
one fn visit_method_receiver_expr;
172+
fn make_method_receiver_expr;
173+
}
183174
Pat(Box<ast::Pat>) {
184175
"pattern";
185176
one fn visit_pat;

0 commit comments

Comments
 (0)