From 5cccf3cd256420d9f32c265e83036dea1d5f94d8 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Wed, 29 Jul 2015 17:01:14 -0700 Subject: 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 --- src/liballoc/arc.rs | 3 ++- src/liballoc/boxed.rs | 3 ++- src/liballoc/lib.rs | 7 +++---- src/liballoc/rc.rs | 3 ++- 4 files changed, 9 insertions(+), 7 deletions(-) (limited to 'src/liballoc') diff --git a/src/liballoc/arc.rs b/src/liballoc/arc.rs index 46b6a5722ea..1e592397014 100644 --- a/src/liballoc/arc.rs +++ b/src/liballoc/arc.rs @@ -71,7 +71,8 @@ use boxed::Box; -use core::prelude::*; +#[cfg(stage0)] +use core::prelude::v1::*; use core::atomic; use core::atomic::Ordering::{Relaxed, Release, Acquire, SeqCst}; diff --git a/src/liballoc/boxed.rs b/src/liballoc/boxed.rs index 9420a88bade..ab1a5ba9019 100644 --- a/src/liballoc/boxed.rs +++ b/src/liballoc/boxed.rs @@ -53,7 +53,8 @@ #![stable(feature = "rust1", since = "1.0.0")] -use core::prelude::*; +#[cfg(stage0)] +use core::prelude::v1::*; use heap; use raw_vec::RawVec; diff --git a/src/liballoc/lib.rs b/src/liballoc/lib.rs index 0e9b01e5c23..6d251cae41d 100644 --- a/src/liballoc/lib.rs +++ b/src/liballoc/lib.rs @@ -75,7 +75,6 @@ #![feature(coerce_unsized)] #![feature(core)] #![feature(core_intrinsics)] -#![feature(core_prelude)] #![feature(core_slice_ext)] #![feature(custom_attribute)] #![feature(fundamental)] @@ -93,17 +92,17 @@ #![feature(unsize)] #![feature(core_slice_ext)] #![feature(core_str_ext)] +#![cfg_attr(stage0, feature(core, core_prelude))] #![cfg_attr(test, feature(test, alloc, rustc_private, box_raw))] #![cfg_attr(all(not(feature = "external_funcs"), not(feature = "external_crate")), feature(libc))] -#[macro_use] -extern crate core; - #[cfg(all(not(feature = "external_funcs"), not(feature = "external_crate")))] extern crate libc; +#[cfg(stage0)] #[macro_use] extern crate core; + // Allow testing this library #[cfg(test)] #[macro_use] extern crate std; diff --git a/src/liballoc/rc.rs b/src/liballoc/rc.rs index e4e3b3b209c..05fd36e8e7f 100644 --- a/src/liballoc/rc.rs +++ b/src/liballoc/rc.rs @@ -150,7 +150,8 @@ #![stable(feature = "rust1", since = "1.0.0")] -use core::prelude::*; +#[cfg(stage0)] +use core::prelude::v1::*; #[cfg(not(test))] use boxed::Box; -- cgit 1.4.1-3-g733a5