diff options
| author | bors <bors@rust-lang.org> | 2014-06-17 02:51:53 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2014-06-17 02:51:53 +0000 |
| commit | 09967665eaa5ca3d259f0f59ef26c8d236bf47a7 (patch) | |
| tree | ae450abfecbe1fdec6f583cf7cf743c35663a4c7 /src/libsyntax/ext | |
| parent | cc30abbcad282634fb99089eb9297e7cc4f26729 (diff) | |
| parent | b9adb6c717627ab6dcc9298b79a8d44cfe2fc616 (diff) | |
| download | rust-09967665eaa5ca3d259f0f59ef26c8d236bf47a7.tar.gz rust-09967665eaa5ca3d259f0f59ef26c8d236bf47a7.zip | |
auto merge of #14955 : alexcrichton/rust/rollup, r=alexcrichton
Diffstat (limited to 'src/libsyntax/ext')
| -rw-r--r-- | src/libsyntax/ext/build.rs | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/libsyntax/ext/build.rs b/src/libsyntax/ext/build.rs index b99ab50c326..8d48401f9c2 100644 --- a/src/libsyntax/ext/build.rs +++ b/src/libsyntax/ext/build.rs @@ -13,7 +13,7 @@ use ast::{P, Ident, Generics, NodeId, Expr}; use ast; use ast_util; use attr; -use codemap::{Span, respan, Spanned, DUMMY_SP}; +use codemap::{Span, respan, Spanned, DUMMY_SP, Pos}; use ext::base::ExtCtxt; use fold::Folder; use owned_slice::OwnedSlice; @@ -560,7 +560,15 @@ impl<'a> AstBuilder for ExtCtxt<'a> { } fn expr_field_access(&self, sp: Span, expr: Gc<ast::Expr>, ident: ast::Ident) -> Gc<ast::Expr> { - self.expr(sp, ast::ExprField(expr, ident, Vec::new())) + let field_name = token::get_ident(ident); + let field_span = Span { + lo: sp.lo - Pos::from_uint(field_name.get().len()), + hi: sp.hi, + expn_info: sp.expn_info, + }; + + let id = Spanned { node: ident, span: field_span }; + self.expr(sp, ast::ExprField(expr, id, Vec::new())) } fn expr_addr_of(&self, sp: Span, e: Gc<ast::Expr>) -> Gc<ast::Expr> { self.expr(sp, ast::ExprAddrOf(ast::MutImmutable, e)) |
