Information sources
Next steps
Was posted 2022-04-04
The three high-level goals (may be useful for categorizing/prioritizing):
The concrete items (not categorized by feasibility or completeness yet):
These items the roadmap listed as "active initiatives" at the time:
These were listed (or implied) as future work:
dyn Trait
more usable: Broaden the set of traits that can be used with dyn
and make working with dyn closer to working with generics."These items the roadmap listed as "active initiatives" at the time:
These were listed as future work:
extern "crabi"
, and a dynamic linking proposalThese items the roadmap listed as "active initiatives" at the time:
These were listed as future work:
unsafe_op_in_unsafe_fn
to be warn-by-default
from edition 2024 #112038
dyn Trait
#91302
'static
is not clearly what you want, e.g. on an impl dyn Foo {}
, or inside a struct with a lifetime param'static
can be a source of confusion because it doesn't happen elsewhere in the language$expr
matcher to align with the parser #86730Debug
and Display
to the prelude
Hash
to the prelude #80361
Debug
and Display
first, but that would make Hash
the only one with a derive but not the corresponding trait in the preludepub type foo = bar
and pub use bar as foo
interchangable in next edition #73191
foo
if bar
is a tuple structmod
inside fn
, etc) #65516
indirect_structural_match
compatibility lint an error #62411static mut
#53639static mut
#114447unsafe extern { unsafe fn name_of_foreign(...); }
)FromLossy
and TryFromLossy
traits RFC #2484
as
, we should consider movement in this space.static mut
with unsafe static
unsafe fn
originally had a design mistake in that it both introduces and also discharges obligations, and that unsafe static
would repeat that mistake. (Because it (supposedly) discharges the "safety invariant" which is "static must be Sync".)
unasfe static = unsafe { ... };
as the form that discharges the Sync invariant for the ...
content.unsafe static
is not the same as the double-duty unsafe fn
does.Box<[T]>
implement IntoIter
rust#59878
E
to Box<E>
to Box<dyn Error>
👍 using unsizing!
converts from !
to dyn Error
💥 to Box<dyn Error>
unsafe
("unsafe extern").break
to match that of return
(dtolnay quiz item 20).