1
Fork 0

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:
Alex Crichton 2015-07-29 17:01:14 -07:00
parent ceded6adb3
commit 5cccf3cd25
157 changed files with 478 additions and 385 deletions

View file

@ -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;