diff options
| author | Jorge Aparicio <japaricious@gmail.com> | 2015-01-01 14:53:20 -0500 |
|---|---|---|
| committer | Jorge Aparicio <japaricious@gmail.com> | 2015-01-02 12:19:59 -0500 |
| commit | 64b7c22c46b204520a6fae1c5cd750a3d3c6a66a (patch) | |
| tree | 6e9a504759c5ac42f747c5739b4173d6646cd8c8 /src/libsyntax | |
| parent | d55577255434d1a9969b74cc4ac5dff4c04d6054 (diff) | |
| download | rust-64b7c22c46b204520a6fae1c5cd750a3d3c6a66a.tar.gz rust-64b7c22c46b204520a6fae1c5cd750a3d3c6a66a.zip | |
core: use assoc types in `Deref[Mut]`
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/lib.rs | 1 | ||||
| -rw-r--r-- | src/libsyntax/owned_slice.rs | 4 | ||||
| -rw-r--r-- | src/libsyntax/parse/token.rs | 4 | ||||
| -rw-r--r-- | src/libsyntax/ptr.rs | 4 | ||||
| -rw-r--r-- | src/libsyntax/util/interner.rs | 4 |
5 files changed, 13 insertions, 4 deletions
diff --git a/src/libsyntax/lib.rs b/src/libsyntax/lib.rs index d5093c5055c..d86db4e177e 100644 --- a/src/libsyntax/lib.rs +++ b/src/libsyntax/lib.rs @@ -26,6 +26,7 @@ #![feature(macro_rules, globs, default_type_params, phase, slicing_syntax)] #![feature(quote, unsafe_destructor)] #![feature(unboxed_closures)] +#![feature(associated_types)] extern crate arena; extern crate fmt_macros; diff --git a/src/libsyntax/owned_slice.rs b/src/libsyntax/owned_slice.rs index 3023c547fb0..8c00aaf9bee 100644 --- a/src/libsyntax/owned_slice.rs +++ b/src/libsyntax/owned_slice.rs @@ -54,7 +54,9 @@ impl<T> OwnedSlice<T> { } } -impl<T> Deref<[T]> for OwnedSlice<T> { +impl<T> Deref for OwnedSlice<T> { + type Target = [T]; + fn deref(&self) -> &[T] { self.as_slice() } diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs index f22a4b5c6ed..61da1c25926 100644 --- a/src/libsyntax/parse/token.rs +++ b/src/libsyntax/parse/token.rs @@ -606,7 +606,9 @@ impl InternedString { } } -impl Deref<str> for InternedString { +impl Deref for InternedString { + type Target = str; + fn deref(&self) -> &str { &*self.string } } diff --git a/src/libsyntax/ptr.rs b/src/libsyntax/ptr.rs index 1b3ebde2461..5d4f50f5fd2 100644 --- a/src/libsyntax/ptr.rs +++ b/src/libsyntax/ptr.rs @@ -75,7 +75,9 @@ impl<T: 'static> P<T> { } } -impl<T> Deref<T> for P<T> { +impl<T> Deref for P<T> { + type Target = T; + fn deref<'a>(&'a self) -> &'a T { &*self.ptr } diff --git a/src/libsyntax/util/interner.rs b/src/libsyntax/util/interner.rs index 97eb4316583..5dde8db6155 100644 --- a/src/libsyntax/util/interner.rs +++ b/src/libsyntax/util/interner.rs @@ -124,7 +124,9 @@ impl BorrowFrom<RcStr> for str { } } -impl Deref<str> for RcStr { +impl Deref for RcStr { + type Target = str; + fn deref(&self) -> &str { self.string[] } } |
