Skip to content

Commit a62b317

Browse files
committed
---
yaml --- r: 1307 b: refs/heads/master c: 1086a2b h: refs/heads/master i: 1305: f514ae0 1303: 1d9d9f3 v: v3
1 parent 9ac5437 commit a62b317

File tree

3 files changed

+23
-11
lines changed

3 files changed

+23
-11
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: a2081deb2d16c58f2b367ad8a8d4a047d80f51a6
2+
refs/heads/master: 1086a2b7d1246770c2b0330a005e6ee828f22bd8

trunk/src/Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -428,6 +428,7 @@ TEST_XFAILS_RUSTC := $(filter-out \
428428
arith-1.rs \
429429
arith-2.rs \
430430
autoderef-full-lval.rs \
431+
bind-exterior.rs \
431432
bind-interior.rs \
432433
bind-thunk.rs \
433434
bind-trivial.rs \
@@ -444,6 +445,7 @@ TEST_XFAILS_RUSTC := $(filter-out \
444445
deref.rs \
445446
div-mod.rs \
446447
drop-bind-thunk-args.rs \
448+
drop-on-empty-block-exit.rs \
447449
drop-on-ret.rs \
448450
fact.rs \
449451
fn-lval.rs \
@@ -468,6 +470,7 @@ TEST_XFAILS_RUSTC := $(filter-out \
468470
large-records.rs \
469471
lazy-init.rs \
470472
lazy-and-or.rs \
473+
leak-box-as-tydesc.rs \
471474
linear-for-loop.rs \
472475
multiline-comment.rs \
473476
mutual-recursion-group.rs \

trunk/src/comp/middle/resolve.rs

Lines changed: 19 additions & 10 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, def);
38+
def_wrap_expr_field(uint);
3939
def_wrap_resolving;
4040
}
4141

@@ -72,9 +72,6 @@ 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-
}
7875
}
7976
}
8077

@@ -143,9 +140,9 @@ fn find_final_def(&env e, import_map index,
143140
case (def_wrap_use(?c)) {
144141
e.sess.span_err(sp, "Crate access is not implemented");
145142
}
146-
case (def_wrap_other(?d)) {
143+
case (_) {
147144
let uint l = _vec.len[ident](idents);
148-
ret def_wrap_expr_field(l, d);
145+
ret def_wrap_expr_field(l);
149146
}
150147
}
151148
fail;
@@ -422,13 +419,26 @@ fn fold_pat_tag(&env e, &span sp, ast.path p, vec[@ast.pat] args,
422419
fn fold_expr_path(&env e, &span sp, &ast.path p, &option.t[def] d,
423420
ann a) -> @ast.expr {
424421
auto n_idents = _vec.len[ast.ident](p.node.idents);
422+
425423
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+
}
426436

427437
auto index = new_def_hash[def_wrap]();
428438
auto d = find_final_def(e, index, sp, p.node.idents, none[ast.def_id]);
429439
let uint path_len = 0u;
430440
alt (d) {
431-
case (def_wrap_expr_field(?remaining, _)) {
441+
case (def_wrap_expr_field(?remaining)) {
432442
path_len = n_idents - remaining + 1u;
433443
}
434444
case (def_wrap_other(_)) {
@@ -443,8 +453,7 @@ fn fold_expr_path(&env e, &span sp, &ast.path p, &option.t[def] d,
443453
}
444454
auto path_elems =
445455
_vec.slice[ident](p.node.idents, 0u, path_len);
446-
auto p_ = rec(node=rec(idents = path_elems with p.node) with p);
447-
auto d_ = some(unwrap_def(d));
456+
auto p_ = rec(node=rec(idents = vec(id0) with p.node) with p);
448457
auto ex = @fold.respan[ast.expr_](sp, ast.expr_path(p_, d_, a));
449458
auto i = path_len;
450459
while (i < n_idents) {
@@ -464,7 +473,7 @@ fn fold_view_item_import(&env e, &span sp,
464473
auto last_id = is.(len - 1u);
465474
auto d = find_final_def(e, index, sp, is, some(id));
466475
alt (d) {
467-
case (def_wrap_expr_field(?remain, _)) {
476+
case (def_wrap_expr_field(?remain)) {
468477
auto ident = is.(len - remain);
469478
e.sess.span_err(sp, ident + " is not a module or crate");
470479
}

0 commit comments

Comments
 (0)