diff options
| author | Flavio Percoco <flaper87@gmail.com> | 2015-01-26 21:30:56 +0100 |
|---|---|---|
| committer | Flavio Percoco <flaper87@gmail.com> | 2015-02-22 02:14:24 +0100 |
| commit | bd511f73be526640ae98012d302201a019f9b458 (patch) | |
| tree | 35957397e49f86cab40b4e90c9eb879e98c77e35 /src/libcore | |
| parent | ad3e748128dc52d55820acc07aa034f61f90006d (diff) | |
| download | rust-bd511f73be526640ae98012d302201a019f9b458.tar.gz rust-bd511f73be526640ae98012d302201a019f9b458.zip | |
Add negative impls for `*const T` and `*mut T`
Diffstat (limited to 'src/libcore')
| -rw-r--r-- | src/libcore/lib.rs | 1 | ||||
| -rw-r--r-- | src/libcore/marker.rs | 6 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/libcore/lib.rs b/src/libcore/lib.rs index 3c58480ff0c..0370d6473d7 100644 --- a/src/libcore/lib.rs +++ b/src/libcore/lib.rs @@ -68,6 +68,7 @@ #![feature(staged_api)] #![feature(unboxed_closures)] #![feature(rustc_attrs)] +#![feature(optin_builtin_traits)] #[macro_use] mod macros; diff --git a/src/libcore/marker.rs b/src/libcore/marker.rs index d284eb34179..eefb6ef7703 100644 --- a/src/libcore/marker.rs +++ b/src/libcore/marker.rs @@ -49,6 +49,9 @@ pub unsafe trait Send : MarkerTrait { // empty. } +impl<T> !Send for *const T { } +impl<T> !Send for *mut T { } + /// Types with a constant size known at compile-time. #[stable(feature = "rust1", since = "1.0.0")] #[lang="sized"] @@ -214,6 +217,9 @@ pub unsafe trait Sync : MarkerTrait { // Empty } +impl<T> !Sync for *const T { } +impl<T> !Sync for *mut T { } + /// A type which is considered "not POD", meaning that it is not /// implicitly copyable. This is typically embedded in other types to /// ensure that they are never copied, even if they lack a destructor. |
