Skip to content

Commit 89d53e2

Browse files
committed
libsyntax: Remove an @str in pretty printing
1 parent ebd6665 commit 89d53e2

File tree

1 file changed

+21
-18
lines changed

1 file changed

+21
-18
lines changed

src/libsyntax/print/pp.rs

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ pub struct BeginToken {
8484

8585
#[deriving(Clone)]
8686
pub enum Token {
87-
String(@str, int),
87+
String(~str, int),
8888
Break(BreakToken),
8989
Begin(BeginToken),
9090
End,
@@ -131,7 +131,7 @@ pub fn buf_str(toks: ~[Token], szs: ~[int], left: uint, right: uint,
131131
if i != left {
132132
s.push_str(", ");
133133
}
134-
s.push_str(format!("{}={}", szs[i], tok_str(toks[i])));
134+
s.push_str(format!("{}={}", szs[i], tok_str(toks[i].clone())));
135135
i += 1u;
136136
i %= n;
137137
}
@@ -285,7 +285,9 @@ pub struct Printer {
285285
}
286286

287287
impl Printer {
288-
pub fn last_token(&mut self) -> Token { self.token[self.right] }
288+
pub fn last_token(&mut self) -> Token {
289+
self.token[self.right].clone()
290+
}
289291
// be very careful with this!
290292
pub fn replace_last_token(&mut self, t: Token) {
291293
self.token[self.right] = t;
@@ -296,8 +298,8 @@ impl Printer {
296298
Eof => {
297299
if !self.scan_stack_empty {
298300
self.check_stack(0);
299-
self.advance_left(self.token[self.left],
300-
self.size[self.left]);
301+
let left = self.token[self.left].clone();
302+
self.advance_left(left, self.size[self.left]);
301303
}
302304
self.indent(0);
303305
}
@@ -341,16 +343,16 @@ impl Printer {
341343
self.size[self.right] = -self.right_total;
342344
self.right_total += b.blank_space;
343345
}
344-
String(s, len) => {
346+
String(ref s, len) => {
345347
if self.scan_stack_empty {
346348
debug!("pp String('{}')/print ~[{},{}]",
347-
s, self.left, self.right);
348-
self.print(t, len);
349+
*s, self.left, self.right);
350+
self.print(t.clone(), len);
349351
} else {
350352
debug!("pp String('{}')/buffer ~[{},{}]",
351-
s, self.left, self.right);
353+
*s, self.left, self.right);
352354
self.advance_right();
353-
self.token[self.right] = t;
355+
self.token[self.right] = t.clone();
354356
self.size[self.right] = len;
355357
self.right_total += len;
356358
self.check_stream();
@@ -370,7 +372,8 @@ impl Printer {
370372
self.size[self.scan_pop_bottom()] = SIZE_INFINITY;
371373
}
372374
}
373-
self.advance_left(self.token[self.left], self.size[self.left]);
375+
let left = self.token[self.left].clone();
376+
self.advance_left(left, self.size[self.left]);
374377
if self.left != self.right { self.check_stream(); }
375378
}
376379
}
@@ -414,7 +417,7 @@ impl Printer {
414417
debug!("advnce_left ~[{},{}], sizeof({})={}", self.left, self.right,
415418
self.left, L);
416419
if L >= 0 {
417-
self.print(x, L);
420+
self.print(x.clone(), L);
418421
match x {
419422
Break(b) => self.left_total += b.blank_space,
420423
String(_, len) => {
@@ -425,8 +428,8 @@ impl Printer {
425428
if self.left != self.right {
426429
self.left += 1u;
427430
self.left %= self.buf_len;
428-
self.advance_left(self.token[self.left],
429-
self.size[self.left]);
431+
let left = self.token[self.left].clone();
432+
self.advance_left(left, self.size[self.left]);
430433
}
431434
}
432435
}
@@ -483,7 +486,7 @@ impl Printer {
483486
write!(self.out, "{}", s);
484487
}
485488
pub fn print(&mut self, x: Token, L: int) {
486-
debug!("print {} {} (remaining line space={})", tok_str(x), L,
489+
debug!("print {} {} (remaining line space={})", tok_str(x.clone()), L,
487490
self.space);
488491
debug!("{}", buf_str(self.token.clone(),
489492
self.size.clone(),
@@ -583,15 +586,15 @@ pub fn end(p: &mut Printer) { p.pretty_print(End); }
583586
pub fn eof(p: &mut Printer) { p.pretty_print(Eof); }
584587

585588
pub fn word(p: &mut Printer, wrd: &str) {
586-
p.pretty_print(String(/* bad */ wrd.to_managed(), wrd.len() as int));
589+
p.pretty_print(String(/* bad */ wrd.to_str(), wrd.len() as int));
587590
}
588591

589592
pub fn huge_word(p: &mut Printer, wrd: &str) {
590-
p.pretty_print(String(/* bad */ wrd.to_managed(), SIZE_INFINITY));
593+
p.pretty_print(String(/* bad */ wrd.to_str(), SIZE_INFINITY));
591594
}
592595

593596
pub fn zero_word(p: &mut Printer, wrd: &str) {
594-
p.pretty_print(String(/* bad */ wrd.to_managed(), 0));
597+
p.pretty_print(String(/* bad */ wrd.to_str(), 0));
595598
}
596599

597600
pub fn spaces(p: &mut Printer, n: uint) { break_offset(p, n, 0); }

0 commit comments

Comments
 (0)