github.com
## Summary Change pattern matching on an `&mut T` to `&mut <pat>`, away from its current `&<pat>` syntax. ## Motivation Pattern matching mirrors construction for almost all types, *except* `&mut`, which is constructed with `&mut <expr>` but...
RFC 179
RFC
2015-01-04
~2 min read
github.com
## Summary 1. Remove the `Sized` default for the implicitly declared `Self` parameter on traits. 2. Make it "object unsafe" for a trait to inherit from `Sized`. ## Motivation The primary motivation is to enable a trait object `SomeTrait` to...
RFC 546
RFC
2015-01-03
~3 min read
github.com
## Summary * Remove the `std::c_vec` module * Move `std::c_str` under a new `std::ffi` module, not exporting the `c_str` module. * Focus `CString` on *Rust-owned* bytes, providing a static assertion that a pile of bytes has no interior nuls...
RFC 494
RFC
2015-01-02
~7 min read
github.com
## Summary Rename the `#[deriving(Foo)]` syntax extension to `#[derive(Foo)]`. ## Motivation Unlike our other verb-based attribute names, "deriving" stands alone as a present participle. By convention our attributes prefer "warn" rather tha...
RFC 534
RFC
2014-12-31
~1 min read
github.com
## Summary Statically enforce that the `std::fmt` module can only create valid UTF-8 data by removing the arbitrary `write` method in favor of a `write_str` method. ## Motivation Today it is conventionally true that the output from macros l...
RFC 526
RFC
2014-12-30
~3 min read
github.com
## Summary This RFC proposes that we rename the pointer-sized integer types `int/uint`, so as to avoid misconceptions and misuses. After extensive community discussions and several revisions of this RFC, the finally chosen names are `isize/...
RFC 544
RFC
2014-12-28
~12 min read
github.com
## Summary Future-proof the allowed forms that input to an MBE can take by requiring certain delimiters following NTs in a matcher. In the future, it will be possible to lift these restrictions backwards compatibly if desired. ## Key Termin...
RFC 550
RFC
2014-12-21
~21 min read
github.com
## Summary Stabilize the `std::prelude` module by removing some of the less commonly used functionality of it. ## Motivation The prelude of the standard library is included into all Rust programs by default, and is consequently quite an imp...
RFC 503
RFC
2014-12-20
~12 min read
github.com
## Summary Today's `Show` trait will be tasked with the purpose of providing the ability to inspect the representation of implementors of the trait. A new trait, `String`, will be introduced to the `std::fmt` module to in order to represent...
RFC 504
RFC
2014-12-19
~7 min read
github.com
## Summary This RFC proposes the `mod` keyword used to refer the immediate parent namespace in `use` items (`use a::b::{mod, c}`) to be changed to `self`. ## Motivation While this looks fine: ````rust use a::b::{mod, c}; pub mod a { pub mod...
RFC 532
RFC
2014-12-19
~1 min read
github.com
## Summary In order to prepare for an expected future implementation of [non-zeroing dynamic drop], remove support for: * moving individual elements into an *uninitialized* fixed-sized array, and * moving individual elements out of fixed-si...
RFC 533
RFC
2014-12-19
~2 min read
github.com
## Summary - Use inference to determine the *variance* of input type parameters. - Make it an error to have unconstrained type/lifetime parameters. - Revamp the variance markers to make them more intuitive and less numerous. In fact, there...
RFC 738
RFC
2014-12-19
~17 min read
github.com
## Summary This RFC shores up the finer details of collections reform. In particular, where the [previous RFC][part1] focused on general conventions and patterns, this RFC focuses on specific APIs. It also patches up any errors that were fo...
RFC 509
RFC
2014-12-18
~11 min read
github.com
## Summary According to current documents, the RFC process is required to make "substantial" changes to the Rust distribution. It is currently lightweight, but lacks a definition for the Rust distribution. This RFC aims to amend the process...
RFC 531
RFC
2014-12-18
~1 min read
github.com
## Summary Under this RFC, the syntax to specify the type of a fixed-length array containing `N` elements of type `T` would be changed to `[T; N]`. Similarly, the syntax to construct an array containing `N` duplicated elements of value `x`...
RFC 520
RFC
2014-12-13
~5 min read
github.com
## Summary Allow `Self` type to be used in impls. ## Motivation Allows macros which operate on methods to do more, more easily without having to rebuild the concrete self type. Macros could use the literal self type like programmers do, but...
RFC 522
RFC
2014-12-13
~1 min read
github.com
## Note This RFC has been amended by [RFC 1574], which contains [a combined version of the conventions][combined]. [RFC 1574]: https://github.com/rust-lang/rfcs/blob/master/text/1574-more-api-documentation-conventions.md [combined]: https:/...
RFC 505
RFC
2014-12-08
~2 min read
github.com
## Summary [Summary]: #summary This RFC proposes a significant redesign of the `std::io` and `std::os` modules in preparation for API stabilization. The specific problems addressed by the redesign are given in the [Problems] section below,...
RFC 517
RFC
2014-12-07
~52 min read
github.com
## Summary Make name and behavior of the `#![no_std]` and `#![no_implicit_prelude]` attributes consistent by renaming the latter to `#![no_prelude]` and having it only apply to the current module. ## Motivation Currently, Rust automatically...
RFC 501
RFC
2014-12-06
~2 min read
github.com
## Summary Change array/slice patterns in the following ways: - Make them only match on arrays (`[T; n]` and `[T]`), not slices; - Make subslice matching yield a value of type `[T; n]` or `[T]`, not `&[T]` or `&mut [T]`; - Allow multiple mu...
RFC 495
RFC
2014-12-03
~3 min read