about summary refs log tree commit diff
path: root/src/comp/middle
diff options
context:
space:
mode:
authorGraydon Hoare <graydon@mozilla.com>2011-05-30 15:56:01 -0700
committerGraydon Hoare <graydon@mozilla.com>2011-05-31 11:00:47 -0700
commitb48cab962a08e370af523d082ef8946dfcfd3059 (patch)
tree24e7ca85c92746e5d92f84cacb972c4b0d83ce27 /src/comp/middle
parentd12ea3989649616437a7c1434f5c5a6438235eb7 (diff)
downloadrust-b48cab962a08e370af523d082ef8946dfcfd3059.tar.gz
rust-b48cab962a08e370af523d082ef8946dfcfd3059.zip
Add span to field to catch per-field comments in rec exprs.
Diffstat (limited to 'src/comp/middle')
-rw-r--r--src/comp/middle/trans.rs4
-rw-r--r--src/comp/middle/typeck.rs17
-rw-r--r--src/comp/middle/walk.rs2
3 files changed, 12 insertions, 11 deletions
diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs
index 864180ef919..625db8d4c71 100644
--- a/src/comp/middle/trans.rs
+++ b/src/comp/middle/trans.rs
@@ -5423,9 +5423,9 @@ fn trans_rec(&@block_ctxt cx, &vec[ast::field] fields,
         auto src_res = res(bcx, C_nil());
 
         for (ast::field f in fields) {
-            if (str::eq(f.ident, tf.ident)) {
+            if (str::eq(f.node.ident, tf.ident)) {
                 expr_provided = true;
-                src_res = trans_expr(bcx, f.expr);
+                src_res = trans_expr(bcx, f.node.expr);
             }
         }
         if (!expr_provided) {
diff --git a/src/comp/middle/typeck.rs b/src/comp/middle/typeck.rs
index bc29ac8e2db..1be5472257e 100644
--- a/src/comp/middle/typeck.rs
+++ b/src/comp/middle/typeck.rs
@@ -1248,11 +1248,11 @@ mod pushdown {
                             case (none) {
                                 auto i = 0u;
                                 for (ast::field field_0 in fields_0) {
-                                    assert (str::eq(field_0.ident,
+                                    assert (str::eq(field_0.node.ident,
                                                     field_mts.(i).ident));
                                     pushdown_expr(scx,
                                                   field_mts.(i).mt.ty,
-                                                  field_0.expr);
+                                                  field_0.node.expr);
                                     i += 1u;
                                 }
                             }
@@ -1263,10 +1263,10 @@ mod pushdown {
                                 for (ast::field field_0 in fields_0) {
 
                                     for (ty::field ft in field_mts) {
-                                        if (str::eq(field_0.ident,
+                                        if (str::eq(field_0.node.ident,
                                                     ft.ident)) {
                                             pushdown_expr(scx, ft.mt.ty,
-                                                          field_0.expr);
+                                                          field_0.node.expr);
                                         }
                                     }
                                 }
@@ -2461,11 +2461,12 @@ fn check_expr(&@stmt_ctxt scx, &@ast::expr expr) {
             let vec[field] fields_t = [];
 
             for (ast::field f in fields) {
-                check_expr(scx, f.expr);
-                auto expr_t = expr_ty(scx.fcx.ccx.tcx, f.expr);
+                check_expr(scx, f.node.expr);
+                auto expr_t = expr_ty(scx.fcx.ccx.tcx, f.node.expr);
 
-                auto expr_mt = rec(ty=expr_t, mut=f.mut);
-                vec::push[field](fields_t, rec(ident=f.ident, mt=expr_mt));
+                auto expr_mt = rec(ty=expr_t, mut=f.node.mut);
+                vec::push[field](fields_t, rec(ident=f.node.ident,
+                                               mt=expr_mt));
             }
 
             alt (base) {
diff --git a/src/comp/middle/walk.rs b/src/comp/middle/walk.rs
index 3d50c2ddfbc..b57f3217c3f 100644
--- a/src/comp/middle/walk.rs
+++ b/src/comp/middle/walk.rs
@@ -323,7 +323,7 @@ fn walk_expr(&ast_visitor v, @ast::expr e) {
         }
         case (ast::expr_rec(?flds, ?base, _)) {
             for (ast::field f in flds) {
-                walk_expr(v, f.expr);
+                walk_expr(v, f.node.expr);
             }
             walk_expr_opt(v, base);
         }