## Summary This RFC proposes a number of design improvements to the `cmp` and `ops` modules in preparation for 1.0. The impetus for these improvements, besides the need for stabilization, is that we've added several important language featu...
## Summary This conventions RFC tweaks and finalizes a few long-running de facto conventions, including capitalization/underscores, and the role of the `unwrap` method. See [this RFC](https://github.com/rust-lang/rfcs/pull/328) for a compet...
## Summary When the compiler generates a dynamic library, alter the default behavior to favor linking all dependencies statically rather than maximizing the number of dynamic libraries. This behavior can be disabled with the existing `-C pr...
## Summary Overhaul the `build` command internally and establish a number of conventions around build commands to facilitate linking native code to Cargo packages. 1. Instead of having the `build` command be some form of script, it will be...
## Summary Describe the various kinds of type conversions available in Rust and suggest some tweaks. Provide a mechanism for smart pointers to be part of the DST coercion system. Reform coercions from functions to closures. The `transmute`...
## Summary This is a *conventions* RFC for formalizing the basic conventions around error handling in Rust libraries. The high-level overview is: * For *catastrophic errors*, abort the process or fail the task depending on whether any recov...
## Summary This is a combined *conventions* and *library stabilization* RFC. The goal is to establish a set of naming and signature conventions for `std::collections`. The major components of the RFC include: * Removing most of the traits i...
## Summary This RFC describes changes to the Rust release process, primarily the division of Rust's time-based releases into 'release channels', following the 'release train' model used by e.g. Firefox and Chrome; as well as 'feature stagin...
## Summary Just like structs, variants can come in three forms - unit-like, tuple-like, or struct-like: ```rust enum Foo { Foo, Bar(int, String), Baz { a: int, b: String } } ``` The last form is currently feature gated. This RFC proposes to...
# Module system cleanups - Start Date: 2014-10-10 - RFC PR: [rust-lang/rfcs#385](https://github.com/rust-lang/rfcs/pull/385) - Rust Issue: [rust-lang/rust#18219](https://github.com/rust-lang/rust/issues/18219) ## Summary - Lift the hard ord...
## Summary This is a conventions RFC that proposes that the items exported from a module should *never* be prefixed with that module name. For example, we should have `io::Error`, not `io::IoError`. (An alternative design is included that s...
## Summary This is a conventions RFC for settling a number of remaining naming conventions: * Referring to types in method names * Iterator type names * Additional iterator method names * Getter/setter APIs * Associated types * Trait naming...
## Summary * Remove reflection from the compiler * Remove `libdebug` * Remove the `Poly` format trait as well as the `:?` format specifier ## Motivation In ancient Rust, one of the primary methods of printing a value was via the `%?` format...
## Summary - Add the ability to have trait bounds that are polymorphic over lifetimes. ## Motivation Currently, closure types can be polymorphic over lifetimes. But closure types are deprecated in favor of traits and object types as part of...
## Summary Parse macro invocations with parentheses or square brackets as expressions no matter the context, and require curly braces or a semicolon following the invocation to invoke a macro as a statement. ## Motivation Currently, macros...
## Summary Reserve `abstract`, `final`, and `override` as possible keywords. ## Motivation We intend to add some mechanism to Rust to support more efficient inheritance (see, e.g., RFC PRs #245 and #250, and this [thread](http://discuss.rus...
## Summary This is a *conventions RFC* for settling the location of `unsafe` APIs relative to the types they work with, as well as the use of `raw` submodules. The brief summary is: * Unsafe APIs should be made into methods or static functi...
## Summary Removes the "virtual struct" (aka struct inheritance) feature, which is currently feature gated. ## Motivation Virtual structs were added experimentally prior to the RFC process as a way of inheriting fields from one struct when...
## Summary Add `where` clauses, which provide a more expressive means of specifying trait parameter bounds. A `where` clause comes after a declaration of a generic item (e.g., an impl or struct definition) and specifies a list of bounds tha...
## Summary Change the types of byte string literals to be references to statically sized types. Ensure the same change can be performed backward compatibly for string literals in the future. ## Motivation Currently byte string and string li...