Stabilize the alloc
crate.
This implements RFC 2480: * https://github.com/rust-lang/rfcs/pull/2480 * https://github.com/rust-lang/rfcs/blob/master/text/2480-liballoc.md Closes https://github.com/rust-lang/rust/issues/27783
This commit is contained in:
parent
f8673e0ad8
commit
fc928a18ba
@ -51,10 +51,7 @@
|
||||
//! default global allocator. It is not compatible with the libc allocator API.
|
||||
|
||||
#![allow(unused_attributes)]
|
||||
#![unstable(feature = "alloc",
|
||||
reason = "this library is unlikely to be stabilized in its current \
|
||||
form or name",
|
||||
issue = "27783")]
|
||||
#![stable(feature = "alloc", since = "1.36.0")]
|
||||
#![doc(html_root_url = "https://doc.rust-lang.org/nightly/",
|
||||
issue_tracker_base_url = "https://github.com/rust-lang/rust/issues/",
|
||||
test(no_crate_inject, attr(allow(unused_variables), deny(warnings))))]
|
||||
|
@ -5,7 +5,6 @@
|
||||
//!
|
||||
//! ```
|
||||
//! # #![allow(unused_imports)]
|
||||
//! # #![feature(alloc)]
|
||||
//! #![feature(alloc_prelude)]
|
||||
//! extern crate alloc;
|
||||
//! use alloc::prelude::v1::*;
|
||||
|
@ -256,7 +256,7 @@ impl<T, A: Alloc> RawVec<T, A> {
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # #![feature(alloc, raw_vec_internals)]
|
||||
/// # #![feature(raw_vec_internals)]
|
||||
/// # extern crate alloc;
|
||||
/// # use std::ptr;
|
||||
/// # use alloc::raw_vec::RawVec;
|
||||
@ -460,7 +460,7 @@ impl<T, A: Alloc> RawVec<T, A> {
|
||||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// # #![feature(alloc, raw_vec_internals)]
|
||||
/// # #![feature(raw_vec_internals)]
|
||||
/// # extern crate alloc;
|
||||
/// # use std::ptr;
|
||||
/// # use alloc::raw_vec::RawVec;
|
||||
|
@ -13,7 +13,6 @@
|
||||
|
||||
#![deny(rust_2018_idioms)]
|
||||
|
||||
#![feature(alloc)]
|
||||
#![feature(core_intrinsics)]
|
||||
#![feature(dropck_eyepatch)]
|
||||
#![feature(raw_vec_internals)]
|
||||
|
@ -19,8 +19,6 @@
|
||||
|
||||
#![deny(rust_2018_idioms)]
|
||||
|
||||
#![feature(allocator_api)]
|
||||
#![feature(alloc)]
|
||||
#![feature(core_intrinsics)]
|
||||
#![feature(lang_items)]
|
||||
#![feature(libc)]
|
||||
|
@ -229,7 +229,6 @@
|
||||
#![feature(align_offset)]
|
||||
#![feature(alloc_error_handler)]
|
||||
#![feature(alloc_layout_extra)]
|
||||
#![feature(alloc)]
|
||||
#![feature(allocator_api)]
|
||||
#![feature(allocator_internals)]
|
||||
#![feature(allow_internal_unsafe)]
|
||||
|
@ -7,8 +7,8 @@ from subprocess import PIPE, Popen
|
||||
|
||||
# This is a whitelist of files which are stable crates or simply are not crates,
|
||||
# we don't check for the instability of these crates as they're all stable!
|
||||
STABLE_CRATES = ['std', 'core', 'proc_macro', 'rsbegin.o', 'rsend.o', 'dllcrt2.o', 'crt2.o',
|
||||
'clang_rt']
|
||||
STABLE_CRATES = ['std', 'alloc', 'core', 'proc_macro',
|
||||
'rsbegin.o', 'rsend.o', 'dllcrt2.o', 'crt2.o', 'clang_rt']
|
||||
|
||||
|
||||
def convert_to_string(s):
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
// ignore-emscripten no no_std executables
|
||||
|
||||
#![feature(lang_items, start, rustc_private, alloc)]
|
||||
#![feature(lang_items, start, rustc_private)]
|
||||
#![no_std]
|
||||
|
||||
extern crate std as other;
|
||||
|
@ -1,5 +1,5 @@
|
||||
// run-pass
|
||||
#![feature(extern_prelude, lang_items, start, alloc)]
|
||||
#![feature(extern_prelude, lang_items, start)]
|
||||
#![no_std]
|
||||
|
||||
extern crate std as other;
|
||||
|
@ -1,7 +1,7 @@
|
||||
warning: the feature `extern_prelude` has been stable since 1.30.0 and no longer requires an attribute to enable
|
||||
--> $DIR/extern-prelude-core.rs:2:12
|
||||
|
|
||||
LL | #![feature(extern_prelude, lang_items, start, alloc)]
|
||||
LL | #![feature(extern_prelude, lang_items, start)]
|
||||
| ^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: #[warn(stable_features)] on by default
|
||||
|
@ -1,6 +1,6 @@
|
||||
// run-pass
|
||||
#![allow(unused_imports)]
|
||||
#![feature(lang_items, start, alloc)]
|
||||
#![feature(lang_items, start)]
|
||||
#![no_std]
|
||||
|
||||
extern crate std as other;
|
||||
|
@ -1,6 +1,6 @@
|
||||
// ignore-emscripten no no_std executables
|
||||
|
||||
#![feature(lang_items, start, alloc)]
|
||||
#![feature(lang_items, start)]
|
||||
#![no_std]
|
||||
|
||||
extern crate std as other;
|
||||
|
@ -3,9 +3,6 @@
|
||||
|
||||
// Make sure the destructor is run for unit-like structs.
|
||||
|
||||
|
||||
#![feature(alloc)]
|
||||
|
||||
use std::thread;
|
||||
|
||||
struct Foo;
|
||||
|
@ -1,8 +1,6 @@
|
||||
// Tests that it is possible to create a global allocator in a submodule, rather than in the crate
|
||||
// root.
|
||||
|
||||
#![feature(alloc, allocator_api, global_allocator)]
|
||||
|
||||
extern crate alloc;
|
||||
|
||||
use std::{
|
||||
|
@ -1,5 +1,5 @@
|
||||
error: `global_allocator` cannot be used in submodules
|
||||
--> $DIR/allocator-submodule.rs:27:5
|
||||
--> $DIR/allocator-submodule.rs:25:5
|
||||
|
|
||||
LL | static MY_HEAP: MyAlloc = MyAlloc;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
@ -1,4 +1,3 @@
|
||||
#![feature(alloc)]
|
||||
#![allow(unused_extern_crates, non_camel_case_types)]
|
||||
|
||||
extern crate alloc;
|
||||
|
@ -1,5 +1,5 @@
|
||||
error[E0254]: the name `alloc` is defined multiple times
|
||||
--> $DIR/E0254.rs:12:5
|
||||
--> $DIR/E0254.rs:11:5
|
||||
|
|
||||
LL | extern crate alloc;
|
||||
| ------------------- previous import of the extern crate `alloc` here
|
||||
|
@ -1,4 +1,4 @@
|
||||
#![feature(alloc, rustc_private)]
|
||||
#![feature(rustc_private)]
|
||||
#![allow(unused_extern_crates)]
|
||||
|
||||
extern crate alloc;
|
||||
|
@ -1,4 +1,3 @@
|
||||
#![feature(alloc)]
|
||||
#![allow(unused_extern_crates)]
|
||||
|
||||
extern crate alloc;
|
||||
|
@ -1,5 +1,5 @@
|
||||
error[E0260]: the name `alloc` is defined multiple times
|
||||
--> $DIR/E0260.rs:6:1
|
||||
--> $DIR/E0260.rs:5:1
|
||||
|
|
||||
LL | extern crate alloc;
|
||||
| ------------------- previous import of the extern crate `alloc` here
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
#![no_std]
|
||||
#![crate_type = "staticlib"]
|
||||
#![feature(panic_handler, alloc_error_handler, alloc)]
|
||||
#![feature(panic_handler, alloc_error_handler)]
|
||||
|
||||
#[panic_handler]
|
||||
fn panic(_: &core::panic::PanicInfo) -> ! {
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
#![no_std]
|
||||
#![crate_type = "staticlib"]
|
||||
#![feature(panic_handler, alloc_error_handler, alloc)]
|
||||
#![feature(panic_handler, alloc_error_handler)]
|
||||
|
||||
#[panic_handler]
|
||||
fn panic(_: &core::panic::PanicInfo) -> ! {
|
||||
|
@ -1,4 +1,3 @@
|
||||
#![feature(alloc)]
|
||||
#![allow(unused_extern_crates)]
|
||||
|
||||
mod a {
|
||||
|
@ -1,17 +1,17 @@
|
||||
error[E0432]: unresolved import `alloc`
|
||||
--> $DIR/resolve_self_super_hint.rs:6:9
|
||||
--> $DIR/resolve_self_super_hint.rs:5:9
|
||||
|
|
||||
LL | use alloc::HashMap;
|
||||
| ^^^^^ help: a similar path exists: `self::alloc`
|
||||
|
||||
error[E0432]: unresolved import `alloc`
|
||||
--> $DIR/resolve_self_super_hint.rs:11:13
|
||||
--> $DIR/resolve_self_super_hint.rs:10:13
|
||||
|
|
||||
LL | use alloc::HashMap;
|
||||
| ^^^^^ help: a similar path exists: `super::alloc`
|
||||
|
||||
error[E0432]: unresolved import `alloc`
|
||||
--> $DIR/resolve_self_super_hint.rs:16:17
|
||||
--> $DIR/resolve_self_super_hint.rs:15:17
|
||||
|
|
||||
LL | use alloc::HashMap;
|
||||
| ^^^^^
|
||||
@ -20,7 +20,7 @@ LL | use alloc::HashMap;
|
||||
| help: a similar path exists: `a::alloc`
|
||||
|
||||
error[E0432]: unresolved import `alloc`
|
||||
--> $DIR/resolve_self_super_hint.rs:21:21
|
||||
--> $DIR/resolve_self_super_hint.rs:20:21
|
||||
|
|
||||
LL | use alloc::HashMap;
|
||||
| ^^^^^
|
||||
|
@ -4,7 +4,6 @@
|
||||
// aux-build:remove-extern-crate.rs
|
||||
// compile-flags:--extern remove_extern_crate
|
||||
|
||||
#![feature(alloc)]
|
||||
#![warn(rust_2018_idioms)]
|
||||
|
||||
|
||||
|
@ -4,7 +4,6 @@
|
||||
// aux-build:remove-extern-crate.rs
|
||||
// compile-flags:--extern remove_extern_crate
|
||||
|
||||
#![feature(alloc)]
|
||||
#![warn(rust_2018_idioms)]
|
||||
|
||||
extern crate core;
|
||||
|
@ -1,24 +1,24 @@
|
||||
warning: unused extern crate
|
||||
--> $DIR/remove-extern-crate.rs:10:1
|
||||
--> $DIR/remove-extern-crate.rs:9:1
|
||||
|
|
||||
LL | extern crate core;
|
||||
| ^^^^^^^^^^^^^^^^^^ help: remove it
|
||||
|
|
||||
note: lint level defined here
|
||||
--> $DIR/remove-extern-crate.rs:8:9
|
||||
--> $DIR/remove-extern-crate.rs:7:9
|
||||
|
|
||||
LL | #![warn(rust_2018_idioms)]
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
= note: #[warn(unused_extern_crates)] implied by #[warn(rust_2018_idioms)]
|
||||
|
||||
warning: `extern crate` is not idiomatic in the new edition
|
||||
--> $DIR/remove-extern-crate.rs:11:1
|
||||
--> $DIR/remove-extern-crate.rs:10:1
|
||||
|
|
||||
LL | extern crate core as another_name;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert it to a `use`
|
||||
|
||||
warning: `extern crate` is not idiomatic in the new edition
|
||||
--> $DIR/remove-extern-crate.rs:29:5
|
||||
--> $DIR/remove-extern-crate.rs:28:5
|
||||
|
|
||||
LL | extern crate core;
|
||||
| ^^^^^^^^^^^^^^^^^^ help: convert it to a `use`
|
||||
|
@ -1,7 +1,7 @@
|
||||
// edition:2018
|
||||
|
||||
#![deny(unused_extern_crates)]
|
||||
#![feature(alloc, test, rustc_private, crate_visibility_modifier)]
|
||||
#![feature(test, rustc_private, crate_visibility_modifier)]
|
||||
|
||||
extern crate libc;
|
||||
//~^ ERROR unused extern crate
|
||||
|
Loading…
Reference in New Issue
Block a user