From cfa71a135b2dfd5c5294737e392bb3b22929d940 Mon Sep 17 00:00:00 2001 From: Erick Tryzelaar Date: Wed, 22 Aug 2012 18:32:51 -0700 Subject: [PATCH 1/3] rustc: add all the pretty printer modes to error message --- src/rustc/driver/driver.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/rustc/driver/driver.rs b/src/rustc/driver/driver.rs index 65875af6b7f8a..be113d4e99227 100644 --- a/src/rustc/driver/driver.rs +++ b/src/rustc/driver/driver.rs @@ -583,8 +583,9 @@ fn parse_pretty(sess: session, &&name: ~str) -> pp_mode { ~"expanded,identified" => ppm_expanded_identified, ~"identified" => ppm_identified, _ => { - sess.fatal(~"argument to `pretty` must be one of `normal`, `typed`, \ - or `identified`"); + sess.fatal(~"argument to `pretty` must be one of `normal`, \ + `expanded`, `typed`, `identified`, \ + or `expanded,identified`"); } } } From 007e47d710c362f51d4133e9c05a638cc0bacb5a Mon Sep 17 00:00:00 2001 From: Erick Tryzelaar Date: Wed, 22 Aug 2012 18:34:14 -0700 Subject: [PATCH 2/3] libstd: switch ebml's wr_tagged_str to use str::byte_slice --- src/libstd/ebml.rs | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/libstd/ebml.rs b/src/libstd/ebml.rs index b3222f7ab24ca..5ff4a0e72bb9a 100644 --- a/src/libstd/ebml.rs +++ b/src/libstd/ebml.rs @@ -285,13 +285,7 @@ impl writer { } fn wr_tagged_str(tag_id: uint, v: ~str) { - // Lame: can't use str::as_bytes() here because the resulting - // vector is NULL-terminated. Annoyingly, the underlying - // writer interface doesn't permit us to write a slice of a - // vector. We need first-class slices, I think. - - // str::as_bytes(v) {|b| self.wr_tagged_bytes(tag_id, b); } - self.wr_tagged_bytes(tag_id, str::bytes(v)); + str::byte_slice(v, |b| self.wr_tagged_bytes(tag_id, b)); } fn wr_bytes(b: &[u8]) { From d8988fe220865034f50b936dc5e219a1b6347314 Mon Sep 17 00:00:00 2001 From: Erick Tryzelaar Date: Wed, 22 Aug 2012 19:04:32 -0700 Subject: [PATCH 3/3] libstd: fix serialization no-implicit-copies warnings --- src/libstd/ebml.rs | 28 ++++++++++++++-------------- src/libstd/prettyprint.rs | 4 ++-- src/libstd/serialization.rs | 26 +++++++++++++------------- 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/src/libstd/ebml.rs b/src/libstd/ebml.rs index 5ff4a0e72bb9a..260a746bf8538 100644 --- a/src/libstd/ebml.rs +++ b/src/libstd/ebml.rs @@ -284,7 +284,7 @@ impl writer { self.wr_tagged_bytes(tag_id, &[v as u8]); } - fn wr_tagged_str(tag_id: uint, v: ~str) { + fn wr_tagged_str(tag_id: uint, v: &str) { str::byte_slice(v, |b| self.wr_tagged_bytes(tag_id, b)); } @@ -363,7 +363,7 @@ impl ebml::writer: serialization::serializer { fn emit_f32(_v: f32) { fail ~"Unimplemented: serializing an f32"; } fn emit_float(_v: float) { fail ~"Unimplemented: serializing a float"; } - fn emit_str(v: ~str) { self.wr_tagged_str(es_str as uint, v) } + fn emit_str(v: &str) { self.wr_tagged_str(es_str as uint, v) } fn emit_enum(name: ~str, f: fn()) { self._emit_label(name); @@ -445,7 +445,7 @@ priv impl ebml_deserializer { return r_doc; } - fn push_doc(d: ebml::doc, f: fn() -> T) -> T{ + fn push_doc(d: ebml::doc, f: fn() -> T) -> T{ let old_parent = self.parent; let old_pos = self.pos; self.parent = d; @@ -499,13 +499,13 @@ impl ebml_deserializer: serialization::deserializer { fn read_str() -> ~str { ebml::doc_as_str(self.next_doc(es_str)) } // Compound types: - fn read_enum(name: ~str, f: fn() -> T) -> T { + fn read_enum(name: ~str, f: fn() -> T) -> T { debug!{"read_enum(%s)", name}; self._check_label(name); self.push_doc(self.next_doc(es_enum), f) } - fn read_enum_variant(f: fn(uint) -> T) -> T { + fn read_enum_variant(f: fn(uint) -> T) -> T { debug!{"read_enum_variant()"}; let idx = self._next_uint(es_enum_vid); debug!{" idx=%u", idx}; @@ -514,12 +514,12 @@ impl ebml_deserializer: serialization::deserializer { } } - fn read_enum_variant_arg(idx: uint, f: fn() -> T) -> T { + fn read_enum_variant_arg(idx: uint, f: fn() -> T) -> T { debug!{"read_enum_variant_arg(idx=%u)", idx}; f() } - fn read_vec(f: fn(uint) -> T) -> T { + fn read_vec(f: fn(uint) -> T) -> T { debug!{"read_vec()"}; do self.push_doc(self.next_doc(es_vec)) { let len = self._next_uint(es_vec_len); @@ -528,38 +528,38 @@ impl ebml_deserializer: serialization::deserializer { } } - fn read_vec_elt(idx: uint, f: fn() -> T) -> T { + fn read_vec_elt(idx: uint, f: fn() -> T) -> T { debug!{"read_vec_elt(idx=%u)", idx}; self.push_doc(self.next_doc(es_vec_elt), f) } - fn read_box(f: fn() -> T) -> T { + fn read_box(f: fn() -> T) -> T { debug!{"read_box()"}; f() } - fn read_uniq(f: fn() -> T) -> T { + fn read_uniq(f: fn() -> T) -> T { debug!{"read_uniq()"}; f() } - fn read_rec(f: fn() -> T) -> T { + fn read_rec(f: fn() -> T) -> T { debug!{"read_rec()"}; f() } - fn read_rec_field(f_name: ~str, f_idx: uint, f: fn() -> T) -> T { + fn read_rec_field(f_name: ~str, f_idx: uint, f: fn() -> T) -> T { debug!{"read_rec_field(%s, idx=%u)", f_name, f_idx}; self._check_label(f_name); f() } - fn read_tup(sz: uint, f: fn() -> T) -> T { + fn read_tup(sz: uint, f: fn() -> T) -> T { debug!{"read_tup(sz=%u)", sz}; f() } - fn read_tup_elt(idx: uint, f: fn() -> T) -> T { + fn read_tup_elt(idx: uint, f: fn() -> T) -> T { debug!{"read_tup_elt(idx=%u)", idx}; f() } diff --git a/src/libstd/prettyprint.rs b/src/libstd/prettyprint.rs index 49fe0f4c0bf4b..252ab3dd8e21b 100644 --- a/src/libstd/prettyprint.rs +++ b/src/libstd/prettyprint.rs @@ -63,7 +63,7 @@ impl Writer: serializer { self.write_str(fmt!{"%?_f32", v}); } - fn emit_str(v: ~str) { + fn emit_str(v: &str) { self.write_str(fmt!{"%?", v}); } @@ -127,4 +127,4 @@ impl Writer: serializer { if idx > 0u { self.write_str(~", "); } f(); } -} \ No newline at end of file +} diff --git a/src/libstd/serialization.rs b/src/libstd/serialization.rs index 15eb565dc84d8..da99cb7882ec5 100644 --- a/src/libstd/serialization.rs +++ b/src/libstd/serialization.rs @@ -23,7 +23,7 @@ trait serializer { fn emit_float(v: float); fn emit_f64(v: f64); fn emit_f32(v: f32); - fn emit_str(v: ~str); + fn emit_str(v: &str); // Compound types: fn emit_enum(name: ~str, f: fn()); @@ -65,17 +65,17 @@ trait deserializer { fn read_float() -> float; // Compound types: - fn read_enum(name: ~str, f: fn() -> T) -> T; - fn read_enum_variant(f: fn(uint) -> T) -> T; - fn read_enum_variant_arg(idx: uint, f: fn() -> T) -> T; - fn read_vec(f: fn(uint) -> T) -> T; - fn read_vec_elt(idx: uint, f: fn() -> T) -> T; - fn read_box(f: fn() -> T) -> T; - fn read_uniq(f: fn() -> T) -> T; - fn read_rec(f: fn() -> T) -> T; - fn read_rec_field(f_name: ~str, f_idx: uint, f: fn() -> T) -> T; - fn read_tup(sz: uint, f: fn() -> T) -> T; - fn read_tup_elt(idx: uint, f: fn() -> T) -> T; + fn read_enum(name: ~str, f: fn() -> T) -> T; + fn read_enum_variant(f: fn(uint) -> T) -> T; + fn read_enum_variant_arg(idx: uint, f: fn() -> T) -> T; + fn read_vec(f: fn(uint) -> T) -> T; + fn read_vec_elt(idx: uint, f: fn() -> T) -> T; + fn read_box(f: fn() -> T) -> T; + fn read_uniq(f: fn() -> T) -> T; + fn read_rec(f: fn() -> T) -> T; + fn read_rec_field(f_name: ~str, f_idx: uint, f: fn() -> T) -> T; + fn read_tup(sz: uint, f: fn() -> T) -> T; + fn read_tup_elt(idx: uint, f: fn() -> T) -> T; } // ___________________________________________________________________________ @@ -201,7 +201,7 @@ fn deserialize_i64(d: D) -> i64 { d.read_i64() } -fn serialize_str(s: S, v: ~str) { +fn serialize_str(s: S, v: &str) { s.emit_str(v); }