## Summary [summary]: #summary Allow the `?` operator to be used in `main`, and in `#[test]` functions and doctests. To make this possible, the return type of these functions are generalized from `()` to a new trait, provisionally called `T...
## Summary [summary]: #summary Allow for local variables, function arguments, and some expressions to have an unsized type, and implement it by storing the temporaries in variably-sized allocas. Have repeat expressions with a length that ca...
## Summary [summary]: #summary Deprecate `mem::uninitialized::<T>` and `mem::zeroed::<T>` and replace them with a `MaybeUninit<T>` type for safer and more principled handling of uninitialized data. ## Motivation [motivation]: #motivation Th...
## Summary [summary]: #summary Overhaul the global allocator APIs to put them on a path to stabilization, and switch the default allocator to the system allocator when the feature stabilizes. This RFC is a refinement of the previous [RFC 11...
## Summary [summary]: #summary Add an unstable sort to libcore. ## Motivation [motivation]: #motivation At the moment, the only sort function we have in libstd is `slice::sort`. It is stable, allocates additional memory, and is unavailable...
## Summary [summary]: #summary Improve the `assert_eq` failure message formatting to increase legibility. [Previous RFC issue](https://github.com/rust-lang/rfcs/issues/1864). ## Motivation [motivation]: #motivation Currently when `assert_eq...
## Summary [summary]: #summary This RFC proposes the addition of two macros to the global prelude, `eprint!` and `eprintln!`. These are exactly the same as `print!` and `println!`, respectively, except that they write to standard error inst...
## Summary [summary]: #summary Include the `ManuallyDrop` wrapper in `core::mem`. ## Motivation [motivation]: #motivation Currently Rust does not specify the order in which the destructors are run. Furthermore, this order differs depending...
## Summary [summary]: #summary I propose we specify and stabilize drop order in Rust, instead of treating it as an implementation detail. The stable drop order should be based on the current implementation. This results in avoiding breakage...
## Summary [summary]: #summary Introduce a trait `Try` for customizing the behavior of the `?` operator when applied to types other than `Result`. ## Motivation [motivation]: #motivation ### Using `?` with types other than `Result` The `?`...
## Summary [summary]: #summary Add an `extern type` syntax for declaring types which are opaque to Rust's type system. ## Motivation [motivation]: #motivation When interacting with external libraries we often need to be able to handle point...
## Summary [summary]: #summary Tuple `struct`s can now be constructed and pattern matched with `Self(v1, v2, ..)`. A simple example: ```rust struct TheAnswer(usize); impl Default for TheAnswer { fn default() -> Self { Self(42) } } ``` Simil...
## Summary [summary]: #summary This RFC proposes the addition of `Option::replace` to complete the `Option::take` method, it replaces the actual value in the option by `Some` with the value given in parameter, returning the old value if pre...
## UPDATE The lang team ultimately [decided to retract this RFC][retraction]. It was never implemented. The motivation for retraction was that the change was too prone to mis-use and did not provide adequate benefit. [retraction]: https://g...
## Summary [summary]: #summary This is an RFC to add the APIs: `From<&[T]> for Rc<[T]>` where [`T: Clone`][Clone] or [`T: Copy`][Copy] as well as `From<&str> for Rc<str>`. In addition: `From<Vec<T>> for Rc<[T]>` and `From<Box<T: ?Sized>> fo...
## Summary [summary]: #summary Create a "Rust Bookshelf" of learning resources for Rust. * Pull the book out of tree into `rust-lang/book`, which holds the second edition, currently. * Pull the nomicon and the reference out of tree and conv...
## Summary [summary]: #summary Change doc.rust-lang.org to redirect to the latest release instead of an alias of stable. Introduce a banner that contains a dropdown allowing users to switch between versions, noting when a release is not the...
## Summary [summary]: #summary Crates.io has many useful libraries for a variety of purposes, but it's difficult to find which crates are meant for a particular purpose and then to decide among the available crates which one is most suitabl...
## Summary [summary]: #summary There has long been a desire to expand the number of platform- and architecture-specific APIs in the standard library, and to offer subsets of the standard library for working in constrained environments. At t...
## Summary [summary]: #summary - Change `Cell<T>` to allow `T: ?Sized`. - Guarantee that `T` and `Cell<T>` have the same memory layout. - Enable the following conversions through the std lib: - `&mut T -> &Cell<T> where T: ?Sized` - `&Cell<...