diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2013-03-22 15:52:50 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2013-03-22 22:24:35 -0700 |
| commit | 6d81307a9b9f29e262164f9e358f50c186c76d76 (patch) | |
| tree | 620e4467c21651281114dfad71d36636eb4ff51b | |
| parent | 68cb53672b74e8b4352453e181667848cd63a183 (diff) | |
| download | rust-6d81307a9b9f29e262164f9e358f50c186c76d76.tar.gz rust-6d81307a9b9f29e262164f9e358f50c186c76d76.zip | |
librustc: Add explicit lifetime binders and new lifetime notation in core/std/syntax/rustc
| -rw-r--r-- | src/libcore/condition.rs | 14 | ||||
| -rw-r--r-- | src/libcore/unstable/finally.rs | 4 | ||||
| -rw-r--r-- | src/librustc/middle/borrowck/preserve.rs | 2 | ||||
| -rw-r--r-- | src/librustc/middle/kind.rs | 2 | ||||
| -rw-r--r-- | src/librustc/middle/lang_items.rs | 10 | ||||
| -rw-r--r-- | src/librustc/middle/trans/_match.rs | 105 | ||||
| -rw-r--r-- | src/librustc/middle/typeck/check/method.rs | 2 | ||||
| -rw-r--r-- | src/libstd/arc.rs | 12 | ||||
| -rw-r--r-- | src/libstd/flatpipes.rs | 4 | ||||
| -rw-r--r-- | src/libstd/json.rs | 4 | ||||
| -rw-r--r-- | src/libstd/sort.rs | 12 | ||||
| -rw-r--r-- | src/libstd/sync.rs | 39 | ||||
| -rw-r--r-- | src/libstd/treemap.rs | 22 | ||||
| -rw-r--r-- | src/libstd/workcache.rs | 15 | ||||
| -rw-r--r-- | src/libsyntax/ext/expand.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/ext/tt/macro_parser.rs | 2 |
16 files changed, 135 insertions, 116 deletions
diff --git a/src/libcore/condition.rs b/src/libcore/condition.rs index 66e9b970fa7..767b6ecfad4 100644 --- a/src/libcore/condition.rs +++ b/src/libcore/condition.rs @@ -22,11 +22,11 @@ pub struct Handler<T, U> { pub struct Condition<T, U> { name: &'static str, - key: task::local_data::LocalDataKey/&self<Handler<T, U>> + 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> { +pub impl<T, U> Condition<'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,11 +65,11 @@ 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> { +pub impl<T, U> Trap<'self, T, U> { fn in<V>(&self, inner: &'self fn() -> V) -> V { unsafe { let _g = Guard { cond: self.cond }; @@ -81,11 +81,11 @@ pub impl<T, U> Trap/&self<T, U> { } struct Guard<T, U> { - cond: &'self Condition/&self<T, U> + cond: &'self Condition<'self, T, U> } #[unsafe_destructor] -impl<T, U> Drop for Guard/&self<T, U> { +impl<T, U> Drop for Guard<'self, T, U> { fn finalize(&self) { unsafe { debug!("Guard: popping handler from TLS"); diff --git a/src/libcore/unstable/finally.rs b/src/libcore/unstable/finally.rs index c96889cebc8..04d1d6f11b9 100644 --- a/src/libcore/unstable/finally.rs +++ b/src/libcore/unstable/finally.rs @@ -41,12 +41,12 @@ impl<T> Finally<T> for &'self fn() -> T { } } -struct Finallyalizer { +struct Finallyalizer<'self> { dtor: &'self fn() } #[unsafe_destructor] -impl Drop for Finallyalizer/&self { +impl<'self> Drop for Finallyalizer<'self> { fn finalize(&self) { (self.dtor)(); } diff --git a/src/librustc/middle/borrowck/preserve.rs b/src/librustc/middle/borrowck/preserve.rs index 962af48a70c..0440f4525ff 100644 --- a/src/librustc/middle/borrowck/preserve.rs +++ b/src/librustc/middle/borrowck/preserve.rs @@ -79,7 +79,7 @@ struct PreserveCtxt { root_managed_data: bool } -pub impl PreserveCtxt/&self { +pub impl<'self> PreserveCtxt<'self> { fn tcx(&self) -> ty::ctxt { self.bccx.tcx } fn preserve(&self, cmt: cmt) -> bckres<PreserveCondition> { diff --git a/src/librustc/middle/kind.rs b/src/librustc/middle/kind.rs index 75247e78aca..02b0e17a346 100644 --- a/src/librustc/middle/kind.rs +++ b/src/librustc/middle/kind.rs @@ -481,7 +481,7 @@ pub fn check_durable(tcx: ty::ctxt, ty: ty::t, sp: span) -> bool { } /// This is rather subtle. When we are casting a value to a -/// instantiated trait like `a as trait/&r`, regionck already ensures +/// instantiated trait like `a as trait<'r>`, regionck already ensures /// that any borrowed pointers that appear in the type of `a` are /// bounded by `&r`. However, it is possible that there are *type /// parameters* in the type of `a`, and those *type parameters* may diff --git a/src/librustc/middle/lang_items.rs b/src/librustc/middle/lang_items.rs index c319ca89105..669587205d5 100644 --- a/src/librustc/middle/lang_items.rs +++ b/src/librustc/middle/lang_items.rs @@ -255,10 +255,10 @@ pub impl LanguageItems { } } -fn LanguageItemCollector(crate: @crate, - session: Session, - items: &'r mut LanguageItems) - -> LanguageItemCollector/&r { +fn LanguageItemCollector<'r>(crate: @crate, + session: Session, + items: &'r mut LanguageItems) + -> LanguageItemCollector<'r> { let item_refs = HashMap(); item_refs.insert(@~"const", ConstTraitLangItem as uint); @@ -320,7 +320,7 @@ struct LanguageItemCollector { item_refs: HashMap<@~str, uint>, } -pub impl LanguageItemCollector/&self { +pub impl<'self> LanguageItemCollector<'self> { fn match_and_collect_meta_item(&self, item_def_id: def_id, meta_item: @meta_item) { match meta_item.node { diff --git a/src/librustc/middle/trans/_match.rs b/src/librustc/middle/trans/_match.rs index a529fd66939..7529b2132fd 100644 --- a/src/librustc/middle/trans/_match.rs +++ b/src/librustc/middle/trans/_match.rs @@ -331,9 +331,9 @@ pub struct ArmData { bindings_map: BindingsMap } -pub struct Match { +pub struct Match<'self> { pats: ~[@ast::pat], - data: @ArmData/&self + data: @ArmData<'self> } pub fn match_to_str(bcx: block, m: &Match) -> ~str { @@ -359,9 +359,11 @@ pub fn has_nested_bindings(m: &[@Match], col: uint) -> bool { return false; } -pub fn expand_nested_bindings(bcx: block, m: &[@Match/&r], - col: uint, val: ValueRef) - -> ~[@Match/&r] { +pub fn expand_nested_bindings<'r>(bcx: block, + m: &[@Match<'r>], + col: uint, + val: ValueRef) + -> ~[@Match<'r>] { debug!("expand_nested_bindings(bcx=%s, m=%s, col=%u, val=%?)", bcx.to_str(), matches_to_str(bcx, m), @@ -402,9 +404,13 @@ pub fn assert_is_binding_or_wild(bcx: block, p: @ast::pat) { } } -pub fn enter_match(bcx: block, dm: DefMap, m: &[@Match/&r], - col: uint, val: ValueRef, e: enter_pat) - -> ~[@Match/&r] { +pub fn enter_match<'r>(bcx: block, + dm: DefMap, + m: &[@Match<'r>], + col: uint, + val: ValueRef, + e: enter_pat) + -> ~[@Match<'r>] { debug!("enter_match(bcx=%s, m=%s, col=%u, val=%?)", bcx.to_str(), matches_to_str(bcx, m), @@ -445,9 +451,12 @@ pub fn enter_match(bcx: block, dm: DefMap, m: &[@Match/&r], return result; } -pub fn enter_default(bcx: block, dm: DefMap, m: &[@Match/&r], - col: uint, val: ValueRef) - -> ~[@Match/&r] { +pub fn enter_default<'r>(bcx: block, + dm: DefMap, + m: &[@Match<'r>], + col: uint, + val: ValueRef) + -> ~[@Match<'r>] { debug!("enter_default(bcx=%s, m=%s, col=%u, val=%?)", bcx.to_str(), matches_to_str(bcx, m), @@ -488,9 +497,13 @@ pub fn enter_default(bcx: block, dm: DefMap, m: &[@Match/&r], // <nmatsakis> so all patterns must either be records (resp. tuples) or // wildcards -pub fn enter_opt(bcx: block, m: &[@Match/&r], opt: &Opt, col: uint, - variant_size: uint, val: ValueRef) - -> ~[@Match/&r] { +pub fn enter_opt<'r>(bcx: block, + m: &[@Match<'r>], + opt: &Opt, + col: uint, + variant_size: uint, + val: ValueRef) + -> ~[@Match<'r>] { debug!("enter_opt(bcx=%s, m=%s, col=%u, val=%?)", bcx.to_str(), matches_to_str(bcx, m), @@ -599,11 +612,11 @@ pub fn enter_opt(bcx: block, m: &[@Match/&r], opt: &Opt, col: uint, pub fn enter_rec_or_struct(bcx: block, dm: DefMap, - m: &[@Match/&r], + m: &[@Match<'r>], col: uint, fields: &[ast::ident], val: ValueRef) - -> ~[@Match/&r] { + -> ~[@Match<'r>] { debug!("enter_rec_or_struct(bcx=%s, m=%s, col=%u, val=%?)", bcx.to_str(), matches_to_str(bcx, m), @@ -632,9 +645,13 @@ pub fn enter_rec_or_struct(bcx: block, } } -pub fn enter_tup(bcx: block, dm: DefMap, m: &[@Match/&r], - col: uint, val: ValueRef, n_elts: uint) - -> ~[@Match/&r] { +pub fn enter_tup<'r>(bcx: block, + dm: DefMap, + m: &[@Match<'r>], + col: uint, + val: ValueRef, + n_elts: uint) + -> ~[@Match<'r>] { debug!("enter_tup(bcx=%s, m=%s, col=%u, val=%?)", bcx.to_str(), matches_to_str(bcx, m), @@ -656,13 +673,13 @@ pub fn enter_tup(bcx: block, dm: DefMap, m: &[@Match/&r], } } -pub fn enter_tuple_struct(bcx: block, - dm: DefMap, - m: &[@Match/&r], - col: uint, - val: ValueRef, - n_elts: uint) - -> ~[@Match/&r] { +pub fn enter_tuple_struct<'r>(bcx: block, + dm: DefMap, + m: &[@Match<'r>], + col: uint, + val: ValueRef, + n_elts: uint) + -> ~[@Match<'r>] { debug!("enter_tuple_struct(bcx=%s, m=%s, col=%u, val=%?)", bcx.to_str(), matches_to_str(bcx, m), @@ -682,12 +699,12 @@ pub fn enter_tuple_struct(bcx: block, } } -pub fn enter_box(bcx: block, - dm: DefMap, - m: &[@Match/&r], - col: uint, - val: ValueRef) - -> ~[@Match/&r] { +pub fn enter_box<'r>(bcx: block, + dm: DefMap, + m: &[@Match<'r>], + col: uint, + val: ValueRef) + -> ~[@Match<'r>] { debug!("enter_box(bcx=%s, m=%s, col=%u, val=%?)", bcx.to_str(), matches_to_str(bcx, m), @@ -709,12 +726,12 @@ pub fn enter_box(bcx: block, } } -pub fn enter_uniq(bcx: block, - dm: DefMap, - m: &[@Match/&r], - col: uint, - val: ValueRef) - -> ~[@Match/&r] { +pub fn enter_uniq<'r>(bcx: block, + dm: DefMap, + m: &[@Match<'r>], + col: uint, + val: ValueRef) + -> ~[@Match<'r>] { debug!("enter_uniq(bcx=%s, m=%s, col=%u, val=%?)", bcx.to_str(), matches_to_str(bcx, m), @@ -736,12 +753,12 @@ pub fn enter_uniq(bcx: block, } } -pub fn enter_region(bcx: block, - dm: DefMap, - m: &[@Match/&r], - col: uint, - val: ValueRef) - -> ~[@Match/&r] { +pub fn enter_region<'r>(bcx: block, + dm: DefMap, + m: &[@Match<'r>], + col: uint, + val: ValueRef) + -> ~[@Match<'r>] { debug!("enter_region(bcx=%s, m=%s, col=%u, val=%?)", bcx.to_str(), matches_to_str(bcx, m), diff --git a/src/librustc/middle/typeck/check/method.rs b/src/librustc/middle/typeck/check/method.rs index 2973492cac4..c550e5c71e4 100644 --- a/src/librustc/middle/typeck/check/method.rs +++ b/src/librustc/middle/typeck/check/method.rs @@ -192,7 +192,7 @@ pub enum TransformTypeFlag { TransformTypeForObject, } -pub impl LookupContext/&self { +pub impl<'self> LookupContext<'self> { fn do_lookup(&self, self_ty: ty::t) -> Option<method_map_entry> { let mut self_ty = structurally_resolved_type(self.fcx, self.self_expr.span, diff --git a/src/libstd/arc.rs b/src/libstd/arc.rs index 5a08884777c..d037acff0ed 100644 --- a/src/libstd/arc.rs +++ b/src/libstd/arc.rs @@ -25,13 +25,13 @@ use core::ptr; use core::task; /// As sync::condvar, a mechanism for unlock-and-descheduling and signalling. -pub struct Condvar { +pub struct Condvar<'self> { is_mutex: bool, failed: &'self mut bool, - cond: &'self sync::Condvar/&self + cond: &'self sync::Condvar<'self> } -pub impl Condvar/&self { +pub impl<'self> Condvar<'self> { /// Atomically exit the associated ARC and block until a signal is sent. #[inline(always)] fn wait(&self) { self.wait_on(0) } @@ -375,7 +375,7 @@ pub impl<T:Const + Owned> RWARC<T> { } /// To be called inside of the write_downgrade block. - fn downgrade(&self, token: RWWriteMode/&a<T>) -> RWReadMode/&a<T> { + fn downgrade(&self, token: RWWriteMode<'a, T>) -> RWReadMode<'a, T> { // The rwlock should assert that the token belongs to us for us. let state = unsafe { get_shared_immutable_state(&self.x) }; let RWWriteMode { @@ -420,7 +420,7 @@ pub struct RWReadMode<'self, T> { token: sync::RWlockReadMode<'self>, } -pub impl<T:Const + Owned> RWWriteMode/&self<T> { +pub impl<T:Const + Owned> RWWriteMode<'self, T> { /// Access the pre-downgrade RWARC in write mode. fn write<U>(&self, blk: &fn(x: &mut T) -> U) -> U { match *self { @@ -458,7 +458,7 @@ pub impl<T:Const + Owned> RWWriteMode/&self<T> { } } -pub impl<T:Const + Owned> RWReadMode/&self<T> { +pub impl<T:Const + Owned> RWReadMode<'self, T> { /// Access the post-downgrade rwlock in read mode. fn read<U>(&self, blk: &fn(x: &T) -> U) -> U { match *self { diff --git a/src/libstd/flatpipes.rs b/src/libstd/flatpipes.rs index 01d672c9b26..587509af9fa 100644 --- a/src/libstd/flatpipes.rs +++ b/src/libstd/flatpipes.rs @@ -466,8 +466,8 @@ pub mod flatteners { fn from_writer(w: @Writer) -> Self; } - impl FromReader for json::Decoder/&self { - fn from_reader(r: @Reader) -> json::Decoder/&self { + impl FromReader for json::Decoder<'self> { + fn from_reader(r: @Reader) -> json::Decoder<'self> { match json::from_reader(r) { Ok(json) => { json::Decoder(json) diff --git a/src/libstd/json.rs b/src/libstd/json.rs index 0973e90dad3..f1f736e01a1 100644 --- a/src/libstd/json.rs +++ b/src/libstd/json.rs @@ -749,7 +749,7 @@ pub fn Decoder(json: Json) -> Decoder { Decoder { json: json, stack: ~[] } } -priv impl Decoder/&self { +priv impl Decoder<'self> { fn peek(&self) -> &'self Json { if vec::uniq_len(&const self.stack) == 0 { self.stack.push(&self.json); @@ -765,7 +765,7 @@ priv impl Decoder/&self { } } -impl serialize::Decoder for Decoder/&self { +impl serialize::Decoder for Decoder<'self> { fn read_nil(&self) -> () { debug!("read_nil"); match *self.pop() { diff --git a/src/libstd/sort.rs b/src/libstd/sort.rs index 33f585d32fc..1dc990526f0 100644 --- a/src/libstd/sort.rs +++ b/src/libstd/sort.rs @@ -1191,7 +1191,7 @@ mod big_tests { } #[unsafe_destructor] - impl Drop for LVal/&self { + impl<'self> Drop for LVal<'self> { fn finalize(&self) { let x = unsafe { task::local_data::local_data_get(self.key) }; match x { @@ -1205,17 +1205,17 @@ mod big_tests { } } - impl Ord for LVal/&self { - fn lt(&self, other: &'a LVal/&self) -> bool { + impl<'self> Ord for LVal<'self> { + fn lt(&self, other: &'a LVal<'self>) -> bool { (*self).val < other.val } - fn le(&self, other: &'a LVal/&self) -> bool { + fn le(&self, other: &'a LVal<'self>) -> bool { (*self).val <= other.val } - fn gt(&self, other: &'a LVal/&self) -> bool { + fn gt(&self, other: &'a LVal<'self>) -> bool { (*self).val > other.val } - fn ge(&self, other: &'a LVal/&self) -> bool { + fn ge(&self, other: &'a LVal<'self>) -> bool { (*self).val >= other.val } } diff --git a/src/libstd/sync.rs b/src/libstd/sync.rs index 00de601da6f..569c67eac93 100644 --- a/src/libstd/sync.rs +++ b/src/libstd/sync.rs @@ -168,7 +168,7 @@ type SemAndSignalRelease = SemReleaseGeneric<'self, ~[Waitqueue]>; struct SemReleaseGeneric<Q> { sem: &'self Sem<Q> } #[unsafe_destructor] -impl<Q:Owned> Drop for SemReleaseGeneric/&self<Q> { +impl<Q:Owned> Drop for SemReleaseGeneric<'self, Q> { fn finalize(&self) { unsafe { self.sem.release(); @@ -176,26 +176,26 @@ impl<Q:Owned> Drop for SemReleaseGeneric/&self<Q> { } } -fn SemRelease(sem: &'r Sem<()>) -> SemRelease/&r { +fn SemRelease(sem: &'r Sem<()>) -> SemRelease<'r> { SemReleaseGeneric { sem: sem } } fn SemAndSignalRelease(sem: &'r Sem<~[Waitqueue]>) - -> SemAndSignalRelease/&r { + -> SemAndSignalRelease<'r> { SemReleaseGeneric { sem: sem } } /// A mechanism for atomic-unlock-and-deschedule blocking and signalling. -pub struct Condvar { priv sem: &'self Sem<~[Waitqueue]> } +pub struct Condvar<'self> { priv sem: &'self Sem<~[Waitqueue]> } #[unsafe_destructor] -impl Drop for Condvar/&self { fn finalize(&self) {} } +impl<'self> Drop for Condvar<'self> { fn finalize(&self) {} } -pub impl Condvar/&self { +pub impl Condvar<'self> { /** * Atomically drop the associated lock, and block until a signal is sent. * @@ -266,7 +266,7 @@ pub impl Condvar/&self { } #[unsafe_destructor] - impl Drop for SemAndSignalReacquire/&self { + impl<'self> Drop for SemAndSignalReacquire<'self> { fn finalize(&self) { unsafe { // Needs to succeed, instead of itself dying. @@ -278,7 +278,7 @@ pub impl Condvar/&self { } fn SemAndSignalReacquire(sem: &'r Sem<~[Waitqueue]>) - -> SemAndSignalReacquire/&r { + -> SemAndSignalReacquire<'r> { SemAndSignalReacquire { sem: sem } @@ -586,7 +586,9 @@ pub impl RWlock { } /// To be called inside of the write_downgrade block. - fn downgrade(&self, token: RWlockWriteMode/&a) -> RWlockReadMode/&a { + fn downgrade<'a>(&self, + token: RWlockWriteMode<'a>) + -> RWlockReadMode<'a> { if !ptr::ref_eq(self, token.lock) { fail!(~"Can't downgrade() with a different rwlock's write_mode!"); } @@ -619,7 +621,7 @@ struct RWlockReleaseRead { } #[unsafe_destructor] -impl Drop for RWlockReleaseRead/&self { +impl<'self> Drop for RWlockReleaseRead<'self> { fn finalize(&self) { unsafe { do task::unkillable { @@ -641,7 +643,7 @@ impl Drop for RWlockReleaseRead/&self { } } -fn RWlockReleaseRead(lock: &'r RWlock) -> RWlockReleaseRead/&r { +fn RWlockReleaseRead<'r>(lock: &'r RWlock) -> RWlockReleaseRead<'r> { RWlockReleaseRead { lock: lock } @@ -655,7 +657,7 @@ struct RWlockReleaseDowngrade { } #[unsafe_destructor] -impl Drop for RWlockReleaseDowngrade/&self { +impl<'self> Drop for RWlockReleaseDowngrade<'self> { fn finalize(&self) { unsafe { do task::unkillable { @@ -685,23 +687,24 @@ impl Drop for RWlockReleaseDowngrade/&self { } } -fn RWlockReleaseDowngrade(lock: &'r RWlock) -> RWlockReleaseDowngrade/&r { +fn RWlockReleaseDowngrade<'r>(lock: &'r RWlock) + -> RWlockReleaseDowngrade<'r> { RWlockReleaseDowngrade { lock: lock } } /// The "write permission" token used for rwlock.write_downgrade(). -pub struct RWlockWriteMode { priv lock: &'self RWlock } +pub struct RWlockWriteMode<'self> { priv lock: &'self RWlock } #[unsafe_destructor] -impl Drop for RWlockWriteMode/&self { fn finalize(&self) {} } +impl<'self> Drop for RWlockWriteMode<'self> { fn finalize(&self) {} } /// The "read permission" token used for rwlock.write_downgrade(). pub struct RWlockReadMode { priv lock: &'self RWlock } #[unsafe_destructor] -impl Drop for RWlockReadMode/&self { fn finalize(&self) {} } +impl<'self> Drop for RWlockReadMode<'self> { fn finalize(&self) {} } -pub impl RWlockWriteMode/&self { +pub impl<'self> RWlockWriteMode<'self> { /// Access the pre-downgrade rwlock in write mode. fn write<U>(&self, blk: &fn() -> U) -> U { blk() } /// Access the pre-downgrade rwlock in write mode with a condvar. @@ -710,7 +713,7 @@ pub impl RWlockWriteMode/&self { } } -pub impl RWlockReadMode/&self { +pub impl<'self> RWlockReadMode<'self> { /// Access the post-downgrade rwlock in read mode. fn read<U>(&self, blk: &fn() -> U) -> U { blk() } } diff --git a/src/libstd/treemap.rs b/src/libstd/treemap.rs index 242ffd07881..1da1edae7d2 100644 --- a/src/libstd/treemap.rs +++ b/src/libstd/treemap.rs @@ -186,7 +186,7 @@ pub impl<K: TotalOrd, V> TreeMap<K, V> { /// Get a lazy iterator over the key-value pairs in the map. /// Requires that it be frozen (immutable). - fn iter(&self) -> TreeMapIterator/&self<K, V> { + fn iter(&self) -> TreeMapIterator<'self, K, V> { TreeMapIterator{stack: ~[], node: &self.root} } } @@ -200,8 +200,8 @@ pub struct TreeMapIterator<K, V> { /// Advance the iterator to the next node (in order) and return a /// tuple with a reference to the key and value. If there are no /// more nodes, return `None`. -pub fn map_next<K, V>(iter: &mut TreeMapIterator/&r<K, V>) - -> Option<(&'r K, &'r V)> { +pub fn map_next<'r, K, V>(iter: &mut TreeMapIterator<'r, K, V>) + -> Option<(&'r K, &'r V)> { while !iter.stack.is_empty() || iter.node.is_some() { match *iter.node { Some(ref x) => { @@ -219,8 +219,8 @@ pub fn map_next<K, V>(iter: &mut TreeMapIterator/&r<K, V>) } /// Advance the iterator through the map -pub fn map_advance<K, V>(iter: &mut TreeMapIterator/&r<K, V>, - f: &fn((&'r K, &'r V)) -> bool) { +pub fn map_advance<'r, K, V>(iter: &mut TreeMapIterator<'r, K, V>, + f: &fn((&'r K, &'r V)) -> bool) { loop { match map_next(iter) { Some(x) => { @@ -490,27 +490,27 @@ pub impl <T: TotalOrd> TreeSet<T> { /// Get a lazy iterator over the values in the set. /// Requires that it be frozen (immutable). #[inline(always)] - fn iter(&self) -> TreeSetIterator/&self<T> { + fn iter(&self) -> TreeSetIterator<'self, T> { TreeSetIterator{iter: self.map.iter()} } } /// Lazy forward iterator over a set -pub struct TreeSetIterator<T> { - priv iter: TreeMapIterator/&self<T, ()> +pub struct TreeSetIterator<'self, T> { + priv iter: TreeMapIterator<'self, T, ()> } /// Advance the iterator to the next node (in order). If this iterator is /// finished, does nothing. #[inline(always)] -pub fn set_next<T>(iter: &mut TreeSetIterator/&r<T>) -> Option<&'r T> { +pub fn set_next<'r, T>(iter: &mut TreeSetIterator<'r, T>) -> Option<&'r T> { do map_next(&mut iter.iter).map |&(value, _)| { value } } /// Advance the iterator through the set #[inline(always)] -pub fn set_advance<T>(iter: &mut TreeSetIterator/&r<T>, - f: &fn(&'r T) -> bool) { +pub fn set_advance<'r, T>(iter: &mut TreeSetIterator<'r, T>, + f: &fn(&'r T) -> bool) { do map_advance(&mut iter.iter) |(k, _)| { f(k) } } diff --git a/src/libstd/workcache.rs b/src/libstd/workcache.rs index b26b4b1c333..f477a8c9f91 100644 --- a/src/libstd/workcache.rs +++ b/src/libstd/workcache.rs @@ -234,9 +234,8 @@ fn json_encode<T:Encodable<json::Encoder>>(t: &T) -> ~str { } } -fn json_decode<T:Decodable<json::Decoder/&static>>( // FIXME(#5121) - s: &str) -> T -{ +// FIXME(#5121) +fn json_decode<T:Decodable<json::Decoder<'static>>>(s: &str) -> T { do io::with_str_reader(s) |rdr| { let j = result::unwrap(json::from_reader(rdr)); Decodable::decode(&json::Decoder(j)) @@ -266,7 +265,7 @@ pub impl Context { fn prep<T:Owned + Encodable<json::Encoder> + - Decodable<json::Decoder/&static>>( // FIXME(#5121) + Decodable<json::Decoder<'static>>>( // FIXME(#5121) @self, fn_name:&str, blk: &fn(@Mut<Prep>)->Work<T>) -> Work<T> { @@ -284,7 +283,7 @@ trait TPrep { fn all_fresh(&self, cat:&str, map:&WorkMap) -> bool; fn exec<T:Owned + Encodable<json::Encoder> + - Decodable<json::Decoder/&static>>( // FIXME(#5121) + Decodable<json::Decoder<'static>>>( // FIXME(#5121) &self, blk: ~fn(&Exec) -> T) -> Work<T>; } @@ -325,7 +324,7 @@ impl TPrep for @Mut<Prep> { fn exec<T:Owned + Encodable<json::Encoder> + - Decodable<json::Decoder/&static>>( // FIXME(#5121) + Decodable<json::Decoder<'static>>>( // FIXME(#5121) &self, blk: ~fn(&Exec) -> T) -> Work<T> { let mut bo = Some(blk); @@ -366,7 +365,7 @@ impl TPrep for @Mut<Prep> { pub impl<T:Owned + Encodable<json::Encoder> + - Decodable<json::Decoder/&static>> Work<T> { // FIXME(#5121) + Decodable<json::Decoder<'static>>> Work<T> { // FIXME(#5121) fn new(p: @Mut<Prep>, e: Either<T,PortOne<(Exec,T)>>) -> Work<T> { Work { prep: p, res: Some(e) } } @@ -375,7 +374,7 @@ pub impl<T:Owned + // FIXME (#3724): movable self. This should be in impl Work. fn unwrap<T:Owned + Encodable<json::Encoder> + - Decodable<json::Decoder/&static>>( // FIXME(#5121) + Decodable<json::Decoder<'static>>>( // FIXME(#5121) w: Work<T>) -> T { let mut ww = w; let mut s = None; diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index a69b3e20eb1..fb9d96a7831 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -494,7 +494,7 @@ pub fn core_macros() -> ~str { fn key(_x: @::core::condition::Handler<$in,$out>) { } pub static cond : - ::core::condition::Condition/&static<$in,$out> = + ::core::condition::Condition<'static,$in,$out> = ::core::condition::Condition { name: stringify!($c), key: key diff --git a/src/libsyntax/ext/tt/macro_parser.rs b/src/libsyntax/ext/tt/macro_parser.rs index b0628437bb0..688d7a57d91 100644 --- a/src/libsyntax/ext/tt/macro_parser.rs +++ b/src/libsyntax/ext/tt/macro_parser.rs @@ -109,7 +109,7 @@ pub fn is_some(&&mpu: matcher_pos_up) -> bool { } pub struct MatcherPos { - elts: ~[ast::matcher], // maybe should be /&? Need to understand regions. + elts: ~[ast::matcher], // maybe should be <'>? Need to understand regions. sep: Option<Token>, idx: uint, up: matcher_pos_up, // mutable for swapping only |
