diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2015-07-29 17:01:14 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2015-08-03 17:23:01 -0700 |
| commit | 5cccf3cd256420d9f32c265e83036dea1d5f94d8 (patch) | |
| tree | 22904c7bb3df0872afa227638aa5e1e4ccb99fbc /src/libcollections | |
| parent | ceded6adb3a4e172eabef09e1c78717a99c16b14 (diff) | |
| download | rust-5cccf3cd256420d9f32c265e83036dea1d5f94d8.tar.gz rust-5cccf3cd256420d9f32c265e83036dea1d5f94d8.zip | |
syntax: Implement #![no_core]
This commit is an implementation of [RFC 1184][rfc] which tweaks the behavior of the `#![no_std]` attribute and adds a new `#![no_core]` attribute. The `#![no_std]` attribute now injects `extern crate core` at the top of the crate as well as the libcore prelude into all modules (in the same manner as the standard library's prelude). The `#![no_core]` attribute disables both std and core injection. [rfc]: https://github.com/rust-lang/rfcs/pull/1184
Diffstat (limited to 'src/libcollections')
| -rw-r--r-- | src/libcollections/binary_heap.rs | 3 | ||||
| -rw-r--r-- | src/libcollections/bit.rs | 3 | ||||
| -rw-r--r-- | src/libcollections/btree/map.rs | 6 | ||||
| -rw-r--r-- | src/libcollections/btree/node.rs | 3 | ||||
| -rw-r--r-- | src/libcollections/btree/set.rs | 3 | ||||
| -rw-r--r-- | src/libcollections/enum_set.rs | 4 | ||||
| -rw-r--r-- | src/libcollections/lib.rs | 6 | ||||
| -rw-r--r-- | src/libcollections/linked_list.rs | 3 | ||||
| -rw-r--r-- | src/libcollections/string.rs | 3 | ||||
| -rw-r--r-- | src/libcollections/vec.rs | 4 | ||||
| -rw-r--r-- | src/libcollections/vec_deque.rs | 3 | ||||
| -rw-r--r-- | src/libcollections/vec_map.rs | 3 |
12 files changed, 28 insertions, 16 deletions
diff --git a/src/libcollections/binary_heap.rs b/src/libcollections/binary_heap.rs index ddf61918947..65a252aea49 100644 --- a/src/libcollections/binary_heap.rs +++ b/src/libcollections/binary_heap.rs @@ -151,7 +151,8 @@ #![allow(missing_docs)] #![stable(feature = "rust1", since = "1.0.0")] -use core::prelude::*; +#[cfg(stage0)] +use core::prelude::v1::*; use core::iter::{FromIterator}; use core::mem::swap; diff --git a/src/libcollections/bit.rs b/src/libcollections/bit.rs index 30f23e073f6..af33181c5d0 100644 --- a/src/libcollections/bit.rs +++ b/src/libcollections/bit.rs @@ -86,7 +86,8 @@ //! println!("There are {} primes below {}", num_primes, max_prime); //! ``` -use core::prelude::*; +#[cfg(stage0)] +use core::prelude::v1::*; use core::cmp::Ordering; use core::cmp; diff --git a/src/libcollections/btree/map.rs b/src/libcollections/btree/map.rs index a5a0d864572..9fa54c6ca2f 100644 --- a/src/libcollections/btree/map.rs +++ b/src/libcollections/btree/map.rs @@ -17,7 +17,8 @@ use self::Entry::*; -use core::prelude::*; +#[cfg(stage0)] +use core::prelude::v1::*; use core::cmp::Ordering; use core::fmt::Debug; @@ -530,7 +531,8 @@ enum Continuation<A, B> { /// to nodes. By using this module much better safety guarantees can be made, and more search /// boilerplate gets cut out. mod stack { - use core::prelude::*; + #[cfg(stage0)] + use core::prelude::v1::*; use core::marker; use core::mem; use core::ops::{Deref, DerefMut}; diff --git a/src/libcollections/btree/node.rs b/src/libcollections/btree/node.rs index 4d76a986700..b9cd73470b6 100644 --- a/src/libcollections/btree/node.rs +++ b/src/libcollections/btree/node.rs @@ -16,7 +16,8 @@ pub use self::SearchResult::*; pub use self::ForceResult::*; pub use self::TraversalItem::*; -use core::prelude::*; +#[cfg(stage0)] +use core::prelude::v1::*; use core::cmp::Ordering::{Greater, Less, Equal}; use core::intrinsics::arith_offset; diff --git a/src/libcollections/btree/set.rs b/src/libcollections/btree/set.rs index 596312e509e..b9430b2d003 100644 --- a/src/libcollections/btree/set.rs +++ b/src/libcollections/btree/set.rs @@ -11,7 +11,8 @@ // This is pretty much entirely stolen from TreeSet, since BTreeMap has an identical interface // to TreeMap -use core::prelude::*; +#[cfg(stage0)] +use core::prelude::v1::*; use core::cmp::Ordering::{self, Less, Greater, Equal}; use core::fmt::Debug; diff --git a/src/libcollections/enum_set.rs b/src/libcollections/enum_set.rs index e90e6c065a2..e74726baf11 100644 --- a/src/libcollections/enum_set.rs +++ b/src/libcollections/enum_set.rs @@ -17,7 +17,9 @@ reason = "matches collection reform specification, \ waiting for dust to settle")] -use core::prelude::*; +#[cfg(stage0)] +use core::prelude::v1::*; + use core::marker; use core::fmt; use core::iter::{FromIterator}; diff --git a/src/libcollections/lib.rs b/src/libcollections/lib.rs index ee7d2c4d23b..5fb28d67974 100644 --- a/src/libcollections/lib.rs +++ b/src/libcollections/lib.rs @@ -33,9 +33,7 @@ #![feature(alloc)] #![feature(box_patterns)] #![feature(box_syntax)] -#![feature(core)] #![feature(core_intrinsics)] -#![feature(core_prelude)] #![feature(core_slice_ext)] #![feature(core_str_ext)] #![feature(heap_api)] @@ -62,12 +60,12 @@ #![feature(utf8_error)] #![cfg_attr(test, feature(rand, test))] #![cfg_attr(not(test), feature(str_words))] +#![cfg_attr(stage0, feature(core, core_prelude))] #![feature(no_std)] #![no_std] -#[macro_use] -extern crate core; +#[cfg(stage0)] #[macro_use] extern crate core; extern crate rustc_unicode; extern crate alloc; diff --git a/src/libcollections/linked_list.rs b/src/libcollections/linked_list.rs index 32d6b3b95a4..697cfea197c 100644 --- a/src/libcollections/linked_list.rs +++ b/src/libcollections/linked_list.rs @@ -21,7 +21,8 @@ #![stable(feature = "rust1", since = "1.0.0")] -use core::prelude::*; +#[cfg(stage0)] +use core::prelude::v1::*; use alloc::boxed::Box; use core::cmp::Ordering; diff --git a/src/libcollections/string.rs b/src/libcollections/string.rs index 0b441b42cdc..b323ab03ec6 100644 --- a/src/libcollections/string.rs +++ b/src/libcollections/string.rs @@ -12,7 +12,8 @@ #![stable(feature = "rust1", since = "1.0.0")] -use core::prelude::*; +#[cfg(stage0)] +use core::prelude::v1::*; use core::fmt; use core::hash; diff --git a/src/libcollections/vec.rs b/src/libcollections/vec.rs index 96ad00597f8..9a29f6f9b82 100644 --- a/src/libcollections/vec.rs +++ b/src/libcollections/vec.rs @@ -58,7 +58,9 @@ #![stable(feature = "rust1", since = "1.0.0")] -use core::prelude::*; +#[cfg(stage0)] +use core::prelude::v1::*; + use alloc::raw_vec::RawVec; use alloc::boxed::Box; use alloc::heap::EMPTY; diff --git a/src/libcollections/vec_deque.rs b/src/libcollections/vec_deque.rs index c6d0d946ab0..b55436c7057 100644 --- a/src/libcollections/vec_deque.rs +++ b/src/libcollections/vec_deque.rs @@ -18,7 +18,8 @@ #![stable(feature = "rust1", since = "1.0.0")] -use core::prelude::*; +#[cfg(stage0)] +use core::prelude::v1::*; use core::cmp::Ordering; use core::fmt; diff --git a/src/libcollections/vec_map.rs b/src/libcollections/vec_map.rs index a2d378a0faf..8be80a67ce7 100644 --- a/src/libcollections/vec_map.rs +++ b/src/libcollections/vec_map.rs @@ -20,7 +20,8 @@ use self::Entry::*; -use core::prelude::*; +#[cfg(stage0)] +use core::prelude::v1::*; use core::cmp::{max, Ordering}; use core::fmt; |
