Skip to content

Commit a5023be

Browse files
committed
---
yaml --- r: 2853 b: refs/heads/master c: b48cab9 h: refs/heads/master i: 2851: 1ebf45d v: v3
1 parent 3293c0b commit a5023be

File tree

9 files changed

+28
-23
lines changed

9 files changed

+28
-23
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: d12ea3989649616437a7c1434f5c5a6438235eb7
2+
refs/heads/master: b48cab962a08e370af523d082ef8946dfcfd3059

trunk/src/comp/front/ast.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,8 @@ tag decl_ {
229229
type arm = rec(@pat pat, block block);
230230
231231
type elt = rec(mutability mut, @expr expr);
232-
type field = rec(mutability mut, ident ident, @expr expr);
232+
type field_ = rec(mutability mut, ident ident, @expr expr);
233+
type field = spanned[field_];
233234
234235
tag spawn_dom {
235236
dom_implicit;

trunk/src/comp/front/extfmt.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -148,9 +148,9 @@ fn pieces_to_expr(parser p, vec[piece] pieces, vec[@ast::expr] args)
148148
for (tup(ast::ident, @ast::expr) field in fields) {
149149
auto ident = field._0;
150150
auto val = field._1;
151-
auto astfield = rec(mut = ast::imm,
152-
ident = ident,
153-
expr = val);
151+
auto astfield = rec(node=rec(mut = ast::imm,
152+
ident = ident,
153+
expr = val), span=sp);
154154
astfields += [astfield];
155155
}
156156

trunk/src/comp/front/parser.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -737,11 +737,12 @@ fn parse_mutability(&parser p) -> ast::mutability {
737737
}
738738

739739
fn parse_field(&parser p) -> ast::field {
740+
auto lo = p.get_lo_pos();
740741
auto m = parse_mutability(p);
741742
auto i = parse_ident(p);
742743
expect(p, token::EQ);
743744
auto e = parse_expr(p);
744-
ret rec(mut=m, ident=i, expr=e);
745+
ret spanned(lo, e.span.hi, rec(mut=m, ident=i, expr=e));
745746
}
746747

747748
fn parse_bottom_expr(&parser p) -> @ast::expr {

trunk/src/comp/middle/trans.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5423,9 +5423,9 @@ fn trans_rec(&@block_ctxt cx, &vec[ast::field] fields,
54235423
auto src_res = res(bcx, C_nil());
54245424

54255425
for (ast::field f in fields) {
5426-
if (str::eq(f.ident, tf.ident)) {
5426+
if (str::eq(f.node.ident, tf.ident)) {
54275427
expr_provided = true;
5428-
src_res = trans_expr(bcx, f.expr);
5428+
src_res = trans_expr(bcx, f.node.expr);
54295429
}
54305430
}
54315431
if (!expr_provided) {

trunk/src/comp/middle/typeck.rs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1248,11 +1248,11 @@ mod pushdown {
12481248
case (none) {
12491249
auto i = 0u;
12501250
for (ast::field field_0 in fields_0) {
1251-
assert (str::eq(field_0.ident,
1251+
assert (str::eq(field_0.node.ident,
12521252
field_mts.(i).ident));
12531253
pushdown_expr(scx,
12541254
field_mts.(i).mt.ty,
1255-
field_0.expr);
1255+
field_0.node.expr);
12561256
i += 1u;
12571257
}
12581258
}
@@ -1263,10 +1263,10 @@ mod pushdown {
12631263
for (ast::field field_0 in fields_0) {
12641264

12651265
for (ty::field ft in field_mts) {
1266-
if (str::eq(field_0.ident,
1266+
if (str::eq(field_0.node.ident,
12671267
ft.ident)) {
12681268
pushdown_expr(scx, ft.mt.ty,
1269-
field_0.expr);
1269+
field_0.node.expr);
12701270
}
12711271
}
12721272
}
@@ -2461,11 +2461,12 @@ fn check_expr(&@stmt_ctxt scx, &@ast::expr expr) {
24612461
let vec[field] fields_t = [];
24622462

24632463
for (ast::field f in fields) {
2464-
check_expr(scx, f.expr);
2465-
auto expr_t = expr_ty(scx.fcx.ccx.tcx, f.expr);
2464+
check_expr(scx, f.node.expr);
2465+
auto expr_t = expr_ty(scx.fcx.ccx.tcx, f.node.expr);
24662466

2467-
auto expr_mt = rec(ty=expr_t, mut=f.mut);
2468-
vec::push[field](fields_t, rec(ident=f.ident, mt=expr_mt));
2467+
auto expr_mt = rec(ty=expr_t, mut=f.node.mut);
2468+
vec::push[field](fields_t, rec(ident=f.node.ident,
2469+
mt=expr_mt));
24692470
}
24702471

24712472
alt (base) {

trunk/src/comp/middle/walk.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,7 @@ fn walk_expr(&ast_visitor v, @ast::expr e) {
323323
}
324324
case (ast::expr_rec(?flds, ?base, _)) {
325325
for (ast::field f in flds) {
326-
walk_expr(v, f.expr);
326+
walk_expr(v, f.node.expr);
327327
}
328328
walk_expr_opt(v, base);
329329
}

trunk/src/comp/pretty/pprust.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ fn commasep_cmnt[IN](ps s, breaks b, vec[IN] elts, fn(ps, &IN) op,
140140
auto len = vec::len[IN](elts);
141141
auto i = 0u;
142142
for (IN elt in elts) {
143+
maybe_print_comment(s, get_span(elt).hi);
143144
op(s, elt);
144145
i += 1u;
145146
if (i < len) {
@@ -485,14 +486,14 @@ fn print_expr(ps s, &@ast::expr expr) {
485486
case (ast::expr_rec(?fields,?wth,_)) {
486487
fn print_field(ps s, &ast::field field) {
487488
ibox(s.s, indent_unit);
488-
if (field.mut == ast::mut) {word_nbsp(s, "mutable");}
489-
word(s.s, field.ident);
489+
if (field.node.mut == ast::mut) {word_nbsp(s, "mutable");}
490+
word(s.s, field.node.ident);
490491
word(s.s, "=");
491-
print_expr(s, field.expr);
492+
print_expr(s, field.node.expr);
492493
end(s.s);
493494
}
494495
fn get_span(&ast::field field) -> common::span {
495-
ret field.expr.span;
496+
ret field.span;
496497
}
497498
word(s.s, "rec");
498499
popen(s);
@@ -1132,8 +1133,8 @@ fn print_comment(ps s, lexer::cmnt cmnt) {
11321133
zerobreak(s.s);
11331134
word_and_eol(s.s, line);
11341135
}
1135-
zerobreak(s.s);
11361136
end(s.s);
1137+
zerobreak(s.s);
11371138
}
11381139
case (lexer::trailing) {
11391140
cbox(s.s, 0u);
@@ -1142,6 +1143,7 @@ fn print_comment(ps s, lexer::cmnt cmnt) {
11421143
zerobreak(s.s);
11431144
}
11441145
end(s.s);
1146+
zerobreak(s.s);
11451147
}
11461148
case (lexer::mixed) {
11471149
assert vec::len(cmnt.lines) == 1u;

trunk/src/comp/util/common.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ fn elt_exprs(&vec[ast::elt] elts) -> vec[@ast::expr] {
118118
ret vec::map[ast::elt, @ast::expr](f, elts);
119119
}
120120

121-
fn field_expr(&ast::field f) -> @ast::expr { ret f.expr; }
121+
fn field_expr(&ast::field f) -> @ast::expr { ret f.node.expr; }
122122

123123
fn field_exprs(vec[ast::field] fields) -> vec [@ast::expr] {
124124
auto f = field_expr;

0 commit comments

Comments
 (0)