## Summary Temporaries live for the enclosing block when found in a let-binding. This only holds when the reference to the temporary is taken directly. This logic should be extended to extend the cleanup scope of any temporary whose lifetim...
## Summary The rules about the places `mod foo;` can be used are tightened to only permit its use in a crate root and in `mod.rs` files, to ensure a more sane correspondence between module structure and file system hierarchy. Most notably,...
## Summary `StrBuf` should be renamed to `String`. ## Motivation Since `StrBuf` is so common, it would benefit from a more traditional name. ## Drawbacks It may be that `StrBuf` is a better name because it mirrors Java `StringBuilder` or C#...
## Summary The tilde (`~`) operator and type construction do not support allocators and therefore should be removed in favor of the `box` keyword and a language item for the type. ## Motivation * There will be a unique pointer type in the s...
## Summary Asserts are too expensive for release builds and mess up inlining. There must be a way to turn them off. I propose macros `debug_assert!` and `assert!`. For test cases, `assert!` should be used. ## Motivation Asserts are too expe...
## Summary Add a `regexp` crate to the Rust distribution in addition to a small `regexp_macros` crate that provides a syntax extension for compiling regular expressions during the compilation of a Rust program. The implementation that suppo...
## Summary Split the current libstd into component libraries, rebuild libstd as a facade in front of these component libraries. ## Motivation Rust as a language is ideal for usage in constrained contexts such as embedding in applications, r...
## Summary Check all types for well-formedness with respect to the bounds of type variables. Allow bounds on formal type variable in structs and enums. Check these bounds are satisfied wherever the struct or enum is used with actual type pa...
## Summary This RFC is a proposal to remove the usage of the keyword `priv` from the Rust language. ## Motivation By removing `priv` entirely from the language, it significantly simplifies the privacy semantics as well as the ability to exp...
## Summary Allow attributes on match arms. ## Motivation One sometimes wishes to annotate the arms of match statements with attributes, for example with conditional compilation `#[cfg]`s or with branch weights (the latter is the most import...
## Summary Allow attributes on more places inside functions, such as statements, blocks and expressions. ## Motivation One sometimes wishes to annotate things inside functions with, for example, lint `#[allow]`s, conditional compilation `#[...
## Summary This RFC describes a variety of extensions to allow any method to be used as first-class functions. The same extensions also allow for trait methods without receivers to be invoked in a more natural fashion. First, at present, th...
## Summary The way our intrinsics work forces them to be wrapped in order to behave like normal functions. As a result, rustc is forced to inline a great number of tiny intrinsic wrappers, which is bad for both compile-time performance and...
## Summary The "RFC" (request for comments) process is intended to provide a consistent and controlled path for new features to enter the language and standard libraries, so that all stakeholders can be confident about the direction the lan...
## Summary This is an RFC to make all struct fields private by default. This includes both tuple structs and structural structs. ## Motivation Reasons for default private visibility * Visibility is often how soundness is achieved for many t...
## History 2015.09.18 -- This RFC was partially superseded by [RFC 1238], which removed the parametricity-based reasoning in favor of an attribute. [RFC 1238]: https://github.com/rust-lang/rfcs/blob/master/text/1238-nonparametric-dropck.md...
## Summary Rust currently has an attribute usage lint but it does not work particularly well. This RFC proposes a new implementation strategy that should make it significantly more useful. ## Motivation The current implementation has two ma...