about summary refs log tree commit diff
path: root/src/libsyntax/opt_vec.rs
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2013-04-10 13:11:27 -0700
committerNiko Matsakis <niko@alum.mit.edu>2013-04-10 17:32:02 -0700
commit49de82cdca2064a909d3104f4e5eccacb0425fd0 (patch)
tree476daee1450ae400b436dcfa8c764310ecd6eb34 /src/libsyntax/opt_vec.rs
parent3322595e896e95c3e19ca33c854ad529f2ef3c19 (diff)
downloadrust-49de82cdca2064a909d3104f4e5eccacb0425fd0.tar.gz
rust-49de82cdca2064a909d3104f4e5eccacb0425fd0.zip
Issue #5656: Make &self not mean "&'self self"
Fixes #5656.
Fixes #5541.
Diffstat (limited to 'src/libsyntax/opt_vec.rs')
-rw-r--r--src/libsyntax/opt_vec.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/libsyntax/opt_vec.rs b/src/libsyntax/opt_vec.rs
index fd54746f3dc..1604c40f917 100644
--- a/src/libsyntax/opt_vec.rs
+++ b/src/libsyntax/opt_vec.rs
@@ -61,6 +61,7 @@ impl<T> OptVec<T> {
         }
     }
 
+    #[cfg(stage0)]
     fn get(&self, i: uint) -> &'self T {
         match *self {
             Empty => fail!(fmt!("Invalid index %u", i)),
@@ -68,6 +69,16 @@ impl<T> OptVec<T> {
         }
     }
 
+    #[cfg(stage1)]
+    #[cfg(stage2)]
+    #[cfg(stage3)]
+    fn get<'a>(&'a self, i: uint) -> &'a T {
+        match *self {
+            Empty => fail!(fmt!("Invalid index %u", i)),
+            Vec(ref v) => &v[i]
+        }
+    }
+
     fn is_empty(&self) -> bool {
         self.len() == 0
     }