Fix generation of str/@. Closes #2638.
This commit is contained in:
parent
797856cbde
commit
30dd32d4db
3 changed files with 9 additions and 4 deletions
|
|
@ -290,7 +290,9 @@ fn trans_estr(bcx: block, s: @str, vstore: ast::vstore,
|
|||
ast::vstore_box {
|
||||
let cs = PointerCast(bcx, C_cstr(ccx, *s), T_ptr(T_i8()));
|
||||
let len = C_uint(ccx, str::len(*s));
|
||||
Call(bcx, ccx.upcalls.str_new_shared, [cs, len])
|
||||
let c = Call(bcx, ccx.upcalls.str_new_shared, [cs, len]);
|
||||
PointerCast(bcx, c,
|
||||
T_box_ptr(T_box(ccx, T_vec(ccx, T_i8()))))
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -93,7 +93,9 @@ fn type_of(cx: @crate_ctxt, t: ty::t) -> TypeRef {
|
|||
T_unique_ptr(T_unique(cx, T_vec(cx, T_i8())))
|
||||
}
|
||||
ty::ty_enum(did, _) { type_of_enum(cx, did, t) }
|
||||
ty::ty_estr(ty::vstore_box) { T_box_ptr(T_box(cx, T_i8())) }
|
||||
ty::ty_estr(ty::vstore_box) {
|
||||
T_box_ptr(T_box(cx, T_vec(cx, T_i8())))
|
||||
}
|
||||
ty::ty_evec(mt, ty::vstore_box) {
|
||||
T_box_ptr(T_box(cx, T_vec(cx, type_of(cx, mt.ty))))
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue