Subteam report: lang 2016-01-15
Highlights
Three RFCs went into final comment period this week:
- RFC 243,
which adds a
?operator that is roughly equivalent to the existingtry!macro, except that it operates in suffix position. The scope of the?operator can be controlled using atry { ... }block and there is also sugar for handling errorstry { .. } catch { .. }. This RFC has been around since before 1.0, and has seen quite a lot of discussion. (Note that thetryandcatchkeywords are likely to change, given the overlap with the existingtry!macro. - RFC 1320 which modifies
the
RangeInclusivetype from a struct to an enum. - RFC 1462, which adds the open brace character to the follow set for type fragments. This macro is taking a "fast path" to FCP due to the time-sensitive nature of its contents -- it is intended to mitigate the effects of a recent bugfix.
We are seeking feedback on
the name and syntax for so-called OIBIT traits,
such as Send and Sync.
Finally, we've decided to accept RFC 1331, which spells out a procedure for making an official Rust grammar that is independent from the implementation.
Thanks!
--nmatsakis
Dashboard
RFC phase
- PR #197:
ManuallyDroptype gives precise control of dtors of inline data. - PR #938:
RFC: The
{:?}format specifier should not print values in release builds - PR #1062: Constants that depend on type parameters in generic code
- PR #1148: Mutually exclusive traits
- 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 #1201: Add support for naked functions.
- PR #1210: RFC: impl specialization
- PR #1248: Safe intrinsics RFC
- PR #1258: Add macros to get the values of configuration flags
- PR #1303:
Add a
let...elseexpression, similar to Swift'sguard let...else - PR #1305: Abstract output type parameters
- PR #1319: Amend RFC1228 with operator fixity and precedence
- PR #1321: Unstable visibility RFC
- PR #1327: Dropck Eyepatch RFC.
- PR #1346: Unsafe expressions
- PR #1358: RFC: Add #[repr(align = "N")]
- PR #1373: Remove some kinds of doc comments
- PR #1379: Change thread local variables to only accept async-signal-safe types.
- PR #1398: Allocators, take III
- PR #1399: RFC: Add #[repr(pack = "N")]
- PR #1406: Rfc: delegation of implementation
- PR #1408: Delayed resolution
- PR #1410:
Add a
noaliaslanguage item - PR #1414: Add Rvalue-static-promotion RFC
- PR #1422: pub(restricted) item
- PR #1426: Placement in/box refinement
- PR #1429: Feature gate extern fn methods
- PR #1431: Statically dispatched methods for trait objects with associated data
- PR #1437: ESC byte escape
- PR #1440: RFC - Allow Drop types in statics/const functions
- PR #1444:
RFC: native C-compatible unions via
untagged_union - PR #1445: Restrict constants in patterns
- PR #1449: Add language support for bitfields
- PR #1450: Types for enum variants
- PR #1459: Add a used attribute
- FCP PR #243: Trait-based exception handling
- FCP PR #1129:
IndexAssign: overloading the
a[b] = cexpression - FCP PR #1196: RFC for allowing eliding more type parameters.
- FCP PR #1296:
RFC: Add an
aliasattribute to #[link] and -l - FCP PR #1320: Amend 1192 (RangeInclusive) to use an enum.
- FCP PR #1331: src/grammar for the canonical grammar of the Rust language
- FCP PR #1462:
Add
[to the FOLLOW(ty) in macro future-proofing rules.
Implementation phase
- Issue #13231: opt-in built-in bounds traits RFC tracker
- Issue #15552: Implement lifetime elision
- Issue #16293: Implement UFCS (Tracking RFC 132)
- Issue #17307: Implement associated items
- Issue #18469: Implement revised coercion rules
- Issue #21939: Tracking issue for Finalize defaulted type parameters (RFC 213)
- Issue #22020: Tracking issue for Integer Overflow (RFC 560)
- Issue #22181:
boxandinexpressions (tracking issue for RFC 809) - Issue #23416: Type ascription (tracking issue for RFC 803)
- Issue #24263: discriminant_value intrinsic -- tracking issue for 639
- Issue #27060: repr(packed) allows invalid unaligned loads
- Issue #27336: Tracking Issue for RFC 213: Default Type Parameter Fallback
High priority issues
- Issue #22889:
Duplicate inherent static methods can be defined in separate
implblocks - Issue #25860: Implied bounds on nested references + variance = soundness hole
- Issue #26775:
extern crateis always treated aspubwithin the crate, but is not visible outside it;pub extern cratemakes no difference - Issue #28514: Private trait's methods reachable through a public subtrait
- Issue #29149: Lifetime bounds in Copy impls are ignored
- Issue #29859: Cyclic traits allow arbitrary traits to be synthesized
- Issue #30127: Desugared x.index(y) is not equivalent to x[y]
- Issue #30346: Re-add raw_pointer_derive lint as a no-op
Needs decision
- Issue #21232: borrow-checker allows partial reinit of struct that has been moved away, but no use of it.
- Issue #23818:
print!macro should flush stdout