diff options
| author | Michael Woerister <michaelwoerister@gmail> | 2013-07-19 16:24:22 +0200 |
|---|---|---|
| committer | Michael Woerister <michaelwoerister@gmail> | 2013-07-22 15:35:29 +0200 |
| commit | 5aee3e01a02e0b31ad225e70899a671937ab65ee (patch) | |
| tree | 3c56d4a34e9320acf99efd25d0ef35fe25d43835 /src/libsyntax | |
| parent | 4bd14246227255843e420c3c691ec9a59cea1a9f (diff) | |
| download | rust-5aee3e01a02e0b31ad225e70899a671937ab65ee.tar.gz rust-5aee3e01a02e0b31ad225e70899a671937ab65ee.zip | |
De-spanned<T> and renamed ast::field (now ast::Field)
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/ast.rs | 7 | ||||
| -rw-r--r-- | src/libsyntax/ext/build.rs | 14 | ||||
| -rw-r--r-- | src/libsyntax/fold.rs | 10 | ||||
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 11 | ||||
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 8 | ||||
| -rw-r--r-- | src/libsyntax/visit.rs | 2 |
6 files changed, 25 insertions, 27 deletions
diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs index 0874163118a..95691c334b1 100644 --- a/src/libsyntax/ast.rs +++ b/src/libsyntax/ast.rs @@ -409,13 +409,12 @@ pub struct arm { } #[deriving(Clone, Eq, Encodable, Decodable, IterBytes)] -pub struct field_ { +pub struct Field { ident: ident, expr: @expr, + span: span, } -pub type field = spanned<field_>; - #[deriving(Clone, Eq, Encodable, Decodable, IterBytes)] pub enum blk_check_mode { default_blk, @@ -495,7 +494,7 @@ pub enum expr_ { expr_mac(mac), // A struct literal expression. - expr_struct(Path, ~[field], Option<@expr>), + expr_struct(Path, ~[Field], Option<@expr>), // A vector literal constructed from one repeated element. expr_repeat(@expr /* element */, @expr /* count */, mutability), diff --git a/src/libsyntax/ext/build.rs b/src/libsyntax/ext/build.rs index 3b32173dfb5..b3d65dfa9e2 100644 --- a/src/libsyntax/ext/build.rs +++ b/src/libsyntax/ext/build.rs @@ -107,9 +107,9 @@ pub trait AstBuilder { args: ~[@ast::expr]) -> @ast::expr; fn expr_blk(&self, b: ast::Block) -> @ast::expr; - fn field_imm(&self, span: span, name: ident, e: @ast::expr) -> ast::field; - fn expr_struct(&self, span: span, path: ast::Path, fields: ~[ast::field]) -> @ast::expr; - fn expr_struct_ident(&self, span: span, id: ast::ident, fields: ~[ast::field]) -> @ast::expr; + fn field_imm(&self, span: span, name: ident, e: @ast::expr) -> ast::Field; + fn expr_struct(&self, span: span, path: ast::Path, fields: ~[ast::Field]) -> @ast::expr; + fn expr_struct_ident(&self, span: span, id: ast::ident, fields: ~[ast::Field]) -> @ast::expr; fn expr_lit(&self, sp: span, lit: ast::lit_) -> @ast::expr; @@ -477,14 +477,14 @@ impl AstBuilder for @ExtCtxt { fn expr_blk(&self, b: ast::Block) -> @ast::expr { self.expr(b.span, ast::expr_block(b)) } - fn field_imm(&self, span: span, name: ident, e: @ast::expr) -> ast::field { - respan(span, ast::field_ { ident: name, expr: e }) + fn field_imm(&self, span: span, name: ident, e: @ast::expr) -> ast::Field { + ast::Field { ident: name, expr: e, span: span } } - fn expr_struct(&self, span: span, path: ast::Path, fields: ~[ast::field]) -> @ast::expr { + fn expr_struct(&self, span: span, path: ast::Path, fields: ~[ast::Field]) -> @ast::expr { self.expr(span, ast::expr_struct(path, fields, None)) } fn expr_struct_ident(&self, span: span, - id: ast::ident, fields: ~[ast::field]) -> @ast::expr { + id: ast::ident, fields: ~[ast::Field]) -> @ast::expr { self.expr_struct(span, self.path_ident(span, id), fields) } diff --git a/src/libsyntax/fold.rs b/src/libsyntax/fold.rs index 6af08d0a8d5..f27e68641e3 100644 --- a/src/libsyntax/fold.rs +++ b/src/libsyntax/fold.rs @@ -488,12 +488,10 @@ pub fn wrap<T>(f: @fn(&T, @ast_fold) -> T) } pub fn noop_fold_expr(e: &expr_, fld: @ast_fold) -> expr_ { - fn fold_field_(field: field, fld: @ast_fold) -> field { - spanned { - node: ast::field_ { - ident: fld.fold_ident(field.node.ident), - expr: fld.fold_expr(field.node.expr), - }, + fn fold_field_(field: Field, fld: @ast_fold) -> Field { + ast::Field { + ident: fld.fold_ident(field.ident), + expr: fld.fold_expr(field.expr), span: fld.new_span(field.span), } } diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 2e8e69561e8..a4fd4929400 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -29,7 +29,7 @@ use ast::{expr_method_call, expr_paren, expr_path, expr_repeat}; use ast::{expr_ret, expr_self, expr_struct, expr_tup, expr_unary}; use ast::{expr_vec, expr_vstore, expr_vstore_mut_box}; use ast::{expr_vstore_slice, expr_vstore_box}; -use ast::{expr_vstore_mut_slice, expr_while, extern_fn, field, fn_decl}; +use ast::{expr_vstore_mut_slice, expr_while, extern_fn, Field, fn_decl}; use ast::{expr_vstore_uniq, Onceness, Once, Many}; use ast::{foreign_item, foreign_item_static, foreign_item_fn, foreign_mod}; use ast::{ident, impure_fn, inherited, item, item_, item_static}; @@ -1498,15 +1498,16 @@ impl Parser { } // parse ident COLON expr - pub fn parse_field(&self) -> field { + pub fn parse_field(&self) -> Field { let lo = self.span.lo; let i = self.parse_ident(); self.expect(&token::COLON); let e = self.parse_expr(); - spanned(lo, e.span.hi, ast::field_ { + ast::Field { ident: i, - expr: e - }) + expr: e, + span: mk_sp(lo, e.span.hi), + } } pub fn mk_expr(&self, lo: BytePos, hi: BytePos, node: expr_) -> @expr { diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 7918e503957..8e2c24cacfe 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -1103,14 +1103,14 @@ pub fn print_call_post(s: @ps, } pub fn print_expr(s: @ps, expr: &ast::expr) { - fn print_field(s: @ps, field: &ast::field) { + fn print_field(s: @ps, field: &ast::Field) { ibox(s, indent_unit); - print_ident(s, field.node.ident); + print_ident(s, field.ident); word_space(s, ":"); - print_expr(s, field.node.expr); + print_expr(s, field.expr); end(s); } - fn get_span(field: &ast::field) -> codemap::span { return field.span; } + fn get_span(field: &ast::Field) -> codemap::span { return field.span; } maybe_print_comment(s, expr.span.lo); ibox(s, indent_unit); diff --git a/src/libsyntax/visit.rs b/src/libsyntax/visit.rs index ce707979c06..7e86adfcb63 100644 --- a/src/libsyntax/visit.rs +++ b/src/libsyntax/visit.rs @@ -474,7 +474,7 @@ pub fn visit_expr<E:Clone>(ex: @expr, (e, v): (E, vt<E>)) { expr_struct(ref p, ref flds, base) => { visit_path(p, (e.clone(), v)); for flds.iter().advance |f| { - (v.visit_expr)(f.node.expr, (e.clone(), v)); + (v.visit_expr)(f.expr, (e.clone(), v)); } visit_expr_opt(base, (e.clone(), v)); } |
