Skip to content

Commit

Permalink
ast: Add tokens to Expr
Browse files Browse the repository at this point in the history
  • Loading branch information
petrochenkov committed Mar 20, 2020
1 parent 2835ca6 commit e189a6a
Show file tree
Hide file tree
Showing 11 changed files with 23 additions and 5 deletions.
3 changes: 2 additions & 1 deletion src/librustc_ast/ast.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1011,11 +1011,12 @@ pub struct Expr {
pub kind: ExprKind,
pub span: Span,
pub attrs: AttrVec,
pub tokens: Option<TokenStream>,
}

// `Expr` is used a lot. Make sure it doesn't unintentionally get bigger.
#[cfg(target_arch = "x86_64")]
rustc_data_structures::static_assert_size!(Expr, 96);
rustc_data_structures::static_assert_size!(Expr, 104);

impl Expr {
/// Returns `true` if this expression would be valid somewhere that expects a value;
Expand Down
5 changes: 4 additions & 1 deletion src/librustc_ast/mut_visit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1092,7 +1092,10 @@ pub fn noop_visit_anon_const<T: MutVisitor>(AnonConst { id, value }: &mut AnonCo
vis.visit_expr(value);
}

pub fn noop_visit_expr<T: MutVisitor>(Expr { kind, id, span, attrs }: &mut Expr, vis: &mut T) {
pub fn noop_visit_expr<T: MutVisitor>(
Expr { kind, id, span, attrs, tokens: _ }: &mut Expr,
vis: &mut T,
) {
match kind {
ExprKind::Box(expr) => vis.visit_expr(expr),
ExprKind::Array(exprs) => visit_exprs(exprs, vis),
Expand Down
1 change: 1 addition & 0 deletions src/librustc_ast_lowering/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1129,6 +1129,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
kind: ExprKind::Path(qself.clone(), path.clone()),
span: ty.span,
attrs: AttrVec::new(),
tokens: None,
};

let ct = self.with_new_scopes(|this| hir::AnonConst {
Expand Down
1 change: 1 addition & 0 deletions src/librustc_builtin_macros/asm.rs
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ pub fn expand_asm<'cx>(
kind: ast::ExprKind::InlineAsm(P(inline_asm)),
span: cx.with_def_site_ctxt(sp),
attrs: ast::AttrVec::new(),
tokens: None,
}))
}

Expand Down
1 change: 1 addition & 0 deletions src/librustc_builtin_macros/concat_idents.rs
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ pub fn expand_concat_idents<'cx>(
kind: ast::ExprKind::Path(None, ast::Path::from_ident(self.ident)),
span: self.ident.span,
attrs: ast::AttrVec::new(),
tokens: None,
}))
}

Expand Down
1 change: 1 addition & 0 deletions src/librustc_expand/base.rs
Original file line number Diff line number Diff line change
Expand Up @@ -583,6 +583,7 @@ impl DummyResult {
kind: if is_error { ast::ExprKind::Err } else { ast::ExprKind::Tup(Vec::new()) },
span: sp,
attrs: ast::AttrVec::new(),
tokens: None,
})
}

Expand Down
10 changes: 8 additions & 2 deletions src/librustc_expand/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,13 @@ impl<'a> ExtCtxt<'a> {
pub fn anon_const(&self, span: Span, kind: ast::ExprKind) -> ast::AnonConst {
ast::AnonConst {
id: ast::DUMMY_NODE_ID,
value: P(ast::Expr { id: ast::DUMMY_NODE_ID, kind, span, attrs: AttrVec::new() }),
value: P(ast::Expr {
id: ast::DUMMY_NODE_ID,
kind,
span,
attrs: AttrVec::new(),
tokens: None,
}),
}
}

Expand Down Expand Up @@ -210,7 +216,7 @@ impl<'a> ExtCtxt<'a> {
}

pub fn expr(&self, span: Span, kind: ast::ExprKind) -> P<ast::Expr> {
P(ast::Expr { id: ast::DUMMY_NODE_ID, kind, span, attrs: AttrVec::new() })
P(ast::Expr { id: ast::DUMMY_NODE_ID, kind, span, attrs: AttrVec::new(), tokens: None })
}

pub fn expr_path(&self, path: ast::Path) -> P<ast::Expr> {
Expand Down
1 change: 1 addition & 0 deletions src/librustc_expand/placeholders.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ pub fn placeholder(
span,
attrs: ast::AttrVec::new(),
kind: ast::ExprKind::MacCall(mac_placeholder()),
tokens: None,
})
};
let ty = || P(ast::Ty { id, kind: ast::TyKind::MacCall(mac_placeholder()), span });
Expand Down
2 changes: 2 additions & 0 deletions src/librustc_interface/util.rs
Original file line number Diff line number Diff line change
Expand Up @@ -719,6 +719,7 @@ impl<'a> MutVisitor for ReplaceBodyWithLoop<'a, '_> {
kind: ast::ExprKind::Block(P(b), None),
span: rustc_span::DUMMY_SP,
attrs: AttrVec::new(),
tokens: None,
});

ast::Stmt {
Expand All @@ -734,6 +735,7 @@ impl<'a> MutVisitor for ReplaceBodyWithLoop<'a, '_> {
id: self.resolver.next_node_id(),
span: rustc_span::DUMMY_SP,
attrs: AttrVec::new(),
tokens: None,
});

let loop_stmt = ast::Stmt {
Expand Down
1 change: 1 addition & 0 deletions src/librustc_parse/parser/diagnostics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ impl RecoverQPath for Expr {
kind: ExprKind::Path(qself, path),
attrs: AttrVec::new(),
id: ast::DUMMY_NODE_ID,
tokens: None,
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/librustc_parse/parser/expr.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2122,7 +2122,7 @@ impl<'a> Parser<'a> {
}

crate fn mk_expr(&self, span: Span, kind: ExprKind, attrs: AttrVec) -> P<Expr> {
P(Expr { kind, span, attrs, id: DUMMY_NODE_ID })
P(Expr { kind, span, attrs, id: DUMMY_NODE_ID, tokens: None })
}

pub(super) fn mk_expr_err(&self, span: Span) -> P<Expr> {
Expand Down

0 comments on commit e189a6a

Please sign in to comment.