Skip to content

Commit ae8fbda

Browse files
committed
---
yaml --- r: 1308 b: refs/heads/master c: a2081de h: refs/heads/master v: v3
1 parent 0295240 commit ae8fbda

File tree

4 files changed

+12
-24
lines changed

4 files changed

+12
-24
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: 99106e4029860b3937bf82db5fb3e3dcd651243c
2+
refs/heads/master: a2081deb2d16c58f2b367ad8a8d4a047d80f51a6

trunk/src/Makefile

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -428,7 +428,6 @@ TEST_XFAILS_RUSTC := $(filter-out \
428428
arith-1.rs \
429429
arith-2.rs \
430430
autoderef-full-lval.rs \
431-
bind-exterior.rs \
432431
bind-interior.rs \
433432
bind-thunk.rs \
434433
bind-trivial.rs \
@@ -445,7 +444,6 @@ TEST_XFAILS_RUSTC := $(filter-out \
445444
deref.rs \
446445
div-mod.rs \
447446
drop-bind-thunk-args.rs \
448-
drop-on-empty-block-exit.rs \
449447
drop-on-ret.rs \
450448
fact.rs \
451449
fn-lval.rs \
@@ -470,7 +468,6 @@ TEST_XFAILS_RUSTC := $(filter-out \
470468
large-records.rs \
471469
lazy-init.rs \
472470
lazy-and-or.rs \
473-
leak-box-as-tydesc.rs \
474471
linear-for-loop.rs \
475472
multiline-comment.rs \
476473
mutual-recursion-group.rs \

trunk/src/comp/middle/resolve.rs

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ tag def_wrap {
3535
def_wrap_import(@ast.view_item);
3636
def_wrap_mod(@ast.item);
3737
def_wrap_other(def);
38-
def_wrap_expr_field(uint);
38+
def_wrap_expr_field(uint, def);
3939
def_wrap_resolving;
4040
}
4141

@@ -72,6 +72,9 @@ fn unwrap_def(def_wrap d) -> def {
7272
case (def_wrap_other(?d)) {
7373
ret d;
7474
}
75+
case (def_wrap_expr_field(_, ?d)) {
76+
ret d;
77+
}
7578
}
7679
}
7780

@@ -140,9 +143,9 @@ fn find_final_def(&env e, import_map index,
140143
case (def_wrap_use(?c)) {
141144
e.sess.span_err(sp, "Crate access is not implemented");
142145
}
143-
case (_) {
146+
case (def_wrap_other(?d)) {
144147
let uint l = _vec.len[ident](idents);
145-
ret def_wrap_expr_field(l);
148+
ret def_wrap_expr_field(l, d);
146149
}
147150
}
148151
fail;
@@ -419,26 +422,13 @@ fn fold_pat_tag(&env e, &span sp, ast.path p, vec[@ast.pat] args,
419422
fn fold_expr_path(&env e, &span sp, &ast.path p, &option.t[def] d,
420423
ann a) -> @ast.expr {
421424
auto n_idents = _vec.len[ast.ident](p.node.idents);
422-
423425
check (n_idents != 0u);
424-
auto id0 = p.node.idents.(0);
425-
426-
auto d_ = lookup_name(e, id0);
427-
428-
alt (d_) {
429-
case (some[def](_)) {
430-
// log "resolved name " + n.node.ident;
431-
}
432-
case (none[def]) {
433-
e.sess.span_err(sp, "unresolved name: " + id0);
434-
}
435-
}
436426

437427
auto index = new_def_hash[def_wrap]();
438428
auto d = find_final_def(e, index, sp, p.node.idents, none[ast.def_id]);
439429
let uint path_len = 0u;
440430
alt (d) {
441-
case (def_wrap_expr_field(?remaining)) {
431+
case (def_wrap_expr_field(?remaining, _)) {
442432
path_len = n_idents - remaining + 1u;
443433
}
444434
case (def_wrap_other(_)) {
@@ -453,7 +443,8 @@ fn fold_expr_path(&env e, &span sp, &ast.path p, &option.t[def] d,
453443
}
454444
auto path_elems =
455445
_vec.slice[ident](p.node.idents, 0u, path_len);
456-
auto p_ = rec(node=rec(idents = vec(id0) with p.node) with p);
446+
auto p_ = rec(node=rec(idents = path_elems with p.node) with p);
447+
auto d_ = some(unwrap_def(d));
457448
auto ex = @fold.respan[ast.expr_](sp, ast.expr_path(p_, d_, a));
458449
auto i = path_len;
459450
while (i < n_idents) {
@@ -473,7 +464,7 @@ fn fold_view_item_import(&env e, &span sp,
473464
auto last_id = is.(len - 1u);
474465
auto d = find_final_def(e, index, sp, is, some(id));
475466
alt (d) {
476-
case (def_wrap_expr_field(?remain)) {
467+
case (def_wrap_expr_field(?remain, _)) {
477468
auto ident = is.(len - remain);
478469
e.sess.span_err(sp, ident + " is not a module or crate");
479470
}

trunk/src/test/run-pass/box-unbox.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
type box[T] = tup(@T);
22

3-
fn unbox[T](&box[T] b) -> T { ret *b._0; }
3+
fn unbox[T](box[T] b) -> T { ret *b._0; }
44

55
fn main() {
66
let int foo = 17;

0 commit comments

Comments
 (0)