From aae212727d40140181ca6f481b7e4bc75a64c796 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Mon, 22 Aug 2011 16:12:42 -0700 Subject: [PATCH] Encode the istr shape correctly. Issue #855 --- src/comp/middle/shape.rs | 9 +++++++-- src/test/run-pass/istr.rs | 6 ++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/comp/middle/shape.rs b/src/comp/middle/shape.rs index f3ada9b7ca49..fa15e7012b13 100644 --- a/src/comp/middle/shape.rs +++ b/src/comp/middle/shape.rs @@ -308,8 +308,13 @@ fn shape_of(ccx: &@crate_ctxt, t: ty::t) -> [u8] { ty::ty_str. { s += [shape_evec, 1u8, 1u8, 0u8, shape_u8]; } - ty::ty_istr. { s += [shape_ivec, 1u8, 1u8, 0u8, shape_u8]; } - + ty::ty_istr. { + s += [shape_ivec]; + add_bool(s, true); // type is POD + let unit_ty = ty::mk_mach(ccx.tcx, ast::ty_u8); + add_size_hint(ccx, s, unit_ty); + add_substr(s, shape_of(ccx, unit_ty)); + } ty::ty_tag(did, tps) { alt tag_kind(ccx, did) { diff --git a/src/test/run-pass/istr.rs b/src/test/run-pass/istr.rs index 2eef9399e8da..419a8cd9d730 100644 --- a/src/test/run-pass/istr.rs +++ b/src/test/run-pass/istr.rs @@ -16,8 +16,14 @@ fn test_heap_assign() { s = ~"AAAA"; } +fn test_heap_log() { + let s = ~"a big ol' string"; + log s; +} + fn main() { test_stack_assign(); test_heap_lit(); test_heap_assign(); + test_heap_log(); } \ No newline at end of file