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
This commit is contained in:
@@ -98,7 +98,8 @@
|
||||
|
||||
#![stable(feature = "rust1", since = "1.0.0")]
|
||||
|
||||
use core::prelude::*;
|
||||
#[cfg(stage0)]
|
||||
use core::prelude::v1::*;
|
||||
|
||||
use ascii::*;
|
||||
use borrow::{Borrow, IntoCow, ToOwned, Cow};
|
||||
@@ -134,7 +135,8 @@ use self::platform::{is_sep_byte, is_verbatim_sep, MAIN_SEP_STR, parse_prefix};
|
||||
#[cfg(unix)]
|
||||
mod platform {
|
||||
use super::Prefix;
|
||||
use core::prelude::*;
|
||||
#[cfg(stage0)]
|
||||
use core::prelude::v1::*;
|
||||
use ffi::OsStr;
|
||||
|
||||
#[inline]
|
||||
@@ -157,7 +159,8 @@ mod platform {
|
||||
|
||||
#[cfg(windows)]
|
||||
mod platform {
|
||||
use core::prelude::*;
|
||||
#[cfg(stage0)]
|
||||
use core::prelude::v1::*;
|
||||
use ascii::*;
|
||||
|
||||
use super::{os_str_as_u8_slice, u8_slice_as_os_str, Prefix};
|
||||
@@ -1747,7 +1750,8 @@ impl AsRef<Path> for PathBuf {
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use core::prelude::*;
|
||||
#[cfg(stage0)]
|
||||
use core::prelude::v1::*;
|
||||
use string::{ToString, String};
|
||||
use vec::Vec;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user