auto merge of : dotdash/rust/fmt, r=graydon

Only the first portion has to be owned, as it acts as the buffer for the
constructed string. The remaining strings can be static.
This commit is contained in:
bors 2013-05-03 20:48:37 -07:00
commit 821979f928

@ -273,15 +273,13 @@ fn pieces_to_expr(cx: @ext_ctxt, sp: span,
match pc {
/* Raw strings get appended via str::push_str */
PieceString(s) => {
let portion = mk_uniq_str(cx, fmt_sp, s);
/* If this is the first portion, then initialize the local
buffer with it directly. If it's actually the only piece,
then there's no need for it to be mutable */
if i == 0 {
stms.push(mk_local(cx, fmt_sp, npieces > 1, ident, portion));
stms.push(mk_local(cx, fmt_sp, npieces > 1, ident, mk_uniq_str(cx, fmt_sp, s)));
} else {
let args = ~[mk_mut_addr_of(cx, fmt_sp, buf()), portion];
let args = ~[mk_mut_addr_of(cx, fmt_sp, buf()), mk_base_str(cx, fmt_sp, s)];
let call = mk_call_global(cx,
fmt_sp,
~[str_ident, push_ident],