Subteam report: lang 2016-02-12
Highlights
"If you choose not to decide, you still have made a choice." -- Rush
This week we decided to postpone two RFCs that have been lingering in final comment period for some time:
- RFC #1129, which added a special overload for
map[key] = valuesyntax. There were concerns about the implementation complexity and the general proliferation of ways to insert into maps, particularly if emplacement syntax becomes more mainstream. Hence we decided to postpone until we've had a chance to push harder on emplacement syntax. - RFC #1196, which allowed eliding type parameters and which filled
in the results with
_. Here the concerns were about the interaction with the inference fallbacks that were described in RFC 213 (but never fully implemented). The decision was to postpone the RFC in favor of a broader discussion that tries to capture the full set of constraints.
--nmatsakis
PS. Do not interpret that opening quote as suggesting any sort of endorsement of the band Rush, official or otherwise.
Dashboard
RFC phase
- PR #197:
ManuallyDroptype gives precise control of dtors of inline data. - 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 #1248: Safe intrinsics RFC
- PR #1296:
RFC: Add an
aliasattribute to #[link] and -l - 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 #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 built-in syntax macro
union! - 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 #1494: Amend RFC 550 with misc. follow set corrections
- FCP PR #1210: RFC: impl specialization
- FCP PR #1258: Add macros to get the values of configuration flags
- FCP PR #1303:
Add a
let...elseexpression, similar to Swift'sguard let...else
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
- Issue #31434: Restrict use of constants in patterns (RFC 1445)
- Issue #31436:
?operator andcatchexpressions (RFC 243) - FCP PR #28235:
Tracking issue for overloaded
+=operators (RFC 953) (feature augmented_assignments) - FCP PR #29720:
Tracking issue for
braced_empty_structs(RFC 218)
High priority issues
- Issue #15536: floating point to floating point casts have undefined behaviour
- 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]
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