about summary refs log tree commit diff
path: root/src/libstd/ebml.rs
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2012-11-28 13:51:50 -0800
committerPatrick Walton <pcwalton@mimiga.net>2012-12-04 14:51:31 -0800
commitd1ebdbeb6c00fe7d119ce17cabb303c5731f9bf7 (patch)
treebde6bd5862f6838776d2176e52ea96235828e348 /src/libstd/ebml.rs
parent56ece46f7de9d1703dd39f952afac9bed22633b6 (diff)
downloadrust-d1ebdbeb6c00fe7d119ce17cabb303c5731f9bf7.tar.gz
rust-d1ebdbeb6c00fe7d119ce17cabb303c5731f9bf7.zip
librustc: Implement explicit self for Add and Index; add a hack in the borrow checker to support this. r=nmatsakis
Diffstat (limited to 'src/libstd/ebml.rs')
-rw-r--r--src/libstd/ebml.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/libstd/ebml.rs b/src/libstd/ebml.rs
index 1bfba2c7b0c..3b65f913755 100644
--- a/src/libstd/ebml.rs
+++ b/src/libstd/ebml.rs
@@ -57,6 +57,7 @@ pub mod Reader {
 
     // ebml reading
 
+    #[cfg(stage0)]
     impl Doc: ops::Index<uint,Doc> {
         pure fn index(tag: uint) -> Doc {
             unsafe {
@@ -64,6 +65,15 @@ pub mod Reader {
             }
         }
     }
+    #[cfg(stage1)]
+    #[cfg(stage2)]
+    impl Doc: ops::Index<uint,Doc> {
+        pure fn index(&self, tag: uint) -> Doc {
+            unsafe {
+                get_doc(*self, tag)
+            }
+        }
+    }
 
     fn vuint_at(data: &[u8], start: uint) -> {val: uint, next: uint} {
         let a = data[start];