Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

librustc: Convert all uses of old lifetime notation to new lifetime n…

…otation. rs=delifetiming
  • Loading branch information...
commit 352c070365c941e174c17574f7fb3231e2981c5d 1 parent 7352d91
@pcwalton pcwalton authored
Showing with 523 additions and 501 deletions.
  1. +2 −2 src/libcore/at_vec.rs
  2. +6 −6 src/libcore/cast.rs
  3. +2 −2 src/libcore/cleanup.rs
  4. +5 −5 src/libcore/condition.rs
  5. +1 −1  src/libcore/container.rs
  6. +1 −1  src/libcore/gc.rs
  7. +8 −8 src/libcore/hashmap.rs
  8. +1 −1  src/libcore/io.rs
  9. +1 −1  src/libcore/iter.rs
  10. +10 −10 src/libcore/option.rs
  11. +22 −22 src/libcore/os.rs
  12. +1 −1  src/libcore/pipes.rs
  13. +9 −9 src/libcore/ptr.rs
  14. +8 −8 src/libcore/reflect.rs
  15. +2 −2 src/libcore/result.rs
  16. +1 −1  src/libcore/rt/io.rs
  17. +4 −4 src/libcore/rt/sched.rs
  18. +1 −1  src/libcore/rt/uv.rs
  19. +2 −2 src/libcore/rt/uvio.rs
  20. +35 −35 src/libcore/str.rs
  21. +1 −1  src/libcore/sys.rs
  22. +1 −1  src/libcore/task/local_data.rs
  23. +1 −1  src/libcore/task/spawn.rs
  24. +5 −5 src/libcore/to_bytes.rs
  25. +2 −2 src/libcore/to_str.rs
  26. +6 −6 src/libcore/trie.rs
  27. +5 −5 src/libcore/tuple.rs
  28. +1 −1  src/libcore/unstable.rs
  29. +2 −2 src/libcore/unstable/finally.rs
  30. +1 −1  src/libcore/unstable/global.rs
  31. +57 −57 src/libcore/vec.rs
  32. +7 −7 src/librust/rust.rc
  33. +1 −1  src/librustc/front/core_inject.rs
  34. +18 −2 src/librustc/front/test.rs
  35. +2 −2 src/librustc/metadata/decoder.rs
  36. +1 −1  src/librustc/metadata/encoder.rs
  37. +1 −1  src/librustc/metadata/filesearch.rs
  38. +1 −1  src/librustc/metadata/tydecode.rs
  39. +1 −1  src/librustc/middle/borrowck/gather_loans.rs
  40. +1 −1  src/librustc/middle/borrowck/preserve.rs
  41. +1 −1  src/librustc/middle/kind.rs
  42. +3 −3 src/librustc/middle/lang_items.rs
  43. +4 −4 src/librustc/middle/lint.rs
  44. +7 −7 src/librustc/middle/region.rs
  45. +1 −1  src/librustc/middle/resolve.rs
  46. +2 −2 src/librustc/middle/trans/_match.rs
  47. +2 −2 src/librustc/middle/trans/callee.rs
  48. +1 −1  src/librustc/middle/trans/datum.rs
  49. +1 −1  src/librustc/middle/trans/tvec.rs
  50. +2 −2 src/librustc/middle/ty.rs
  51. +1 −1  src/librustc/middle/typeck/astconv.rs
  52. +1 −1  src/librustc/middle/typeck/check/method.rs
  53. +2 −2 src/librustc/middle/typeck/check/regionck.rs
  54. +2 −2 src/librustc/middle/typeck/coherence.rs
  55. +2 −2 src/librustc/middle/typeck/collect.rs
  56. +2 −2 src/librustc/middle/typeck/infer/lattice.rs
  57. +19 −19 src/librustc/middle/typeck/infer/region_inference.rs
  58. +8 −8 src/librustc/middle/typeck/infer/unify.rs
  59. +7 −7 src/libstd/arc.rs
  60. +3 −3 src/libstd/arena.rs
  61. +2 −2 src/libstd/base64.rs
  62. +20 −20 src/libstd/bigint.rs
  63. +4 −4 src/libstd/deque.rs
  64. +1 −1  src/libstd/future.rs
  65. +3 −3 src/libstd/json.rs
  66. +2 −2 src/libstd/priority_queue.rs
  67. +3 −3 src/libstd/serialize.rs
  68. +6 −6 src/libstd/smallintmap.rs
  69. +8 −8 src/libstd/sort.rs
  70. +1 −1  src/libstd/stats.rs
  71. +12 −12 src/libstd/sync.rs
  72. +1 −1  src/libstd/test.rs
  73. +14 −14 src/libstd/treemap.rs
  74. +2 −2 src/libsyntax/ext/base.rs
  75. +2 −2 src/libsyntax/ext/deriving.rs
  76. +6 −0 src/libsyntax/ext/quote.rs
  77. +1 −1  src/libsyntax/opt_vec.rs
  78. +1 −1  src/libsyntax/parse/parser.rs
  79. +1 −1  src/test/auxiliary/cci_const.rs
  80. +2 −2 src/test/compile-fail/borrowck-addr-of-upvar.rs
  81. +1 −1  src/test/compile-fail/const-cast-different-types.rs
  82. +1 −1  src/test/compile-fail/issue-2149.rs
  83. +1 −1  src/test/compile-fail/issue-2478.rs
  84. +1 −1  src/test/compile-fail/issue-3243.rs
  85. +1 −1  src/test/compile-fail/issue-3311.rs
  86. +1 −1  src/test/compile-fail/issue-3563.rs
  87. +1 −1  src/test/compile-fail/issue-3888.rs
  88. +1 −1  src/test/compile-fail/issue-4335.rs
  89. +1 −1  src/test/compile-fail/issue-4523.rs
  90. +2 −2 src/test/compile-fail/kindck-owned-trait-contains.rs
  91. +1 −1  src/test/compile-fail/kindck-owned-trait-scoped.rs
  92. +2 −2 src/test/compile-fail/regions-addr-of-self.rs
  93. +3 −3 src/test/compile-fail/regions-blk.rs
  94. +1 −1  src/test/compile-fail/regions-fn-bound.rs
  95. +25 −25 src/test/compile-fail/regions-fn-subtyping.rs
  96. +2 −2 src/test/compile-fail/regions-fns.rs
  97. +1 −1  src/test/compile-fail/regions-freevar.rs
  98. +1 −1  src/test/compile-fail/regions-infer-borrow-scope-too-big.rs
  99. +1 −1  src/test/compile-fail/regions-infer-borrow-scope-within-loop.rs
  100. +2 −2 src/test/compile-fail/regions-infer-call-3.rs
  101. +1 −1  src/test/compile-fail/regions-infer-contravariance-due-to-ret.rs
  102. +1 −1  src/test/compile-fail/regions-infer-covariance-due-to-arg.rs
  103. +1 −1  src/test/compile-fail/regions-infer-invariance-due-to-mutability-3.rs
  104. +1 −1  src/test/compile-fail/regions-infer-invariance-due-to-mutability-4.rs
  105. +1 −1  src/test/compile-fail/regions-infer-paramd-indirect.rs
  106. +1 −1  src/test/compile-fail/regions-nested-fns-2.rs
  107. +3 −3 src/test/compile-fail/regions-nested-fns.rs
  108. +1 −1  src/test/compile-fail/regions-out-of-scope-slice.rs
  109. +2 −2 src/test/compile-fail/regions-ret-borrowed-1.rs
  110. +1 −1  src/test/compile-fail/regions-ret.rs
  111. +3 −3 src/test/compile-fail/regions-scoping.rs
  112. +1 −1  src/test/compile-fail/regions-trait-2.rs
  113. +1 −1  src/test/compile-fail/regions-trait-3.rs
  114. +1 −1  src/test/run-pass/assignability-trait.rs
  115. +1 −1  src/test/run-pass/bare-static-string.rs
  116. +1 −1  src/test/run-pass/borrowck-root-while-cond.rs
  117. +1 −1  src/test/run-pass/borrowck-wg-borrow-mut-to-imm-3.rs
  118. +1 −1  src/test/run-pass/borrowed-ptr-pattern-3.rs
  119. +1 −1  src/test/run-pass/borrowed-ptr-pattern-option.rs
  120. +1 −1  src/test/run-pass/const-cast.rs
  121. +1 −1  src/test/run-pass/const-cross-crate-const.rs
  122. +1 −1  src/test/run-pass/const-enum-ptr.rs
  123. +1 −1  src/test/run-pass/const-enum-vec-ptr.rs
  124. +1 −1  src/test/run-pass/const-str-ptr.rs
  125. +3 −3 src/test/run-pass/explicit-self.rs
  126. +2 −2 src/test/run-pass/issue-2502.rs
  127. +1 −1  src/test/run-pass/issue-2748-b.rs
  128. +1 −1  src/test/run-pass/issue-3860.rs
  129. +1 −1  src/test/run-pass/issue-3888-2.rs
  130. +1 −1  src/test/run-pass/issue-4448.rs
  131. +8 −8 src/test/run-pass/reflect-visit-data.rs
  132. +9 −9 src/test/run-pass/region-dependent-addr-of.rs
  133. +1 −1  src/test/run-pass/region-return-interior-of-option.rs
  134. +1 −1  src/test/run-pass/regions-addr-of-ret.rs
  135. +1 −1  src/test/run-pass/regions-bot.rs
  136. +1 −1  src/test/run-pass/regions-equiv-fns.rs
  137. +1 −1  src/test/run-pass/regions-escape-into-other-fn.rs
  138. +2 −2 src/test/run-pass/regions-fn-subtyping.rs
  139. +1 −1  src/test/run-pass/regions-infer-borrow-scope-view.rs
  140. +1 −1  src/test/run-pass/regions-infer-borrow-scope-within-loop-ok.rs
  141. +1 −1  src/test/run-pass/regions-infer-borrow-scope.rs
  142. +1 −1  src/test/run-pass/regions-infer-call-2.rs
  143. +1 −1  src/test/run-pass/regions-infer-call.rs
  144. +1 −1  src/test/run-pass/regions-infer-contravariance-due-to-ret.rs
  145. +2 −2 src/test/run-pass/regions-infer-contravariance.rs
  146. +1 −1  src/test/run-pass/regions-params.rs
  147. +2 −2 src/test/run-pass/regions-trait.rs
