Rollup merge of #59675 - SimonSapin:stable-alloc, r=alexcrichton

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:
Mazdak Farrokhzad 2019-04-14 00:23:25 +02:00 committed by GitHub
commit bdb264ff5f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
28 changed files with 25 additions and 43 deletions

View file

@ -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):

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -3,9 +3,6 @@
// Make sure the destructor is run for unit-like structs.
#![feature(alloc)]
use std::thread;
struct Foo;

View file

@ -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::{

View file

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

View file

@ -1,4 +1,3 @@
#![feature(alloc)]
#![allow(unused_extern_crates, non_camel_case_types)]
extern crate alloc;

View file

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

View file

@ -1,4 +1,4 @@
#![feature(alloc, rustc_private)]
#![feature(rustc_private)]
#![allow(unused_extern_crates)]
extern crate alloc;

View file

@ -1,4 +1,3 @@
#![feature(alloc)]
#![allow(unused_extern_crates)]
extern crate alloc;

View file

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

View file

@ -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) -> ! {

View file

@ -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) -> ! {

View file

@ -1,4 +1,3 @@
#![feature(alloc)]
#![allow(unused_extern_crates)]
mod a {

View file

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

View file

@ -4,7 +4,6 @@
// aux-build:remove-extern-crate.rs
// compile-flags:--extern remove_extern_crate
#![feature(alloc)]
#![warn(rust_2018_idioms)]

View file

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

View file

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

View file

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