diff --git a/src/Makefile b/src/Makefile index a1c38bb923411e00078a9ccd88d91fa6be019956..c1f33b91929f19cb5cd64adc8f78e10f8035f0c2 100644 --- a/src/Makefile +++ b/src/Makefile @@ -449,6 +449,7 @@ TEST_XFAILS_RUSTC := $(filter-out \ arith-0.rs \ arith-1.rs \ arith-2.rs \ + auto-instantiate.rs \ autoderef-full-lval.rs \ bind-exterior.rs \ bind-interior.rs \ @@ -479,6 +480,7 @@ TEST_XFAILS_RUSTC := $(filter-out \ generic-exterior-box.rs \ generic-drop-glue.rs \ generic-obj.rs \ + generic-obj-with-derived-type.rs \ generic-tup.rs \ generic-type.rs \ generic-type-synonym.rs \ diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs index 6399b900f5ef1442095efb7fc90669c2c903958d..4135a6e59de92a2a704305078916229b31e2c596 100644 --- a/src/comp/middle/trans.rs +++ b/src/comp/middle/trans.rs @@ -2376,10 +2376,8 @@ fn trans_path(@block_ctxt cx, &ast.path p, &option.t[ast.def] dopt, fn trans_field(@block_ctxt cx, &ast.span sp, @ast.expr base, &ast.ident field, &ast.ann ann) -> lval_result { - auto lv = trans_lval(cx, base); - auto r = lv.res; + auto r = trans_expr(cx, base); r = autoderef(r.bcx, r.val, ty.expr_ty(base)); - check (lv.is_mem); auto t = ty.expr_ty(base); alt (t.struct) { case (ty.ty_tup(?fields)) {