aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Makefile1
-rw-r--r--src/comp/middle/trans.rs6
-rw-r--r--src/test/run-pass/generic-fn-box.rs9
3 files changed, 3 insertions, 13 deletions
diff --git a/src/Makefile b/src/Makefile
index 12b65246..70b3ca0f 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 72f1106b..30f3cdc4 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 e821a784..00000000
--- 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;
-}
-