github.com
## 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...
RFC 387
RFC
2014-10-10
~7 min read
github.com
## 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...
RFC 378
RFC
2014-10-09
~2 min read
github.com
## 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...
RFC 240
RFC
2014-10-07
~5 min read
github.com
## 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...
RFC 342
RFC
2014-10-07
~1 min read
github.com
## 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...
RFC 135
RFC
2014-09-30
~12 min read
github.com
## 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...
RFC 341
RFC
2014-09-30
~1 min read
github.com
## 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...
RFC 339
RFC
2014-09-29
~7 min read
github.com
## Summary Include identifiers immediately after literals in the literal token to allow future expansion, e.g. `"foo"bar` and a `1baz` are considered whole (but semantically invalid) tokens, rather than two separate tokens `"foo"`, `bar` an...
RFC 463
RFC
2014-09-28
~3 min read
github.com
## Summary In string literal contexts, restrict `\xXX` escape sequences to just the range of ASCII characters, `\x00` -- `\x7F`. `\xXX` inputs in string literals with higher numbers are rejected (with an error message suggesting that one us...
RFC 326
RFC
2014-09-26
~6 min read
github.com
## Summary Remove drop flags from values implementing `Drop`, and remove automatic memory zeroing associated with dropping values. Keep dynamic drop semantics, by having each function maintain a (potentially empty) set of auto-injected bool...
RFC 320
RFC
2014-09-24
~19 min read
github.com
## Summary Rename "task failure" to "task panic", and `fail!` to `panic!`. ## Motivation The current terminology of "task failure" often causes problems when writing or speaking about code. You often want to talk about the possibility of an...
RFC 221
RFC
2014-09-23
~1 min read
github.com
## Summary Restrict which traits can be used to make trait objects. Currently, we allow any traits to be used for trait objects, but restrict the methods which can be called on such objects. Here, we propose instead restricting which traits...
RFC 255
RFC
2014-09-22
~6 min read
github.com
## Summary Remove the reference-counting based `Gc<T>` type from the standard library and its associated support infrastructure from `rustc`. Doing so lays a cleaner foundation upon which to prototype a proper tracing GC, and will avoid peo...
RFC 256
RFC
2014-09-19
~6 min read
github.com
## Summary The high-level idea is to add language features that simultaneously achieve three goals: 1. move `Send` and `Share` out of the language entirely and into the standard library, providing mechanisms for end users to easily implemen...
RFC 19
RFC
2014-09-18
~19 min read
github.com
## Summary This RFC proposes to remove the *runtime system* that is currently part of the standard library, which currently allows the standard library to support both native and green threading. In particular: * The `libgreen` crate and as...
RFC 230
RFC
2014-09-16
~11 min read
github.com
## Summary Make enum variants part of both the type and value namespaces. ## Motivation We might, post-1.0, want to allow using enum variants as types. This would be backwards incompatible, because if a module already has a value with the s...
RFC 234
RFC
2014-09-16
~1 min read
github.com
## Summary Add the following coercions: * From `&T` to `&U` when `T: Deref<U>`. * From `&mut T` to `&U` when `T: Deref<U>`. * From `&mut T` to `&mut U` when `T: DerefMut<U>` These coercions eliminate the need for "cross-borrowing" (things l...
RFC 241
RFC
2014-09-16
~7 min read
github.com
## Summary Add syntactic sugar for working with the `Result` type which models common exception handling constructs. The new constructs are: * An `?` operator for explicitly propagating "exceptions". * A `catch { ... }` expression for conve...
RFC 243
RFC
2014-09-16
~20 min read
github.com
## Summary This RFC is preparation for API stabilization for the `std::num` module. The proposal is to finish the simplification efforts started in [@bjz's reversal of the numerics hierarchy](https://github.com/rust-lang/rust/issues/10387)....
RFC 369
RFC
2014-09-16
~10 min read
github.com
## Summary This RFC adds *overloaded slice notation*: - `foo[]` for `foo.as_slice()` - `foo[n..m]` for `foo.slice(n, m)` - `foo[n..]` for `foo.slice_from(n)` - `foo[..m]` for `foo.slice_to(m)` - `mut` variants of all the above via two new t...
RFC 198
RFC
2014-09-11
~6 min read