View
4 src/libcore/at_vec.rs
@@ -174,9 +174,9 @@ pub mod traits {
use kinds::Copy;
use ops::Add;
- impl<T:Copy> Add<&self/[const T],@[T]> for @[T] {
+ impl<T:Copy> Add<&'self [const T],@[T]> for @[T] {
#[inline(always)]
- pure fn add(&self, rhs: & &self/[const T]) -> @[T] {
+ pure fn add(&self, rhs: & &'self [const T]) -> @[T] {
append(*self, (*rhs))
}
}
View
12 src/libcore/cast.rs
@@ -59,17 +59,17 @@ pub unsafe fn transmute<L, G>(thing: L) -> G {
/// Coerce an immutable reference to be mutable.
#[inline(always)]
-pub unsafe fn transmute_mut<T>(ptr: &a/T) -> &a/mut T { transmute(ptr) }
+pub unsafe fn transmute_mut<T>(ptr: &'a T) -> &'a mut T { transmute(ptr) }
/// Coerce a mutable reference to be immutable.
#[inline(always)]
-pub unsafe fn transmute_immut<T>(ptr: &a/mut T) -> &a/T {
+pub unsafe fn transmute_immut<T>(ptr: &'a mut T) -> &'a T {
transmute(ptr)
}
/// Coerce a borrowed pointer to have an arbitrary associated region.
#[inline(always)]
-pub unsafe fn transmute_region<T>(ptr: &a/T) -> &b/T { transmute(ptr) }
+pub unsafe fn transmute_region<T>(ptr: &'a T) -> &'b T { transmute(ptr) }
/// Coerce an immutable reference to be mutable.
#[inline(always)]
@@ -85,19 +85,19 @@ pub unsafe fn transmute_immut_unsafe<T>(ptr: *const T) -> *T {
/// Coerce a borrowed mutable pointer to have an arbitrary associated region.
#[inline(always)]
-pub unsafe fn transmute_mut_region<T>(ptr: &a/mut T) -> &b/mut T {
+pub unsafe fn transmute_mut_region<T>(ptr: &'a mut T) -> &'b mut T {
transmute(ptr)
}
/// Transforms lifetime of the second pointer to match the first.
#[inline(always)]
-pub unsafe fn copy_lifetime<S,T>(_ptr: &a/S, ptr: &T) -> &a/T {
+pub unsafe fn copy_lifetime<S,T>(_ptr: &'a S, ptr: &T) -> &'a T {
transmute_region(ptr)
}
/// Transforms lifetime of the second pointer to match the first.
#[inline(always)]
-pub unsafe fn copy_lifetime_vec<S,T>(_ptr: &a/[S], ptr: &T) -> &a/T {
+pub unsafe fn copy_lifetime_vec<S,T>(_ptr: &'a [S], ptr: &T) -> &'a T {
transmute_region(ptr)
}
View
4 src/libcore/cleanup.rs
@@ -22,8 +22,8 @@ use cast::transmute;
* NB: These must match the representation in the C++ runtime.
*/
-type DropGlue = &self/fn(**TypeDesc, *c_void);
-type FreeGlue = &self/fn(**TypeDesc, *c_void);
+type DropGlue = &'self fn(**TypeDesc, *c_void);
+type FreeGlue = &'self fn(**TypeDesc, *c_void);
type TaskID = uintptr_t;
View
10 src/libcore/condition.rs
@@ -21,12 +21,12 @@ pub struct Handler<T, U> {
}
pub struct Condition<T, U> {
- name: &static/str,
+ name: &'static str,
key: task::local_data::LocalDataKey/&self<Handler<T, U>>
}
pub impl<T, U> Condition/&self<T, U> {
- fn trap(&self, h: &self/fn(T) -> U) -> Trap/&self<T, U> {
+ fn trap(&self, h: &'self fn(T) -> U) -> Trap/&self<T, U> {
unsafe {
let p : *RustClosure = ::cast::transmute(&h);
let prev = task::local_data::local_data_get(self.key);
@@ -65,12 +65,12 @@ pub impl<T, U> Condition/&self<T, U> {
}
struct Trap<T, U> {
- cond: &self/Condition/&self<T, U>,
+ cond: &'self Condition/&self<T, U>,
handler: @Handler<T, U>
}
pub impl<T, U> Trap/&self<T, U> {
- fn in<V>(&self, inner: &self/fn() -> V) -> V {
+ fn in<V>(&self, inner: &'self fn() -> V) -> V {
unsafe {
let _g = Guard { cond: self.cond };
debug!("Trap: pushing handler to TLS");
@@ -81,7 +81,7 @@ pub impl<T, U> Trap/&self<T, U> {
}
struct Guard<T, U> {
- cond: &self/Condition/&self<T, U>
+ cond: &'self Condition/&self<T, U>
}
impl<T, U> Drop for Guard/&self<T, U> {
View
2  src/libcore/container.rs
@@ -39,7 +39,7 @@ pub trait Map<K, V>: Mutable {
fn mutate_values(&mut self, f: &fn(&K, &mut V) -> bool);
/// Return the value corresponding to the key in the map
- pure fn find(&self, key: &K) -> Option<&self/V>;
+ pure fn find(&self, key: &K) -> Option<&'self V>;
/// Insert a key-value pair into the map. An existing value for a
/// key is replaced by the new value. Return true if the key did
View
2  src/libcore/gc.rs
@@ -122,7 +122,7 @@ unsafe fn is_safe_point(pc: *Word) -> Option<SafePoint> {
return None;
}
-type Visitor = &self/fn(root: **Word, tydesc: *Word) -> bool;
+type Visitor = &'self fn(root: **Word, tydesc: *Word) -> bool;
// Walks the list of roots for the given safe point, and calls visitor
// on each root.
View
16 src/libcore/hashmap.rs
@@ -185,7 +185,7 @@ pub mod linear {
}
#[inline(always)]
- pure fn value_for_bucket(&self, idx: uint) -> &self/V {
+ pure fn value_for_bucket(&self, idx: uint) -> &'self V {
match self.buckets[idx] {
Some(ref bkt) => &bkt.value,
None => fail!(~"LinearMap::find: internal logic error"),
@@ -270,10 +270,10 @@ pub mod linear {
}
impl<K:Hash + IterBytes + Eq,V>
- BaseIter<(&self/K, &self/V)> for LinearMap<K, V>
+ BaseIter<(&'self K, &'self V)> for LinearMap<K, V>
{
/// Visit all key-value pairs
- pure fn each(&self, blk: &fn(&(&self/K, &self/V)) -> bool) {
+ pure fn each(&self, blk: &fn(&(&'self K, &'self V)) -> bool) {
for uint::range(0, self.buckets.len()) |i| {
let mut broke = false;
do self.buckets[i].map |bucket| {
@@ -339,7 +339,7 @@ pub mod linear {
}
/// Return the value corresponding to the key in the map
- pure fn find(&self, k: &K) -> Option<&self/V> {
+ pure fn find(&self, k: &K) -> Option<&'self V> {
match self.bucket_for_key(k) {
FoundEntry(idx) => Some(self.value_for_bucket(idx)),
TableFull | FoundHole(_) => None,
@@ -412,7 +412,7 @@ pub mod linear {
/// Return the value corresponding to the key in the map, or insert
/// and return the value if it doesn't exist.
- fn find_or_insert(&mut self, k: K, v: V) -> &self/V {
+ fn find_or_insert(&mut self, k: K, v: V) -> &'self V {
if self.size >= self.resize_at {
// n.b.: We could also do this after searching, so
// that we do not resize if this call to insert is
@@ -442,7 +442,7 @@ pub mod linear {
/// Return the value corresponding to the key in the map, or create,
/// insert, and return a new value if it doesn't exist.
- fn find_or_insert_with(&mut self, k: K, f: &fn(&K) -> V) -> &self/V {
+ fn find_or_insert_with(&mut self, k: K, f: &fn(&K) -> V) -> &'self V {
if self.size >= self.resize_at {
// n.b.: We could also do this after searching, so
// that we do not resize if this call to insert is
@@ -487,7 +487,7 @@ pub mod linear {
}
}
- pure fn get(&self, k: &K) -> &self/V {
+ pure fn get(&self, k: &K) -> &'self V {
match self.find(k) {
Some(v) => v,
None => fail!(fmt!("No entry found for key: %?", k)),
@@ -509,7 +509,7 @@ pub mod linear {
/// Return the value corresponding to the key in the map, using
/// equivalence
pure fn find_equiv<Q:Hash + IterBytes + Equiv<K>>(&self, k: &Q)
- -> Option<&self/V> {
+ -> Option<&'self V> {
match self.bucket_for_key_equiv(k) {
FoundEntry(idx) => Some(self.value_for_bucket(idx)),
TableFull | FoundHole(_) => None,
View
2  src/libcore/io.rs
@@ -589,7 +589,7 @@ pub fn file_reader(path: &Path) -> Result<@Reader, ~str> {
// Byte readers
pub struct BytesReader {
- bytes: &self/[u8],
+ bytes: &'self [u8],
mut pos: uint
}
View
2  src/libcore/iter.rs
@@ -20,7 +20,7 @@ use option::{None, Option, Some};
use vec;
/// A function used to initialize the elements of a sequence
-pub type InitOp<T> = &self/fn(uint) -> T;
+pub type InitOp<T> = &'self fn(uint) -> T;
pub trait BaseIter<A> {
pure fn each(&self, blk: &fn(v: &A) -> bool);
View
20 src/libcore/option.rs
@@ -122,7 +122,7 @@ pub pure fn get<T:Copy>(opt: Option<T>) -> T {
}
#[inline(always)]
-pub pure fn get_ref<T>(opt: &r/Option<T>) -> &r/T {
+pub pure fn get_ref<T>(opt: &'r Option<T>) -> &'r T {
/*!
Gets an immutable reference to the value inside an option.
@@ -143,7 +143,7 @@ pub pure fn get_ref<T>(opt: &r/Option<T>) -> &r/T {
}
}
-pub pure fn get_mut_ref<T>(opt: &r/mut Option<T>) -> &r/mut T {
+pub pure fn get_mut_ref<T>(opt: &'r mut Option<T>) -> &'r mut T {
/*!
Gets a mutable reference to the value inside an option.
@@ -165,7 +165,7 @@ pub pure fn get_mut_ref<T>(opt: &r/mut Option<T>) -> &r/mut T {
}
#[inline(always)]
-pub pure fn map<T, U>(opt: &r/Option<T>, f: &fn(x: &r/T) -> U) -> Option<U> {
+pub pure fn map<T, U>(opt: &'r Option<T>, f: &fn(x: &'r T) -> U) -> Option<U> {
//! Maps a `some` value by reference from one type to another
match *opt { Some(ref x) => Some(f(x)), None => None }
@@ -256,8 +256,8 @@ pub pure fn get_or_default<T:Copy>(opt: Option<T>, def: T) -> T {
}
#[inline(always)]
-pub pure fn map_default<T, U>(opt: &r/Option<T>, def: U,
- f: &fn(&r/T) -> U) -> U {
+pub pure fn map_default<T, U>(opt: &'r Option<T>, def: U,
+ f: &fn(&'r T) -> U) -> U {
//! Applies a function to the contained value or returns a default
match *opt { None => def, Some(ref t) => f(t) }
@@ -313,7 +313,7 @@ pub pure fn expect<T>(opt: Option<T>, reason: &str) -> T {
impl<T> BaseIter<T> for Option<T> {
/// Performs an operation on the contained value by reference
#[inline(always)]
- pure fn each(&self, f: &fn(x: &self/T) -> bool) {
+ pure fn each(&self, f: &fn(x: &'self T) -> bool) {
match *self { None => (), Some(ref t) => { f(t); } }
}
@@ -350,7 +350,7 @@ pub impl<T> Option<T> {
/// Maps a `some` value from one type to another by reference
#[inline(always)]
- pure fn map<U>(&self, f: &fn(&self/T) -> U) -> Option<U> { map(self, f) }
+ pure fn map<U>(&self, f: &fn(&'self T) -> U) -> Option<U> { map(self, f) }
/// As `map`, but consumes the option and gives `f` ownership to avoid
/// copying.
@@ -361,7 +361,7 @@ pub impl<T> Option<T> {
/// Applies a function to the contained value or returns a default
#[inline(always)]
- pure fn map_default<U>(&self, def: U, f: &fn(&self/T) -> U) -> U {
+ pure fn map_default<U>(&self, def: U, f: &fn(&'self T) -> U) -> U {
map_default(self, def, f)
}
@@ -403,7 +403,7 @@ pub impl<T> Option<T> {
case explicitly.
*/
#[inline(always)]
- pure fn get_ref(&self) -> &self/T { get_ref(self) }
+ pure fn get_ref(&self) -> &'self T { get_ref(self) }
/**
Gets a mutable reference to the value inside an option.
@@ -420,7 +420,7 @@ pub impl<T> Option<T> {
case explicitly.
*/
#[inline(always)]
- pure fn get_mut_ref(&mut self) -> &self/mut T { get_mut_ref(self) }
+ pure fn get_mut_ref(&mut self) -> &'self mut T { get_mut_ref(self) }
/**
* Gets the value out of an option without copying.
View
44 src/libcore/os.rs
@@ -1170,11 +1170,11 @@ pub mod consts {
pub use os::consts::windows::*;
pub mod unix {
- pub const FAMILY: &static/str = "unix";
+ pub const FAMILY: &'static str = "unix";
}
pub mod windows {
- pub const FAMILY: &static/str = "windows";
+ pub const FAMILY: &'static str = "windows";
}
#[cfg(target_os = "macos")]
@@ -1193,38 +1193,38 @@ pub mod consts {
pub use os::consts::win32::*;
pub mod macos {
- pub const SYSNAME: &static/str = "macos";
- pub const DLL_PREFIX: &static/str = "lib";
- pub const DLL_SUFFIX: &static/str = ".dylib";
- pub const EXE_SUFFIX: &static/str = "";
+ pub const SYSNAME: &'static str = "macos";
+ pub const DLL_PREFIX: &'static str = "lib";
+ pub const DLL_SUFFIX: &'static str = ".dylib";
+ pub const EXE_SUFFIX: &'static str = "";
}
pub mod freebsd {
- pub const SYSNAME: &static/str = "freebsd";
- pub const DLL_PREFIX: &static/str = "lib";
- pub const DLL_SUFFIX: &static/str = ".so";
- pub const EXE_SUFFIX: &static/str = "";
+ pub const SYSNAME: &'static str = "freebsd";
+ pub const DLL_PREFIX: &'static str = "lib";
+ pub const DLL_SUFFIX: &'static str = ".so";
+ pub const EXE_SUFFIX: &'static str = "";
}
pub mod linux {
- pub const SYSNAME: &static/str = "linux";
- pub const DLL_PREFIX: &static/str = "lib";
- pub const DLL_SUFFIX: &static/str = ".so";
- pub const EXE_SUFFIX: &static/str = "";
+ pub const SYSNAME: &'static str = "linux";
+ pub const DLL_PREFIX: &'static str = "lib";
+ pub const DLL_SUFFIX: &'static str = ".so";
+ pub const EXE_SUFFIX: &'static str = "";
}
pub mod android {
- pub const SYSNAME: &static/str = "android";
- pub const DLL_PREFIX: &static/str = "lib";
- pub const DLL_SUFFIX: &static/str = ".so";
- pub const EXE_SUFFIX: &static/str = "";
+ pub const SYSNAME: &'static str = "android";
+ pub const DLL_PREFIX: &'static str = "lib";
+ pub const DLL_SUFFIX: &'static str = ".so";
+ pub const EXE_SUFFIX: &'static str = "";
}
pub mod win32 {
- pub const SYSNAME: &static/str = "win32";
- pub const DLL_PREFIX: &static/str = "";
- pub const DLL_SUFFIX: &static/str = ".dll";
- pub const EXE_SUFFIX: &static/str = ".exe";
+ pub const SYSNAME: &'static str = "win32";
+ pub const DLL_PREFIX: &'static str = "";
+ pub const DLL_SUFFIX: &'static str = ".dll";
+ pub const EXE_SUFFIX: &'static str = ".exe";
}
View
2  src/libcore/pipes.rs
@@ -446,7 +446,7 @@ pub fn try_recv<T:Owned,Tbuffer:Owned>(p: RecvPacketBuffered<T, Tbuffer>)
let p = unsafe { &*p_ };
struct DropState {
- p: &self/PacketHeader,
+ p: &'self PacketHeader,
drop {
if task::failing() {
View
18 src/libcore/ptr.rs
@@ -178,7 +178,7 @@ pub pure fn to_uint<T>(thing: &T) -> uint {
/// Determine if two borrowed pointers point to the same thing.
#[inline(always)]
-pub pure fn ref_eq<T>(thing: &a/T, other: &b/T) -> bool {
+pub pure fn ref_eq<T>(thing: &'a T, other: &'b T) -> bool {
to_uint(thing) == to_uint(other)
}
@@ -312,34 +312,34 @@ impl<T> Ord for *const T {
// Equality for region pointers
#[cfg(notest)]
-impl<T:Eq> Eq for &self/const T {
+impl<T:Eq> Eq for &'self const T {
#[inline(always)]
- pure fn eq(&self, other: & &self/const T) -> bool {
+ pure fn eq(&self, other: & &'self const T) -> bool {
return *(*self) == *(*other);
}
#[inline(always)]
- pure fn ne(&self, other: & &self/const T) -> bool {
+ pure fn ne(&self, other: & &'self const T) -> bool {
return *(*self) != *(*other);
}
}
// Comparison for region pointers
#[cfg(notest)]
-impl<T:Ord> Ord for &self/const T {
+impl<T:Ord> Ord for &'self const T {
#[inline(always)]
- pure fn lt(&self, other: & &self/const T) -> bool {
+ pure fn lt(&self, other: & &'self const T) -> bool {
*(*self) < *(*other)
}
#[inline(always)]
- pure fn le(&self, other: & &self/const T) -> bool {
+ pure fn le(&self, other: & &'self const T) -> bool {
*(*self) <= *(*other)
}
#[inline(always)]
- pure fn ge(&self, other: & &self/const T) -> bool {
+ pure fn ge(&self, other: & &'self const T) -> bool {
*(*self) >= *(*other)
}
#[inline(always)]
- pure fn gt(&self, other: & &self/const T) -> bool {
+ pure fn gt(&self, other: & &'self const T) -> bool {
*(*self) > *(*other)
}
}
View
16 src/libcore/reflect.rs
@@ -214,9 +214,9 @@ impl<V:TyVisitor + MovePtr> TyVisitor for MovePtrAdaptor<V> {
}
fn visit_estr_slice(&self) -> bool {
- self.align_to::<&static/str>();
+ self.align_to::<&'static str>();
if ! self.inner.visit_estr_slice() { return false; }
- self.bump_past::<&static/str>();
+ self.bump_past::<&'static str>();
true
}
@@ -251,9 +251,9 @@ impl<V:TyVisitor + MovePtr> TyVisitor for MovePtrAdaptor<V> {
}
fn visit_rptr(&self, mtbl: uint, inner: *TyDesc) -> bool {
- self.align_to::<&static/u8>();
+ self.align_to::<&'static u8>();
if ! self.inner.visit_rptr(mtbl, inner) { return false; }
- self.bump_past::<&static/u8>();
+ self.bump_past::<&'static u8>();
true
}
@@ -285,9 +285,9 @@ impl<V:TyVisitor + MovePtr> TyVisitor for MovePtrAdaptor<V> {
}
fn visit_evec_slice(&self, mtbl: uint, inner: *TyDesc) -> bool {
- self.align_to::<&static/[u8]>();
+ self.align_to::<&'static [u8]>();
if ! self.inner.visit_evec_slice(mtbl, inner) { return false; }
- self.bump_past::<&static/[u8]>();
+ self.bump_past::<&'static [u8]>();
true
}
@@ -465,9 +465,9 @@ impl<V:TyVisitor + MovePtr> TyVisitor for MovePtrAdaptor<V> {
}
fn visit_self(&self) -> bool {
- self.align_to::<&static/u8>();
+ self.align_to::<&'static u8>();
if ! self.inner.visit_self() { return false; }
- self.align_to::<&static/u8>();
+ self.align_to::<&'static u8>();
true
}
View
4 src/libcore/result.rs
@@ -53,7 +53,7 @@ pub pure fn get<T:Copy,U>(res: &Result<T, U>) -> T {
* If the result is an error
*/
#[inline(always)]
-pub pure fn get_ref<T, U>(res: &a/Result<T, U>) -> &a/T {
+pub pure fn get_ref<T, U>(res: &'a Result<T, U>) -> &'a T {
match *res {
Ok(ref t) => t,
Err(ref the_err) => unsafe {
@@ -229,7 +229,7 @@ pub pure fn map_err<T:Copy,E,F:Copy>(res: &Result<T, E>, op: &fn(&E) -> F)
pub impl<T, E> Result<T, E> {
#[inline(always)]
- pure fn get_ref(&self) -> &self/T { get_ref(self) }
+ pure fn get_ref(&self) -> &'self T { get_ref(self) }
#[inline(always)]
pure fn is_ok(&self) -> bool { is_ok(self) }
View
2  src/libcore/rt/io.rs
@@ -22,7 +22,7 @@ pub trait EventLoop {
fn run(&mut self);
fn callback(&mut self, ~fn());
/// The asynchronous I/O services. Not all event loops may provide one
- fn io(&mut self) -> Option<&self/mut IoFactoryObject>;
+ fn io(&mut self) -> Option<&'self mut IoFactoryObject>;
}
pub trait IoFactory {
View
8 src/libcore/rt/sched.rs
@@ -265,12 +265,12 @@ pub impl Scheduler {
}
}
- // XXX: Hack. This should return &self/mut but I don't know how to
+ // XXX: Hack. This should return &'self mut but I don't know how to
// make the borrowcheck happy
fn task_from_last_cleanup_job(&mut self) -> &mut Task {
fail_unless!(!self.cleanup_jobs.is_empty());
- let last_job: &self/mut CleanupJob = &mut self.cleanup_jobs[0];
- let last_task: &self/Task = match last_job {
+ let last_job: &'self mut CleanupJob = &mut self.cleanup_jobs[0];
+ let last_task: &'self Task = match last_job {
&RescheduleTask(~ref task) => task,
&RecycleTask(~ref task) => task,
&GiveTask(~ref task, _) => task,
@@ -356,7 +356,7 @@ impl ThreadLocalScheduler {
}
}
- fn get_scheduler(&mut self) -> &self/mut Scheduler {
+ fn get_scheduler(&mut self) -> &'self mut Scheduler {
unsafe {
let key = match self { &ThreadLocalScheduler(key) => key };
let mut value: *mut c_void = tls::get(key);
View
2  src/libcore/rt/uv.rs
@@ -659,7 +659,7 @@ fn install_watcher_data<H, W: Watcher + NativeHandle<*H>>(watcher: &mut W) {
}
fn get_watcher_data<H, W: Watcher + NativeHandle<*H>>(
- watcher: &r/mut W) -> &r/mut WatcherData {
+ watcher: &'r mut W) -> &'r mut WatcherData {
unsafe {
let data = uvll::get_data_for_uv_handle(watcher.native_handle());
View
4 src/libcore/rt/uvio.rs
@@ -69,7 +69,7 @@ impl EventLoop for UvEventLoop {
}
}
- fn io(&mut self) -> Option<&self/mut IoFactoryObject> {
+ fn io(&mut self) -> Option<&'self mut IoFactoryObject> {
Some(&mut self.uvio)
}
}
@@ -91,7 +91,7 @@ fn test_callback_run_once() {
pub struct UvIoFactory(Loop);
pub impl UvIoFactory {
- fn uv_loop(&mut self) -> &self/mut Loop {
+ fn uv_loop(&mut self) -> &'self mut Loop {
match self { &UvIoFactory(ref mut ptr) => ptr }
}
}
View
70 src/libcore/str.rs
@@ -279,7 +279,7 @@ pub fn shift_char(s: &mut ~str) -> char {
* If the string does not contain any characters
*/
#[inline]
-pub fn view_shift_char(s: &a/str) -> (char, &a/str) {
+pub fn view_shift_char(s: &'a str) -> (char, &'a str) {
let CharRange {ch, next} = char_range_at(s, 0u);
let next_s = unsafe { raw::view_bytes(s, next, len(s)) };
return (ch, next_s);
@@ -429,7 +429,7 @@ pub pure fn slice(s: &str, begin: uint, end: uint) -> ~str {
* Fails when `begin` and `end` do not point to valid characters or beyond
* the last character of the string
*/
-pub pure fn view(s: &a/str, begin: uint, end: uint) -> &a/str {
+pub pure fn view(s: &'a str, begin: uint, end: uint) -> &'a str {
fail_unless!(is_char_boundary(s, begin));
fail_unless!(is_char_boundary(s, end));
unsafe { raw::view_bytes(s, begin, end) }
@@ -530,7 +530,7 @@ pure fn split_inner(s: &str, sepfn: &fn(cc: char) -> bool, count: uint,
}
// See Issue #1932 for why this is a naive search
-pure fn iter_matches(s: &a/str, sep: &b/str, f: &fn(uint, uint)) {
+pure fn iter_matches(s: &'a str, sep: &'b str, f: &fn(uint, uint)) {
let sep_len = len(sep), l = len(s);
fail_unless!(sep_len > 0u);
let mut i = 0u, match_start = 0u, match_i = 0u;
@@ -557,7 +557,7 @@ pure fn iter_matches(s: &a/str, sep: &b/str, f: &fn(uint, uint)) {
}
}
-pure fn iter_between_matches(s: &a/str, sep: &b/str, f: &fn(uint, uint)) {
+pure fn iter_between_matches(s: &'a str, sep: &'b str, f: &fn(uint, uint)) {
let mut last_end = 0u;
do iter_matches(s, sep) |from, to| {
f(last_end, from);
@@ -575,7 +575,7 @@ pure fn iter_between_matches(s: &a/str, sep: &b/str, f: &fn(uint, uint)) {
* fail_unless!(["", "XXX", "YYY", ""] == split_str(".XXX.YYY.", "."))
* ~~~
*/
-pub pure fn split_str(s: &a/str, sep: &b/str) -> ~[~str] {
+pub pure fn split_str(s: &'a str, sep: &'b str) -> ~[~str] {
let mut result = ~[];
do iter_between_matches(s, sep) |from, to| {
unsafe { result.push(raw::slice_bytes(s, from, to)); }
@@ -583,7 +583,7 @@ pub pure fn split_str(s: &a/str, sep: &b/str) -> ~[~str] {
result
}
-pub pure fn split_str_nonempty(s: &a/str, sep: &b/str) -> ~[~str] {
+pub pure fn split_str_nonempty(s: &'a str, sep: &'b str) -> ~[~str] {
let mut result = ~[];
do iter_between_matches(s, sep) |from, to| {
if to > from {
@@ -792,7 +792,7 @@ pure fn cmp(a: &str, b: &str) -> Ordering {
#[cfg(notest)]
impl TotalOrd for &'self str {
- pure fn cmp(&self, other: & &self/str) -> Ordering { cmp(*self, *other) }
+ pure fn cmp(&self, other: & &'self str) -> Ordering { cmp(*self, *other) }
}
#[cfg(notest)]
@@ -837,13 +837,13 @@ pure fn gt(a: &str, b: &str) -> bool {
}
#[cfg(notest)]
-impl Eq for &self/str {
+impl Eq for &'self str {
#[inline(always)]
- pure fn eq(&self, other: & &self/str) -> bool {
+ pure fn eq(&self, other: & &'self str) -> bool {
eq_slice((*self), (*other))
}
#[inline(always)]
- pure fn ne(&self, other: & &self/str) -> bool { !(*self).eq(other) }
+ pure fn ne(&self, other: & &'self str) -> bool { !(*self).eq(other) }
}
#[cfg(notest)]
@@ -879,15 +879,15 @@ impl Ord for ~str {
}
#[cfg(notest)]
-impl Ord for &self/str {
+impl Ord for &'self str {
#[inline(always)]
- pure fn lt(&self, other: & &self/str) -> bool { lt((*self), (*other)) }
+ pure fn lt(&self, other: & &'self str) -> bool { lt((*self), (*other)) }
#[inline(always)]
- pure fn le(&self, other: & &self/str) -> bool { le((*self), (*other)) }
+ pure fn le(&self, other: & &'self str) -> bool { le((*self), (*other)) }
#[inline(always)]
- pure fn ge(&self, other: & &self/str) -> bool { ge((*self), (*other)) }
+ pure fn ge(&self, other: & &'self str) -> bool { ge((*self), (*other)) }
#[inline(always)]
- pure fn gt(&self, other: & &self/str) -> bool { gt((*self), (*other)) }
+ pure fn gt(&self, other: & &'self str) -> bool { gt((*self), (*other)) }
}
#[cfg(notest)]
@@ -1348,7 +1348,7 @@ pub pure fn rfind_between(s: &str, start: uint, end: uint,
}
// Utility used by various searching functions
-pure fn match_at(haystack: &a/str, needle: &b/str, at: uint) -> bool {
+pure fn match_at(haystack: &'a str, needle: &'b str, at: uint) -> bool {
let mut i = at;
for each(needle) |c| { if haystack[i] != c { return false; } i += 1u; }
return true;
@@ -1367,7 +1367,7 @@ pure fn match_at(haystack: &a/str, needle: &b/str, at: uint) -> bool {
* An `option` containing the byte index of the first matching substring
* or `none` if there is no match
*/
-pub pure fn find_str(haystack: &a/str, needle: &b/str) -> Option<uint> {
+pub pure fn find_str(haystack: &'a str, needle: &'b str) -> Option<uint> {
find_str_between(haystack, needle, 0u, len(haystack))
}
@@ -1390,7 +1390,7 @@ pub pure fn find_str(haystack: &a/str, needle: &b/str) -> Option<uint> {
*
* `start` must be less than or equal to `len(s)`
*/
-pub pure fn find_str_from(haystack: &a/str, needle: &b/str, start: uint)
+pub pure fn find_str_from(haystack: &'a str, needle: &'b str, start: uint)
-> Option<uint> {
find_str_between(haystack, needle, start, len(haystack))
}
@@ -1415,7 +1415,7 @@ pub pure fn find_str_from(haystack: &a/str, needle: &b/str, start: uint)
* `start` must be less than or equal to `end` and `end` must be less than
* or equal to `len(s)`.
*/
-pub pure fn find_str_between(haystack: &a/str, needle: &b/str, start: uint,
+pub pure fn find_str_between(haystack: &'a str, needle: &'b str, start: uint,
end:uint)
-> Option<uint> {
// See Issue #1932 for why this is a naive search
@@ -1441,7 +1441,7 @@ pub pure fn find_str_between(haystack: &a/str, needle: &b/str, start: uint,
* * haystack - The string to look in
* * needle - The string to look for
*/
-pub pure fn contains(haystack: &a/str, needle: &b/str) -> bool {
+pub pure fn contains(haystack: &'a str, needle: &'b str) -> bool {
find_str(haystack, needle).is_some()
}
@@ -1465,7 +1465,7 @@ pub pure fn contains_char(haystack: &str, needle: char) -> bool {
* * haystack - The string to look in
* * needle - The string to look for
*/
-pub pure fn starts_with(haystack: &a/str, needle: &b/str) -> bool {
+pub pure fn starts_with(haystack: &'a str, needle: &'b str) -> bool {
let haystack_len = len(haystack), needle_len = len(needle);
if needle_len == 0u { true }
else if needle_len > haystack_len { false }
@@ -1480,7 +1480,7 @@ pub pure fn starts_with(haystack: &a/str, needle: &b/str) -> bool {
* * haystack - The string to look in
* * needle - The string to look for
*/
-pub pure fn ends_with(haystack: &a/str, needle: &b/str) -> bool {
+pub pure fn ends_with(haystack: &'a str, needle: &'b str) -> bool {
let haystack_len = len(haystack), needle_len = len(needle);
if needle_len == 0u { true }
else if needle_len > haystack_len { false }
@@ -1662,7 +1662,7 @@ pub pure fn count_chars(s: &str, start: uint, end: uint) -> uint {
}
/// Counts the number of bytes taken by the `n` in `s` starting from `start`.
-pub pure fn count_bytes(s: &b/str, start: uint, n: uint) -> uint {
+pub pure fn count_bytes(s: &'b str, start: uint, n: uint) -> uint {
fail_unless!(is_char_boundary(s, start));
let mut end = start, cnt = n;
let l = len(s);
@@ -1905,7 +1905,7 @@ pub pure fn as_bytes<T>(s: &const ~str, f: &fn(&~[u8]) -> T) -> T {
*
* The byte slice does not include the null terminator.
*/
-pub pure fn as_bytes_slice(s: &a/str) -> &a/[u8] {
+pub pure fn as_bytes_slice(s: &'a str) -> &'a [u8] {
unsafe {
let (ptr, len): (*u8, uint) = ::cast::reinterpret_cast(&s);
let outgoing_tuple: (*u8, uint) = (ptr, len - 1);
@@ -2233,9 +2233,9 @@ pub mod traits {
use ops::Add;
use str::append;
- impl Add<&self/str,~str> for ~str {
+ impl Add<&'self str,~str> for ~str {
#[inline(always)]
- pure fn add(&self, rhs: & &self/str) -> ~str {
+ pure fn add(&self, rhs: & &'self str) -> ~str {
append(copy *self, (*rhs))
}
}
@@ -2247,7 +2247,7 @@ pub mod traits {}
pub trait StrSlice {
pure fn all(&self, it: &fn(char) -> bool) -> bool;
pure fn any(&self, it: &fn(char) -> bool) -> bool;
- pure fn contains(&self, needle: &a/str) -> bool;
+ pure fn contains(&self, needle: &'a str) -> bool;
pure fn contains_char(&self, needle: char) -> bool;
pure fn each(&self, it: &fn(u8) -> bool);
pure fn eachi(&self, it: &fn(uint, u8) -> bool);
@@ -2261,8 +2261,8 @@ pub trait StrSlice {
pure fn slice(&self, begin: uint, end: uint) -> ~str;
pure fn split(&self, sepfn: &fn(char) -> bool) -> ~[~str];
pure fn split_char(&self, sep: char) -> ~[~str];
- pure fn split_str(&self, sep: &a/str) -> ~[~str];
- pure fn starts_with(&self, needle: &a/str) -> bool;
+ pure fn split_str(&self, sep: &'a str) -> ~[~str];
+ pure fn starts_with(&self, needle: &'a str) -> bool;
pure fn substr(&self, begin: uint, n: uint) -> ~str;
pure fn to_lower(&self) -> ~str;
pure fn to_upper(&self) -> ~str;
@@ -2278,7 +2278,7 @@ pub trait StrSlice {
}
/// Extension methods for strings
-impl StrSlice for &self/str {
+impl StrSlice for &'self str {
/**
* Return true if a predicate matches all characters or if the string
* contains no characters
@@ -2293,7 +2293,7 @@ impl StrSlice for &self/str {
pure fn any(&self, it: &fn(char) -> bool) -> bool { any(*self, it) }
/// Returns true if one string contains another
#[inline]
- pure fn contains(&self, needle: &a/str) -> bool {
+ pure fn contains(&self, needle: &'a str) -> bool {
contains(*self, needle)
}
/// Returns true if a string contains a char
@@ -2366,10 +2366,10 @@ impl StrSlice for &self/str {
* string
*/
#[inline]
- pure fn split_str(&self, sep: &a/str) -> ~[~str] { split_str(*self, sep) }
+ pure fn split_str(&self, sep: &'a str) -> ~[~str] { split_str(*self, sep) }
/// Returns true if one string starts with another
#[inline]
- pure fn starts_with(&self, needle: &a/str) -> bool {
+ pure fn starts_with(&self, needle: &'a str) -> bool {
starts_with(*self, needle)
}
/**
@@ -2612,8 +2612,8 @@ mod tests {
#[test]
fn test_split_str() {
- fn t(s: &str, sep: &a/str, i: int, k: &str) {
- fn borrow(x: &a/str) -> &a/str { x }
+ fn t(s: &str, sep: &'a str, i: int, k: &str) {
+ fn borrow(x: &'a str) -> &'a str { x }
let v = split_str(s, sep);
fail_unless!(borrow(v[i]) == k);
}
View
2  src/libcore/sys.rs
@@ -19,7 +19,7 @@ use libc::{c_void, c_char, size_t};
use repr;
use str;
-pub type FreeGlue = &self/fn(*TypeDesc, *c_void);
+pub type FreeGlue = &'self fn(*TypeDesc, *c_void);
// Corresponds to runtime type_desc type
pub struct TypeDesc {
View
2  src/libcore/task/local_data.rs
@@ -44,7 +44,7 @@ use task::rt;
*
* These two cases aside, the interface is safe.
*/
-pub type LocalDataKey<T> = &self/fn(v: @T);
+pub type LocalDataKey<T> = &'self fn(v: @T);
/**
* Remove a task-local data value from the table, returning the
View
2  src/libcore/task/spawn.rs
@@ -123,7 +123,7 @@ struct TaskGroupData {
}
type TaskGroupArc = unstable::Exclusive<Option<TaskGroupData>>;
-type TaskGroupInner = &self/mut Option<TaskGroupData>;
+type TaskGroupInner = &'self mut Option<TaskGroupData>;
// A taskgroup is 'dead' when nothing can cause it to fail; only members can.
pure fn taskgroup_is_dead(tg: &TaskGroupData) -> bool {
View
10 src/libcore/to_bytes.rs
@@ -19,7 +19,7 @@ use io::Writer;
use option::{None, Option, Some};
use str;
-pub type Cb = &self/fn(buf: &[const u8]) -> bool;
+pub type Cb = &'self fn(buf: &[const u8]) -> bool;
/**
* A trait to implement in order to make a type hashable;
@@ -197,7 +197,7 @@ impl IterBytes for int {
}
}
-impl<A:IterBytes> IterBytes for &self/[A] {
+impl<A:IterBytes> IterBytes for &'self [A] {
#[inline(always)]
pure fn iter_bytes(&self, lsb0: bool, f: Cb) {
for (*self).each |elt| {
@@ -231,7 +231,7 @@ impl<A:IterBytes,B:IterBytes,C:IterBytes> IterBytes for (A,B,C) {
}
// Move this to vec, probably.
-pure fn borrow<A>(a: &x/[A]) -> &x/[A] {
+pure fn borrow<A>(a: &'x [A]) -> &'x [A] {
a
}
@@ -352,7 +352,7 @@ pub pure fn iter_bytes_7<A: IterBytes,
g.iter_bytes(lsb0, |bytes| {flag = z(bytes); flag});
}
-impl IterBytes for &self/str {
+impl IterBytes for &'self str {
#[inline(always)]
pure fn iter_bytes(&self, _lsb0: bool, f: Cb) {
do str::byte_slice(*self) |bytes| {
@@ -389,7 +389,7 @@ impl<A:IterBytes> IterBytes for Option<A> {
}
}
-impl<A:IterBytes> IterBytes for &self/A {
+impl<A:IterBytes> IterBytes for &'self A {
#[inline(always)]
pure fn iter_bytes(&self, lsb0: bool, f: Cb) {
(**self).iter_bytes(lsb0, f);
View
4 src/libcore/to_str.rs
@@ -32,7 +32,7 @@ impl ToStr for ~str {
#[inline(always)]
pure fn to_str(&self) -> ~str { copy *self }
}
-impl ToStr for &self/str {
+impl ToStr for &'self str {
#[inline(always)]
pure fn to_str(&self) -> ~str { ::str::from_slice(*self) }
}
@@ -72,7 +72,7 @@ impl<A:ToStr,B:ToStr,C:ToStr> ToStr for (A, B, C) {
}
}
-impl<A:ToStr> ToStr for &self/[A] {
+impl<A:ToStr> ToStr for &'self [A] {
#[inline(always)]
pure fn to_str(&self) -> ~str {
unsafe {
View
12 src/libcore/trie.rs
@@ -32,7 +32,7 @@ pub struct TrieMap<T> {
impl<T> BaseIter<(uint, &'self T)> for TrieMap<T> {
/// Visit all key-value pairs in order
#[inline(always)]
- pure fn each(&self, f: &fn(&(uint, &self/T)) -> bool) {
+ pure fn each(&self, f: &fn(&(uint, &'self T)) -> bool) {
self.root.each(f);
}
#[inline(always)]
@@ -42,7 +42,7 @@ impl<T> BaseIter<(uint, &'self T)> for TrieMap<T> {
impl<T> ReverseIter<(uint, &'self T)> for TrieMap<T> {
/// Visit all key-value pairs in reverse order
#[inline(always)]
- pure fn each_reverse(&self, f: &fn(&(uint, &self/T)) -> bool) {
+ pure fn each_reverse(&self, f: &fn(&(uint, &'self T)) -> bool) {
self.root.each_reverse(f);
}
}
@@ -93,8 +93,8 @@ impl<T> Map<uint, T> for TrieMap<T> {
/// Return the value corresponding to the key in the map
#[inline(hint)]
- pure fn find(&self, key: &uint) -> Option<&self/T> {
- let mut node: &self/TrieNode<T> = &self.root;
+ pure fn find(&self, key: &uint) -> Option<&'self T> {
+ let mut node: &'self TrieNode<T> = &self.root;
let mut idx = 0;
loop {
match node.children[chunk(*key, idx)] {
@@ -233,7 +233,7 @@ impl<T> TrieNode<T> {
}
impl<T> TrieNode<T> {
- pure fn each(&self, f: &fn(&(uint, &self/T)) -> bool) -> bool {
+ pure fn each(&self, f: &fn(&(uint, &'self T)) -> bool) -> bool {
for uint::range(0, self.children.len()) |idx| {
match self.children[idx] {
Internal(ref x) => if !x.each(f) { return false },
@@ -244,7 +244,7 @@ impl<T> TrieNode<T> {
true
}
- pure fn each_reverse(&self, f: &fn(&(uint, &self/T)) -> bool) -> bool {
+ pure fn each_reverse(&self, f: &fn(&(uint, &'self T)) -> bool) -> bool {
for uint::range_rev(self.children.len(), 0) |idx| {
match self.children[idx - 1] {
Internal(ref x) => if !x.each_reverse(f) { return false },
View
10 src/libcore/tuple.rs
@@ -47,19 +47,19 @@ impl<T:Copy,U:Copy> CopyableTuple<T, U> for (T, U) {
}
pub trait ImmutableTuple<T, U> {
- pure fn first_ref(&self) -> &self/T;
- pure fn second_ref(&self) -> &self/U;
+ pure fn first_ref(&self) -> &'self T;
+ pure fn second_ref(&self) -> &'self U;
}
impl<T, U> ImmutableTuple<T, U> for (T, U) {
#[inline(always)]
- pure fn first_ref(&self) -> &self/T {
+ pure fn first_ref(&self) -> &'self T {
match *self {
(ref t, _) => t,
}
}
#[inline(always)]
- pure fn second_ref(&self) -> &self/U {
+ pure fn second_ref(&self) -> &'self U {
match *self {
(_, ref u) => u,
}
@@ -71,7 +71,7 @@ pub trait ExtendedTupleOps<A,B> {
fn map<C>(&self, f: &fn(a: &A, b: &B) -> C) -> ~[C];
}
-impl<A:Copy,B:Copy> ExtendedTupleOps<A,B> for (&self/[A], &self/[B]) {
+impl<A:Copy,B:Copy> ExtendedTupleOps<A,B> for (&'self [A], &'self [B]) {
#[inline(always)]
fn zip(&self) -> ~[(A, B)] {
match *self {
View
2  src/libcore/unstable.rs
@@ -173,7 +173,7 @@ pub unsafe fn get_shared_mutable_state<T:Owned>(
}
#[inline(always)]
pub unsafe fn get_shared_immutable_state<T:Owned>(
- rc: &a/SharedMutableState<T>) -> &a/T {
+ rc: &'a SharedMutableState<T>) -> &'a T {
unsafe {
let ptr: ~ArcData<T> = cast::reinterpret_cast(&(*rc).data);
fail_unless!(ptr.count > 0);
View
4 src/libcore/unstable/finally.rs
@@ -31,7 +31,7 @@ pub trait Finally<T> {
fn finally(&self, dtor: &fn()) -> T;
}
-impl<T> Finally<T> for &self/fn() -> T {
+impl<T> Finally<T> for &'self fn() -> T {
fn finally(&self, dtor: &fn()) -> T {
let _d = Finallyalizer {
dtor: dtor
@@ -42,7 +42,7 @@ impl<T> Finally<T> for &self/fn() -> T {
}
struct Finallyalizer {
- dtor: &self/fn()
+ dtor: &'self fn()
}
impl Drop for Finallyalizer/&self {
View
2  src/libcore/unstable/global.rs
@@ -42,7 +42,7 @@ use sys::Closure;
#[cfg(test)] use task::spawn;
#[cfg(test)] use uint;
-pub type GlobalDataKey<T> = &self/fn(v: T);
+pub type GlobalDataKey<T> = &'self fn(v: T);
pub unsafe fn global_data_clone_create<T:Owned + Clone>(
key: GlobalDataKey<T>, create: &fn() -> ~T) -> T {
View
114 src/libcore/vec.rs
@@ -217,46 +217,46 @@ pub pure fn build_sized_opt<A>(size: Option<uint>,
// Accessors
/// Returns the first element of a vector
-pub pure fn head<T>(v: &r/[T]) -> &r/T {
+pub pure fn head<T>(v: &'r [T]) -> &'r T {
if v.len() == 0 { fail!(~"head: empty vector") }
&v[0]
}
/// Returns `Some(x)` where `x` is the first element of the slice `v`,
/// or `None` if the vector is empty.
-pub pure fn head_opt<T>(v: &r/[T]) -> Option<&r/T> {
+pub pure fn head_opt<T>(v: &'r [T]) -> Option<&'r T> {
if v.len() == 0 { None } else { Some(&v[0]) }
}
/// Returns a vector containing all but the first element of a slice
-pub pure fn tail<T>(v: &r/[T]) -> &r/[T] { slice(v, 1, v.len()) }
+pub pure fn tail<T>(v: &'r [T]) -> &'r [T] { slice(v, 1, v.len()) }
/// Returns a vector containing all but the first `n` elements of a slice
-pub pure fn tailn<T>(v: &r/[T], n: uint) -> &r/[T] { slice(v, n, v.len()) }
+pub pure fn tailn<T>(v: &'r [T], n: uint) -> &'r [T] { slice(v, n, v.len()) }
/// Returns a vector containing all but the last element of a slice
-pub pure fn init<T>(v: &r/[T]) -> &r/[T] { slice(v, 0, v.len() - 1) }
+pub pure fn init<T>(v: &'r [T]) -> &'r [T] { slice(v, 0, v.len() - 1) }
/// Returns a vector containing all but the last `n' elements of a slice
-pub pure fn initn<T>(v: &r/[T], n: uint) -> &r/[T] {
+pub pure fn initn<T>(v: &'r [T], n: uint) -> &'r [T] {
slice(v, 0, v.len() - n)
}
/// Returns the last element of the slice `v`, failing if the slice is empty.
-pub pure fn last<T>(v: &r/[T]) -> &r/T {
+pub pure fn last<T>(v: &'r [T]) -> &'r T {
if v.len() == 0 { fail!(~"last: empty vector") }
&v[v.len() - 1]
}
/// Returns `Some(x)` where `x` is the last element of the slice `v`, or
/// `None` if the vector is empty.
-pub pure fn last_opt<T>(v: &r/[T]) -> Option<&r/T> {
+pub pure fn last_opt<T>(v: &'r [T]) -> Option<&'r T> {
if v.len() == 0 { None } else { Some(&v[v.len() - 1]) }
}
/// Return a slice that points into another slice.
#[inline(always)]
-pub pure fn slice<T>(v: &r/[T], start: uint, end: uint) -> &r/[T] {
+pub pure fn slice<T>(v: &'r [T], start: uint, end: uint) -> &'r [T] {
fail_unless!(start <= end);
fail_unless!(end <= len(v));
do as_imm_buf(v) |p, _len| {
@@ -270,10 +270,10 @@ pub pure fn slice<T>(v: &r/[T], start: uint, end: uint) -> &r/[T] {
/// Return a slice that points into another slice.
#[inline(always)]
-pub pure fn mut_slice<T>(v: &r/mut [T],
+pub pure fn mut_slice<T>(v: &'r mut [T],
start: uint,
end: uint)
- -> &r/mut [T] {
+ -> &'r mut [T] {
fail_unless!(start <= end);
fail_unless!(end <= v.len());
do as_mut_buf(v) |p, _len| {
@@ -287,10 +287,10 @@ pub pure fn mut_slice<T>(v: &r/mut [T],
/// Return a slice that points into another slice.
#[inline(always)]
-pub pure fn const_slice<T>(v: &r/[const T],
+pub pure fn const_slice<T>(v: &'r [const T],
start: uint,
end: uint)
- -> &r/[const T] {
+ -> &'r [const T] {
fail_unless!(start <= end);
fail_unless!(end <= len(v));
do as_const_buf(v) |p, _len| {
@@ -1334,7 +1334,7 @@ pub pure fn reversed<T:Copy>(v: &[const T]) -> ~[T] {
* ~~~
*/
#[inline(always)]
-pub pure fn each<T>(v: &r/[T], f: &fn(&r/T) -> bool) {
+pub pure fn each<T>(v: &'r [T], f: &fn(&'r T) -> bool) {
// ^^^^
// NB---this CANNOT be &[const T]! The reason
// is that you are passing it to `f()` using
@@ -1389,7 +1389,7 @@ pub pure fn each_const<T>(v: &[const T], f: &fn(elem: &const T) -> bool) {
* Return true to continue, false to break.
*/
#[inline(always)]
-pub pure fn eachi<T>(v: &r/[T], f: &fn(uint, v: &r/T) -> bool) {
+pub pure fn eachi<T>(v: &'r [T], f: &fn(uint, v: &'r T) -> bool) {
let mut i = 0;
for each(v) |p| {
if !f(i, p) { return; }
@@ -1403,7 +1403,7 @@ pub pure fn eachi<T>(v: &r/[T], f: &fn(uint, v: &r/T) -> bool) {
* Return true to continue, false to break.
*/
#[inline(always)]
-pub pure fn rev_each<T>(v: &r/[T], blk: &fn(v: &r/T) -> bool) {
+pub pure fn rev_each<T>(v: &'r [T], blk: &fn(v: &'r T) -> bool) {
rev_eachi(v, |_i, v| blk(v))
}
@@ -1413,7 +1413,7 @@ pub pure fn rev_each<T>(v: &r/[T], blk: &fn(v: &r/T) -> bool) {
* Return true to continue, false to break.
*/
#[inline(always)]
-pub pure fn rev_eachi<T>(v: &r/[T], blk: &fn(i: uint, v: &r/T) -> bool) {
+pub pure fn rev_eachi<T>(v: &'r [T], blk: &fn(i: uint, v: &'r T) -> bool) {
let mut i = v.len();
while i > 0 {
i -= 1;
@@ -1555,11 +1555,11 @@ pure fn eq<T:Eq>(a: &[T], b: &[T]) -> bool {
}
#[cfg(notest)]
-impl<T:Eq> Eq for &self/[T] {
+impl<T:Eq> Eq for &'self [T] {
#[inline(always)]
- pure fn eq(&self, other: & &self/[T]) -> bool { eq((*self), (*other)) }
+ pure fn eq(&self, other: & &'self [T]) -> bool { eq((*self), (*other)) }
#[inline(always)]
- pure fn ne(&self, other: & &self/[T]) -> bool { !(*self).eq(other) }
+ pure fn ne(&self, other: & &'self [T]) -> bool { !(*self).eq(other) }
}
@@ -1604,7 +1604,7 @@ pure fn cmp<T: TotalOrd>(a: &[T], b: &[T]) -> Ordering {
#[cfg(notest)]
impl<T: TotalOrd> TotalOrd for &'self [T] {
#[inline(always)]
- pure fn cmp(&self, other: & &self/[T]) -> Ordering { cmp(*self, *other) }
+ pure fn cmp(&self, other: & &'self [T]) -> Ordering { cmp(*self, *other) }
}
#[cfg(notest)]
@@ -1639,15 +1639,15 @@ pure fn ge<T:Ord>(a: &[T], b: &[T]) -> bool { !lt(a, b) }
pure fn gt<T:Ord>(a: &[T], b: &[T]) -> bool { lt(b, a) }
#[cfg(notest)]
-impl<T:Ord> Ord for &self/[T] {
+impl<T:Ord> Ord for &'self [T] {
#[inline(always)]
- pure fn lt(&self, other: & &self/[T]) -> bool { lt((*self), (*other)) }
+ pure fn lt(&self, other: & &'self [T]) -> bool { lt((*self), (*other)) }
#[inline(always)]
- pure fn le(&self, other: & &self/[T]) -> bool { le((*self), (*other)) }
+ pure fn le(&self, other: & &'self [T]) -> bool { le((*self), (*other)) }
#[inline(always)]
- pure fn ge(&self, other: & &self/[T]) -> bool { ge((*self), (*other)) }
+ pure fn ge(&self, other: & &'self [T]) -> bool { ge((*self), (*other)) }
#[inline(always)]
- pure fn gt(&self, other: & &self/[T]) -> bool { gt((*self), (*other)) }
+ pure fn gt(&self, other: & &'self [T]) -> bool { gt((*self), (*other)) }
}
#[cfg(notest)]
@@ -1680,15 +1680,15 @@ pub mod traits {
use ops::Add;
use vec::append;
- impl<T:Copy> Add<&self/[const T],~[T]> for ~[T] {
+ impl<T:Copy> Add<&'self [const T],~[T]> for ~[T] {
#[inline(always)]
- pure fn add(&self, rhs: & &self/[const T]) -> ~[T] {
+ pure fn add(&self, rhs: & &'self [const T]) -> ~[T] {
append(copy *self, (*rhs))
}
}
}
-impl<T> Container for &self/[const T] {
+impl<T> Container for &'self [const T] {
/// Returns true if a vector contains no elements
#[inline]
pure fn is_empty(&self) -> bool { is_empty(*self) }
@@ -1712,15 +1712,15 @@ impl<T: Copy> CopyableVector<T> for &'self [const T] {
}
pub trait ImmutableVector<T> {
- pure fn view(&self, start: uint, end: uint) -> &self/[T];
- pure fn head(&self) -> &self/T;
- pure fn head_opt(&self) -> Option<&self/T>;
- pure fn tail(&self) -> &self/[T];
- pure fn tailn(&self, n: uint) -> &self/[T];
- pure fn init(&self) -> &self/[T];
- pure fn initn(&self, n: uint) -> &self/[T];
- pure fn last(&self) -> &self/T;
- pure fn last_opt(&self) -> Option<&self/T>;
+ pure fn view(&self, start: uint, end: uint) -> &'self [T];
+ pure fn head(&self) -> &'self T;
+ pure fn head_opt(&self) -> Option<&'self T>;
+ pure fn tail(&self) -> &'self [T];
+ pure fn tailn(&self, n: uint) -> &'self [T];
+ pure fn init(&self) -> &'self [T];
+ pure fn initn(&self, n: uint) -> &'self [T];
+ pure fn last(&self) -> &'self T;
+ pure fn last_opt(&self) -> Option<&'self T>;
pure fn foldr<U: Copy>(&self, z: U, p: &fn(t: &T, u: U) -> U) -> U;
pure fn map<U>(&self, f: &fn(t: &T) -> U) -> ~[U];
pure fn mapi<U>(&self, f: &fn(uint, t: &T) -> U) -> ~[U];
@@ -1731,44 +1731,44 @@ pub trait ImmutableVector<T> {
}
/// Extension methods for vectors
-impl<T> ImmutableVector<T> for &self/[T] {
+impl<T> ImmutableVector<T> for &'self [T] {
/// Return a slice that points into another slice.
#[inline]
- pure fn view(&self, start: uint, end: uint) -> &self/[T] {
+ pure fn view(&self, start: uint, end: uint) -> &'self [T] {
slice(*self, start, end)
}
/// Returns the first element of a vector, failing if the vector is empty.
#[inline]
- pure fn head(&self) -> &self/T { head(*self) }
+ pure fn head(&self) -> &'self T { head(*self) }
/// Returns the first element of a vector
#[inline]
- pure fn head_opt(&self) -> Option<&self/T> { head_opt(*self) }
+ pure fn head_opt(&self) -> Option<&'self T> { head_opt(*self) }
/// Returns all but the first element of a vector
#[inline]
- pure fn tail(&self) -> &self/[T] { tail(*self) }
+ pure fn tail(&self) -> &'self [T] { tail(*self) }
/// Returns all but the first `n' elements of a vector
#[inline]
- pure fn tailn(&self, n: uint) -> &self/[T] { tailn(*self, n) }
+ pure fn tailn(&self, n: uint) -> &'self [T] { tailn(*self, n) }
/// Returns all but the last elemnt of a vector
#[inline]
- pure fn init(&self) -> &self/[T] { init(*self) }
+ pure fn init(&self) -> &'self [T] { init(*self) }
/// Returns all but the last `n' elemnts of a vector
#[inline]
- pure fn initn(&self, n: uint) -> &self/[T] { initn(*self, n) }
+ pure fn initn(&self, n: uint) -> &'self [T] { initn(*self, n) }
/// Returns the last element of a `v`, failing if the vector is empty.
#[inline]
- pure fn last(&self) -> &self/T { last(*self) }
+ pure fn last(&self) -> &'self T { last(*self) }
/// Returns the last element of a `v`, failing if the vector is empty.
#[inline]
- pure fn last_opt(&self) -> Option<&self/T> { last_opt(*self) }
+ pure fn last_opt(&self) -> Option<&'self T> { last_opt(*self) }
/// Reduce a vector from right to left
#[inline]
@@ -1834,7 +1834,7 @@ pub trait ImmutableEqVector<T:Eq> {
pure fn rposition_elem(&self, t: &T) -> Option<uint>;
}
-impl<T:Eq> ImmutableEqVector<T> for &self/[T] {
+impl<T:Eq> ImmutableEqVector<T> for &'self [T] {
/**
* Find the first index matching some predicate
*
@@ -1879,7 +1879,7 @@ pub trait ImmutableCopyableVector<T> {
}
/// Extension methods for vectors
-impl<T:Copy> ImmutableCopyableVector<T> for &self/[T] {
+impl<T:Copy> ImmutableCopyableVector<T> for &'self [T] {
/**
* Construct a new vector from the elements of a vector for which some
* predicate holds.
@@ -2139,7 +2139,7 @@ pub mod raw {
len: uint,
f: &fn(v: &[T]) -> U) -> U {
let pair = (p, len * sys::nonzero_size_of::<T>());
- let v : *(&blk/[T]) =
+ let v : *(&'blk [T]) =
::cast::reinterpret_cast(&addr_of(&pair));
f(*v)
}
@@ -2153,7 +2153,7 @@ pub mod raw {
len: uint,
f: &fn(v: &mut [T]) -> U) -> U {
let pair = (p, len * sys::nonzero_size_of::<T>());
- let v : *(&blk/mut [T]) =
+ let v : *(&'blk mut [T]) =
::cast::reinterpret_cast(&addr_of(&pair));
f(*v)
}
@@ -2327,7 +2327,7 @@ impl<A> iter::MutableIter<A> for @mut [A] {
}
}
-impl<A> iter::ExtendedIter<A> for &self/[A] {
+impl<A> iter::ExtendedIter<A> for &'self [A] {
pub pure fn eachi(&self, blk: &fn(uint, v: &A) -> bool) {
iter::eachi(self, blk)
}
@@ -2404,7 +2404,7 @@ impl<A> iter::ExtendedIter<A> for @[A] {
}
}
-impl<A:Eq> iter::EqIter<A> for &self/[A] {
+impl<A:Eq> iter::EqIter<A> for &'self [A] {
pub pure fn contains(&self, x: &A) -> bool { iter::contains(self, x) }
pub pure fn count(&self, x: &A) -> uint { iter::count(self, x) }
}
@@ -2421,7 +2421,7 @@ impl<A:Eq> iter::EqIter<A> for @[A] {
pub pure fn count(&self, x: &A) -> uint { iter::count(self, x) }
}
-impl<A:Copy> iter::CopyableIter<A> for &self/[A] {
+impl<A:Copy> iter::CopyableIter<A> for &'self [A] {
pure fn filter_to_vec(&self, pred: &fn(&A) -> bool) -> ~[A] {
iter::filter_to_vec(self, pred)
}
@@ -2453,7 +2453,7 @@ impl<A:Copy> iter::CopyableIter<A> for @[A] {
}
}
-impl<A:Copy + Ord> iter::CopyableOrderedIter<A> for &self/[A] {
+impl<A:Copy + Ord> iter::CopyableOrderedIter<A> for &'self [A] {
pure fn min(&self) -> A { iter::min(self) }
pure fn max(&self) -> A { iter::max(self) }
}
@@ -2470,7 +2470,7 @@ impl<A:Copy + Ord> iter::CopyableOrderedIter<A> for @[A] {
pure fn max(&self) -> A { iter::max(self) }
}
-impl<A:Copy> iter::CopyableNonstrictIter<A> for &self/[A] {
+impl<A:Copy> iter::CopyableNonstrictIter<A> for &'self [A] {
pure fn each_val(&const self, f: &fn(A) -> bool) {
let mut i = 0;
while i < self.len() {
View
14 src/librust/rust.rc
@@ -38,23 +38,23 @@ impl ValidUsage {
}
enum Action {
- Exec(&self/str),
- Call(&self/fn(args: &[~str]) -> ValidUsage)
+ Exec(&'self str),
+ Call(&'self fn(args: &[~str]) -> ValidUsage)
}
enum UsageSource {
- UsgExec(&self/str),
- UsgStr(&self/str)
+ UsgExec(&'self str),
+ UsgStr(&'self str)
}
struct Command {
- cmd: &self/str,
+ cmd: &'self str,
action: Action/&self,
- usage_line: &self/str,
+ usage_line: &'self str,
usage_full: UsageSource/&self
}
-const commands: &static/[Command/&static] = &[
+const commands: &'static [Command/&static] = &[
Command{
cmd: "build",
action: Exec("rustc"),
View
2  src/librustc/front/core_inject.rs
@@ -19,7 +19,7 @@ use syntax::codemap;
use syntax::codemap::dummy_sp;
use syntax::fold;
-const CORE_VERSION: &static/str = "0.6";
+const CORE_VERSION: &'static str = "0.6";
pub fn maybe_inject_libcore_ref(sess: Session,
crate: @ast::crate) -> @ast::crate {
View
20 src/librustc/front/test.rs
@@ -257,7 +257,7 @@ mod __test {
std::test::test_main_static(::os::args(), tests)
}
- const tests : &static/[std::test::TestDescAndFn] = &[
+ const tests : &'static [std::test::TestDescAndFn] = &[
... the list of tests in the crate ...
];
}
@@ -352,7 +352,7 @@ fn path_node_global(+ids: ~[ast::ident]) -> @ast::path {
types: ~[] }
}
-
+#[cfg(stage0)]
fn mk_tests(cx: &TestCtxt) -> @ast::item {
let ext_cx = cx.ext_cx;
@@ -367,6 +367,22 @@ fn mk_tests(cx: &TestCtxt) -> @ast::item {
)).get()
}
+#[cfg(stage1)]
+#[cfg(stage2)]
+fn mk_tests(cx: &TestCtxt) -> @ast::item {
+
+ let ext_cx = cx.ext_cx;
+
+ // The vector of test_descs for this crate
+ let test_descs = mk_test_descs(cx);
+
+ (quote_item!(
+ pub const tests : &'static [self::std::test::TestDescAndFn] =
+ $test_descs
+ ;
+ )).get()
+}
+
fn is_std(cx: &TestCtxt) -> bool {
let is_std = {
let items = attr::find_linkage_metas(cx.crate.node.attrs);
View
4 src/librustc/metadata/decoder.rs
@@ -66,7 +66,7 @@ fn lookup_hash(d: ebml::Doc, eq_fn: &fn(x:&[u8]) -> bool, hash: uint) ->
None
}
-pub type GetCrateDataCb = &self/fn(ast::crate_num) -> cmd;
+pub type GetCrateDataCb = &'self fn(ast::crate_num) -> cmd;
pub fn maybe_find_item(item_id: int, items: ebml::Doc) -> Option<ebml::Doc> {
fn eq_item(bytes: &[u8], item_id: int) -> bool {
@@ -544,7 +544,7 @@ pub fn get_item_path(intr: @ident_interner, cdata: cmd, id: ast::node_id)
item_path(intr, lookup_item(id, cdata.data))
}
-pub type decode_inlined_item = &self/fn(
+pub type decode_inlined_item = &'self fn(
cdata: @cstore::crate_metadata,
tcx: ty::ctxt,
path: ast_map::path,
View
2  src/librustc/metadata/encoder.rs
@@ -1291,7 +1291,7 @@ fn encode_hash(ebml_w: writer::Encoder, hash: &str) {
}