From 9089cf2ec9297a3b558d24352cde6a5206a08444 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Thu, 18 Jul 2013 17:12:46 -0700 Subject: librustc: Forbid `&` pointers (other than `&'static`) inside `@` boxes. This makes custom borrowing implementations for custom smart pointers sound. --- src/libextra/fun_treemap.rs | 17 ++++++++++++++--- src/libextra/list.rs | 4 ++-- src/libextra/serialize.rs | 4 ++-- 3 files changed, 18 insertions(+), 7 deletions(-) (limited to 'src/libextra') diff --git a/src/libextra/fun_treemap.rs b/src/libextra/fun_treemap.rs index 7074d76536a..edbe323ec2d 100644 --- a/src/libextra/fun_treemap.rs +++ b/src/libextra/fun_treemap.rs @@ -31,10 +31,17 @@ enum TreeNode { } /// Create a treemap -pub fn init() -> Treemap { @Empty } +pub fn init() -> Treemap { + @Empty +} /// Insert a value into the map -pub fn insert(m: Treemap, k: K, v: V) -> Treemap { +pub fn insert( + m: Treemap, + k: K, + v: V) + -> Treemap { @match m { @Empty => Node(@k, @v, @Empty, @Empty), @Node(kk, vv, left, right) => cond!( @@ -46,7 +53,11 @@ pub fn insert(m: Treemap, k: K, v: V) -> Treemap { } /// Find a value based on the key -pub fn find(m: Treemap, k: K) -> Option { +pub fn find( + m: Treemap, + k: K) + -> Option { match *m { Empty => None, Node(kk, v, left, right) => cond!( diff --git a/src/libextra/list.rs b/src/libextra/list.rs index 03481760579..8f7ade7228b 100644 --- a/src/libextra/list.rs +++ b/src/libextra/list.rs @@ -25,7 +25,7 @@ pub enum MutList { } /// Create a list from a vector -pub fn from_vec(v: &[T]) -> @List { +pub fn from_vec(v: &[T]) -> @List { v.rev_iter().fold(@Nil::, |t, h| @Cons((*h).clone(), t)) } @@ -109,7 +109,7 @@ pub fn head(ls: @List) -> T { } /// Appends one list to another -pub fn append(l: @List, m: @List) -> @List { +pub fn append(l: @List, m: @List) -> @List { match *l { Nil => return m, Cons(ref x, xs) => { diff --git a/src/libextra/serialize.rs b/src/libextra/serialize.rs index 62c1f6631d2..679e5e46547 100644 --- a/src/libextra/serialize.rs +++ b/src/libextra/serialize.rs @@ -423,7 +423,7 @@ impl> Encodable for @T { } } -impl> Decodable for @T { +impl + 'static> Decodable for @T { fn decode(d: &mut D) -> @T { @Decodable::decode(d) } @@ -435,7 +435,7 @@ impl> Encodable for @mut T { } } -impl> Decodable for @mut T { +impl + 'static> Decodable for @mut T { fn decode(d: &mut D) -> @mut T { @mut Decodable::decode(d) } -- cgit 1.4.1-3-g733a5