aboutsummaryrefslogtreecommitdiff
path: root/src/comp
diff options
context:
space:
mode:
authorPatrick Walton <[email protected]>2011-02-23 18:39:27 -0800
committerPatrick Walton <[email protected]>2011-02-24 12:33:08 -0800
commit0a65283c5eeae0b98fff7d213dbaad59889e677e (patch)
treeabd9bba82b09433078eda65c62aa0a880763ac8b /src/comp
parentParse crate directive tree in one pass, then evaluate it in a second. (diff)
downloadrust-0a65283c5eeae0b98fff7d213dbaad59889e677e.tar.xz
rust-0a65283c5eeae0b98fff7d213dbaad59889e677e.zip
Cast more aggressively to the callee type when calling generic functions. Add a test-case for this, and XFAIL it in rustboot.
Diffstat (limited to 'src/comp')
-rw-r--r--src/comp/middle/trans.rs6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs
index 30f3cdc4..72f1106b 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.type_has_dynamic_size(args.(i).ty)) {
- val = bcx.build.PointerCast(val,
- T_typaram_ptr(cx.fcx.ccx.tn));
+ 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);
}
llargs += val;