Skip to content

Commit 7089f83

Browse files
committed
---
yaml --- r: 97395 b: refs/heads/dist-snap c: ada9150 h: refs/heads/master i: 97393: 758642c 97391: 28d6dcd v: v3
1 parent 20a4085 commit 7089f83

File tree

3 files changed

+16
-20
lines changed

3 files changed

+16
-20
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ refs/heads/try: c274a6888410ce3e357e014568b43310ed787d36
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: 147ecfdd8221e4a4d4e090486829a06da1e0ca3c
9-
refs/heads/dist-snap: 39f0270544af19bf51b0088c93fe5cf58a8eccbe
9+
refs/heads/dist-snap: ada9150abf26912478aa6f613602f8ac7ba135e5
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
1212
refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0

branches/dist-snap/src/libsyntax/ext/expand.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1319,7 +1319,7 @@ mod test {
13191319
}
13201320

13211321
fn fake_print_crate(crate: &ast::Crate) {
1322-
let out = @mut std::io::stderr() as @mut std::io::Writer;
1322+
let mut out = ~std::io::stderr() as ~std::io::Writer;
13231323
let s = pprust::rust_printer(out, get_ident_interner());
13241324
pprust::print_crate_(s, crate);
13251325
}

branches/dist-snap/src/libsyntax/print/pprust.rs

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ pub fn print_crate(cm: @CodeMap,
122122
span_diagnostic: @diagnostic::SpanHandler,
123123
crate: &ast::Crate,
124124
filename: @str,
125-
input: @mut io::Reader,
125+
input: &mut io::Reader,
126126
out: ~io::Writer,
127127
ann: @pp_ann,
128128
is_expanded: bool) {
@@ -211,13 +211,8 @@ pub fn fun_to_str(decl: &ast::fn_decl, purity: ast::purity, name: ast::Ident,
211211
end(&mut s); // Close the head box
212212
end(&mut s); // Close the outer box
213213
eof(&mut s.s);
214-
215-
// XXX(pcwalton): Need checked downcasts.
216214
unsafe {
217-
let (_, wr): (uint, ~MemWriter) = cast::transmute(s.s.out);
218-
let result = str::from_utf8_owned(wr.inner_ref().to_owned());
219-
cast::forget(wr);
220-
result
215+
get_mem_writer(&mut s.s.out)
221216
}
222217
}
223218

@@ -230,13 +225,8 @@ pub fn block_to_str(blk: &ast::Block, intr: @ident_interner) -> ~str {
230225
ibox(&mut s, 0u);
231226
print_block(&mut s, blk);
232227
eof(&mut s.s);
233-
234-
// XXX(pcwalton): Need checked downcasts.
235228
unsafe {
236-
let (_, wr): (uint, ~MemWriter) = cast::transmute(s.s.out);
237-
let result = str::from_utf8_owned(wr.inner_ref().to_owned());
238-
cast::forget(wr);
239-
result
229+
get_mem_writer(&mut s.s.out)
240230
}
241231
}
242232

@@ -2318,17 +2308,23 @@ pub fn print_string(s: &mut ps, st: &str, style: ast::StrStyle) {
23182308
word(&mut s.s, st);
23192309
}
23202310

2311+
// XXX(pcwalton): A nasty function to extract the string from an `io::Writer`
2312+
// that we "know" to be a `MemWriter` that works around the lack of checked
2313+
// downcasts.
2314+
unsafe fn get_mem_writer(writer: &mut ~io::Writer) -> ~str {
2315+
let (_, wr): (uint, ~MemWriter) = cast::transmute_copy(writer);
2316+
let result = str::from_utf8_owned(wr.inner_ref().to_owned());
2317+
cast::forget(wr);
2318+
result
2319+
}
2320+
23212321
pub fn to_str<T>(t: &T, f: |&mut ps, &T|, intr: @ident_interner) -> ~str {
23222322
let wr = ~MemWriter::new();
23232323
let mut s = rust_printer(wr as ~io::Writer, intr);
23242324
f(&mut s, t);
23252325
eof(&mut s.s);
2326-
// XXX(pcwalton): Need checked downcasts.
23272326
unsafe {
2328-
let (_, wr): (uint, ~MemWriter) = cast::transmute(s.s.out);
2329-
let result = str::from_utf8_owned(wr.inner_ref().to_owned());
2330-
cast::forget(wr);
2331-
result
2327+
get_mem_writer(&mut s.s.out)
23322328
}
23332329
}
23342330

0 commit comments

Comments
 (0)