diff --git a/src/Makefile b/src/Makefile index 12b65246754..70b3ca0f53d 100644 --- a/src/Makefile +++ b/src/Makefile @@ -416,7 +416,6 @@ TEST_XFAILS_BOOT := $(TASK_XFAILS) \ test/run-pass/obj-as.rs \ test/run-pass/vec-slice.rs \ test/run-pass/fn-lval.rs \ - test/run-pass/generic-fn-box.rs \ test/run-pass/generic-recursive-tag.rs \ test/run-pass/generic-tup.rs \ test/run-pass/iter-ret.rs \ diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs index 72f1106b217..30f3cdc4495 100644 --- a/src/comp/middle/trans.rs +++ b/src/comp/middle/trans.rs @@ -3132,9 +3132,9 @@ fn trans_args(@block_ctxt cx, bcx = re.bcx; } - if (ty.count_ty_params(args.(i).ty) > 0u) { - auto lldestty = type_of(cx.fcx.ccx, args.(i).ty); - val = bcx.build.PointerCast(val, lldestty); + if (ty.type_has_dynamic_size(args.(i).ty)) { + val = bcx.build.PointerCast(val, + T_typaram_ptr(cx.fcx.ccx.tn)); } llargs += val; diff --git a/src/test/run-pass/generic-fn-box.rs b/src/test/run-pass/generic-fn-box.rs deleted file mode 100644 index e821a784598..00000000000 --- a/src/test/run-pass/generic-fn-box.rs +++ /dev/null @@ -1,9 +0,0 @@ -fn f[T](@T x) -> @T { - ret x; -} - -fn main() { - auto x = f(@3); - log *x; -} -