about summary refs log tree commit diff
path: root/src/librustc/metadata
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2013-06-11 19:13:42 -0700
committerCorey Richardson <corey@octayn.net>2013-06-28 10:44:16 -0400
commita1531ed946e2d650fc6cb5af6258fed8003e9443 (patch)
tree8f629d34e6cb62bd9a5a2ef22656075715446c0e /src/librustc/metadata
parent3fcd4dca301d01c41a7db7f9023bc11be1025fc7 (diff)
downloadrust-a1531ed946e2d650fc6cb5af6258fed8003e9443.tar.gz
rust-a1531ed946e2d650fc6cb5af6258fed8003e9443.zip
librustc: Remove the broken overloaded assign-ops from the language.
They evaluated the receiver twice. They should be added back with
`AddAssign`, `SubAssign`, etc., traits.
Diffstat (limited to 'src/librustc/metadata')
-rw-r--r--src/librustc/metadata/encoder.rs2
-rw-r--r--src/librustc/metadata/tydecode.rs4
2 files changed, 4 insertions, 2 deletions
diff --git a/src/librustc/metadata/encoder.rs b/src/librustc/metadata/encoder.rs
index b96e96c9618..f8ecef3b4a4 100644
--- a/src/librustc/metadata/encoder.rs
+++ b/src/librustc/metadata/encoder.rs
@@ -979,7 +979,7 @@ fn encode_info_for_item(ecx: &EncodeContext,
 
         // >:-<
         let mut impl_path = vec::append(~[], path);
-        impl_path += [ast_map::path_name(item.ident)];
+        impl_path.push(ast_map::path_name(item.ident));
 
         for methods.iter().advance |m| {
             index.push(entry {val: m.id, pos: ebml_w.writer.tell()});
diff --git a/src/librustc/metadata/tydecode.rs b/src/librustc/metadata/tydecode.rs
index 1507fc186e7..1ec5c983f62 100644
--- a/src/librustc/metadata/tydecode.rs
+++ b/src/librustc/metadata/tydecode.rs
@@ -261,7 +261,9 @@ fn parse_opt<T>(st: &mut PState, f: &fn(&mut PState) -> T) -> Option<T> {
 fn parse_str(st: &mut PState, term: char) -> ~str {
     let mut result = ~"";
     while peek(st) != term {
-        result += str::from_byte(next_byte(st));
+        unsafe {
+            str::raw::push_byte(&mut result, next_byte(st));
+        }
     }
     next(st);
     return result;