Subteam report: lang 2016-05-02
Highlights
In this week's meeting, we promoted two RFCs to FCP:
- RFC 1492 proposes to permit
..notation in patterns as a more general replacement to_, so that one can write a pattern likeFoo(x, ..)instead ofFoo(x, _, _, _). - RFC 1592 is a small amendment that corrects an oversight in the
original well-formedness RFC, by making tuples require that all
elements except for the last element be
Sized(just as structs do).
In addition, [RFC 1358][] remains in FCP for another week as we discuss the precise interaction between custom alignment and packed structs. It seems that there is a difference in behavior between MSVC and GNU and it's not entirely clear which behavior to adopt.
-- nmatsakis
Dashboard
RFC phase
- Issue #1593:
RFC 401 should account for
Derefcoercions - PR #1180:
Propose
Interior<T>data-type, to allow moves out of the dropped value during the drop hook. - PR #1248: Safe intrinsics RFC
- PR #1296:
RFC: Add an
aliasattribute to #[link] and -l - PR #1305: Abstract output type parameters
- PR #1327: Dropck Eyepatch RFC.
- PR #1379: Change thread local variables to only accept async-signal-safe types.
- PR #1406: Rfc: delegation of implementation
- PR #1408: Delayed resolution
- PR #1414: Add Rvalue-static-promotion RFC
- PR #1426: Placement in/box refinement
- PR #1431: Statically dispatched methods for trait objects with associated data
- PR #1449: Add language support for bitfields
- PR #1450: Types for enum variants
- PR #1459: Add a used attribute
- PR #1477: Generic atomic v2
- PR #1478: translate undefined intrinsics to an unreachable and a lint
- PR #1492:
RFC:
..in patterns - PR #1504: Add support for 128-bit integers
- PR #1506: Clarify the relationships between various kinds of structs and variants
- PR #1517: RFC: Exclude macros from importing with #[macro_use(not(...))]
- PR #1522:
Minimal
impl Trait - PR #1524: Custom Dynamically Sized Types for Rust
- PR #1546: Allow fields in traits that map to lvalues in impl'ing type
- PR #1548: Add global_asm! for module-level inline assembly
- PR #1558: RFC: Allow coercing non-capturing closures to function pointers.
- PR #1559: RFC: Allow all literals in attributes
- PR #1560: Changes to name resolution
- PR #1561: Macro naming and modularisation
- PR #1563: Add #![cfg_assert]
- PR #1566: Procedural macros
- PR #1575:
Add a
vismatcher tomacro_rules!. - PR #1576:
Add a
literalfragment specifier tomacro_rules!. - PR #1578: RFC for a Rust Memory Model
- PR #1583: Add parse_generics! and parse_where! macros
- PR #1584: Macros by example 2.0 (macro!)
- PR #1590:
Add a
lifetimespecifier tomacro_rules! - PR #1598: Associated type constructors (a form of higher-kinded polymorphism).
- PR #1599: Update the alternative section for #1268
- PR #1600: Amend #1268 with a more feasible proposal post-specialization
- PR #1603:
Introduce
dynkeyword - FCP PR #1358: RFC: Add #[repr(align = "N")]
- FCP PR #1521: Copy clone semantics
- FCP PR #1592: all but the last field of a tuple must be Sized
Implementation phase
- Issue #13231: opt-in built-in bounds traits RFC tracker
- Issue #15701: Add attributes to expressions, etc.
- Issue #18469: Implement revised coercion rules
- Issue #22181:
boxandinexpressions (tracking issue for RFC 809) - Issue #27060: repr(packed) allows invalid unaligned loads
- Issue #27336: Tracking Issue for RFC 213: Default Type Parameter Fallback
- Issue #31434: Restrict use of constants in patterns (RFC 1445)
- Issue #31436:
?operator andcatchexpressions (RFC 243) - Issue #31844: Tracking issue for specialization (RFC 1210)
- Issue #32409:
Tracking issue for
pub(restricted)privacy (RFC #1422) - Issue #32836: Untagged unions (tracking issue for RFC 1444)
- Issue #32838: Allocator traits (tracking issue for RFC 1398)
- Issue #33158:
#[repr(packed = "N")](tracking issue for RFC 1399)
High priority issues
- Issue #25860: Implied bounds on nested references + variance = soundness hole
- 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 #31287: Pattern guard can consume value that is being matched
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 - Issue #30191: Can't provide non-overlapping impls with any type parameters, if a blanket impl exists