github.com
## Summary Allow inherent implementations on types outside of the module they are defined in, effectively reverting [RFC PR 155](https://github.com/rust-lang/rfcs/pull/155). ## Motivation The main motivation for disallowing such `impl` bodi...
RFC 735
RFC
2015-02-19
~2 min read
github.com
## Summary Add intrinsics for single-threaded memory fences. ## Motivation Rust currently supports memory barriers through a set of intrinsics, `atomic_fence` and its variants, which generate machine instructions and are suitable as cross-p...
RFC 888
RFC
2015-02-19
~1 min read
github.com
## Summary Support the `#[must_use]` attribute on arbitrary functions, to make the compiler lint when a call to such a function is ignored. Mark `PartialEq::{eq, ne}` `#[must_use]` as well as `PartialOrd::{lt, gt, le, ge}`. ## Motivation Th...
RFC 1940
RFC
2015-02-18
~3 min read
github.com
## Summary Stabilize all string functions working with search patterns around a new generic API that provides a unified way to define and use those patterns. ## Motivation Right now, string slices define a couple of methods for string manip...
RFC 528
RFC
2015-02-17
~16 min read
github.com
## Summary Pare back the `std::hash` module's API to improve ergonomics of usage and definitions. While an alternative scheme more in line with what Java and C++ have is considered, the current `std::hash` module will remain largely as-is w...
RFC 823
RFC
2015-02-17
~12 min read
github.com
## Summary Lex binary and octal literals as if they were decimal. ## Motivation Lexing all digits (even ones not valid in the given base) allows for improved error messages & future proofing (this is more conservative than the current appro...
RFC 879
RFC
2015-02-17
~2 min read
github.com
## Summary Allow macros in type positions ## Motivation Macros are currently allowed in syntax fragments for expressions, items, and patterns, but not for types. This RFC proposes to lift that restriction. 1. This would allow macros to be u...
RFC 873
RFC
2015-02-16
~5 min read
github.com
## Summary Allow renaming imports when importing a group of symbols from a module. ```rust use std::io::{ Error as IoError, Result as IoResult, Read, Write } ``` ## Motivation The current design requires the above example to be written like...
RFC 1219
RFC
2015-02-15
~1 min read
github.com
## Summary Make all collections `impl<'a, T: Copy> Extend<&'a T>`. This enables both `vec.extend(&[1, 2, 3])`, and `vec.extend(&hash_set_of_ints)`. This partially covers the usecase of the awkward `Vec::push_all` with literally no ergonomic...
RFC 839
RFC
2015-02-13
~2 min read
github.com
## Summary Remove panics from `CString::from_slice` and `CString::from_vec`, making these functions return `Result` instead. ## Motivation > As I shivered and brooded on the casting of that brain-blasting shadow, > I knew that I had at last...
RFC 840
RFC
2015-02-13
~2 min read
github.com
## Summary Add a default lifetime bound for object types, so that it is no longer necessary to write things like `Box<Trait+'static>` or `&'a (Trait+'a)`. The default will be based on the context in which the object type appears. Typically,...
RFC 599
RFC
2015-02-12
~11 min read
github.com
## Summary Add back the functionality of `Vec::from_elem` by improving the `vec![x; n]` sugar to work with Clone `x` and runtime `n`. ## Motivation High demand, mostly. There are currently a few ways to achieve the behaviour of `Vec::from_e...
RFC 832
RFC
2015-02-11
~2 min read
github.com
## Summary [summary]: #summary The current compiler implements a more expansive semantics for pattern matching than was originally intended. This RFC introduces several mechanisms to reign in these semantics without actually breaking (much,...
RFC 1445
RFC
2015-02-06
~17 min read
github.com
## Summary Rust currently includes feature-gated support for type parameters that specify a default value. This feature is not well-specified. The aim of this RFC is to fully specify the behavior of defaulted type parameters: 1. Type parame...
RFC 213
RFC
2015-02-04
~18 min read
github.com
## This RFC was previously approved, but later **withdrawn** For details see the [summary comment]. [summary comment]: https://github.com/rust-lang/rust/issues/27779#issuecomment-378416911 ## Summary * Change placement-new syntax from: `box...
RFC 809
RFC
2015-02-04
~20 min read
github.com
## Summary Add type ascription to expressions. (An earlier version of this RFC covered type ascription in patterns too, that has been postponed). Type ascription on expression has already been implemented. See also discussion on [#354](http...
RFC 803
RFC
2015-02-03
~6 min read
github.com
## Summary Add a `once` function to `std::iter` to construct an iterator yielding a given value one time, and an `empty` function to construct an iterator yielding no values. ## Motivation This is a common task when working with iterators....
RFC 771
RFC
2015-01-30
~1 min read
github.com
## Summary Change Functional Record Update (FRU) for struct literal expressions to respect struct privacy. ## Motivation Functional Record Update is the name for the idiom by which one can write `..<expr>` at the end of a struct literal exp...
RFC 736
RFC
2015-01-26
~8 min read
github.com
## Summary The `Fn` traits should be modified to make the return type an associated type. ## Motivation The strongest reason is because it would permit impls like the following (example from @alexcrichton): ```rust impl<R,F> Foo for F : FnM...
RFC 587
RFC
2015-01-22
~3 min read
github.com
## Summary Add a new intrinsic, `discriminant_value` that extracts the value of the discriminant for enum types. ## Motivation Many operations that work with discriminant values can be significantly improved with the ability to extract the...
RFC 639
RFC
2015-01-21
~4 min read