Subteam report: lang 2015-08-07
Dashboard
The following RFCs are being promoted to final comment period:
- PR #886: Permit
#[must_use]attributes on functions as well as types. This allows for functions whose return value should not be ignored even if the type of that value is unexceptional (e.g., theok()method ofResult). - PR #890: Custom
preludes. This RFC proposes an extension that allows crates to
define their own preludes. This can be used to have common names
available throughout a crate without forcing them to be explicitly
imported everywhere. This is particularly useful when combined with
the convention of having external crates define a
pub mod preludethat downstream crates can import into their own local preludes. While clearly convenient, there were some concerns raised that this will give rise to multiple dialects of Rust. - PR #953: This defines
traits to support
+=and other operators, closing a gap in our operator overloading support. The traits take the LHS via an&mutreference to permit in-place updates, take the RHS by value, and do not require that theAddtrait also be implemented. - PR #1135: This PR
permits raw fat pointers (e.g.,
*[i32]or*Trait) to be compared, just like raw thin pointer (e.g.,*i32). The semantics are to compare both the pointer itself and any accompanying data (e.g., the length of the slice). - PR #1192: Adds
syntactic sugar for inclusive ranges using
.... The primary point of discussion has been whether the result of...syntax should be an iterator, like..; doing so requires an extra field. - PR #1189: This PR simply corrects typos.
The following two RFCs have been accepted:
- PR #1214: Clarify (and improve) rules for projections and well-formedness.
- PR #1219: Allow aliasing imports when importing as a group.
In addition, I would like to call attention to the following RFC:
- PR #1238: Nonparametric dropck. This RFC simplifies the dropck rules to close some soundness holes and make room for specialization. The change is expected to cause little to no breakage in practice, e.g., a crater run found no affected crates, but it nonetheless affects a core component of the language.
--- nmatsakis
RFC phase
- PR #197:
ManuallyDroptype gives precise control of dtors of inline data. - PR #243: Trait-based exception handling
- PR #638: Specify unwinding
- PR #733: Amend macro future proofing RFC
- PR #890: RFC: Custom preludes
- PR #953:
overloaded assignment operations
a += b - PR #1062: Constants that depend on type parameters in generic code
- PR #1129:
IndexAssign: overloading the
a[b] = cexpression - PR #1148: Mutually exclusive traits
- PR #1168:
Make
sizean associated constant - PR #1177: Anonymous/placeholder lifetime "'_".
- PR #1180:
Propose
Interior<T>data-type, to allow moves out of the dropped value during the drop hook. - PR #1189: 0401: misc improvements
- PR #1190: Style: function declarations
- PR #1192: RFC for inclusive ranges with ...
- PR #1196: RFC for allowing eliding more type parameters.
- PR #1199: SIMD groundwork
- PR #1210: RFC: impl specialization
- PR #1216:
Promote
!to a type. - PR #1224: Update the RFC process with sub-teams, amongst other things.
- PR #1228:
Place left arrow syntax (
place <- expr) - PR #1229: turn statically known erroneous code into a warning and an unconditional panic
- PR #1234: specify that CoerceUnsized should ignore PhantomData fields
- PR #1237: clarify extreme operator behaviour
- PR #1238: Nonparametric dropck
- PR #1240:
References into repr(packed) structs should be
unsafe. - FCP PR #886:
Allow
#[must_use]on functions, rather than just types. MarkResult::{ok,err}#[must_use]. - FCP PR #1135: Implement raw fat pointer comparisons
- FCP PR #1209:
Update FOLLOW set for
tytokens - FCP PR #1214: [RFC] Clarify (and improve) rules for projections and well-formedness
- FCP PR #1219: use_group_as RFC
Implementation phase
High priority issues
- Issue #24622: Mismatched assumptions for interaction between associated type and lifetime in trait
- Issue #25658:
In macros,
$($x:expr),*fragments can be used to bypass future-proofing restrictions - Issue #25860: Implied bounds on nested references + variance = soundness hole
- Issue #26739: In macros, expr followed by { is buggy
- Issue #26775: 'pub extern crate' is accepted and behaves badly
- Issue #26813: Regression on beta for trait bounds on supertrait's associated items
- Issue #27060: repr(packed) allows invalid unaligned loads
Needs decision
- Issue #27499:
Use different numbers of
#s when expanding documentation comments