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