changed 3 years ago
Linked with GitHub

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Rust Edition 2021

This document will be turned into tracking issues and an RFC for more structure at some point. For now, we'll try to collect everything here. Please also add ideas that are not very concrete yet, just so we don't miss anything.


Discussion: #edition on Zulip


Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Milestone planning

December 2020:

  • Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
    Start this document.
  • Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
    Ask teams to check this document and add things.
  • Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
    Preliminary roadmap with rough dates.
  • Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
    Add unstable rustc --edition=2021: #79576

January 2021:

  • Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
    Make sure all relevant teams have brought attention to the 2021 edition in one of their meetings.
    • compiler
    • lang
    • libs
    • rustdoc
    • cargo
  • Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
    Add initial support for edition 2021 to all tools.
    (Just to make them aware of the new edition. Any edition-specific changes will be added later as part of that edition change itself.)
    • Image Not Showing Possible Reasons
      • The image file may be corrupted
      • The server hosting the image is unavailable
      • The image path is incorrect
      • The image format is not supported
      Learn More →
      Add edition = "2021" to cargo: cargo#8922
    • 🧹 Add edition 2021 to rustfmt: rustfmt#4618
    • Image Not Showing Possible Reasons
      • The image file may be corrupted
      • The server hosting the image is unavailable
      • The image path is incorrect
      • The image format is not supported
      Learn More →
      Add edition 2021 to rls: rls#1709
    • Image Not Showing Possible Reasons
      • The image file may be corrupted
      • The server hosting the image is unavailable
      • The image path is incorrect
      • The image format is not supported
      Learn More →
      Add edition 2021 to racer: racer#1152
    • Image Not Showing Possible Reasons
      • The image file may be corrupted
      • The server hosting the image is unavailable
      • The image path is incorrect
      • The image format is not supported
      Learn More →
      Add edition 2021 to clippy: rust-clippy#6530
    • Image Not Showing Possible Reasons
      • The image file may be corrupted
      • The server hosting the image is unavailable
      • The image path is incorrect
      • The image format is not supported
      Learn More →
      Add edition 2021 to rust-analyzer: rust-analyzer#7123
    • Image Not Showing Possible Reasons
      • The image file may be corrupted
      • The server hosting the image is unavailable
      • The image path is incorrect
      • The image format is not supported
      Learn More →
      Add edition2021 to rustdoc
      : No change required.
  • Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
    Make sure the relevant teams discuss each of the proposed changes.
    • compiler
    • lang
    • libs
    • rustdoc
    • cargo

February 2021:

  • Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
    Final list of changes. All proposed changes have:
    • An approved RFC
    • Migration+idiom lint plan
    • Partial implementation or plan for implementation

March 2021:

April 2021:

May 2021:

  • Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
    All proposed changes implemented and available in nightly.

June 2021:

  • Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
    All lints implemented on nightly and tested on crater.

July 2021:

  • Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
    Announce start of public testing.

August 2021:

  • Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
    Finish marketing materials, docs, etc.
    • Blog post(s)
    • Edition guide

September 2021:

  • Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
    Stabilize --edition=2021 on nightly (1.56).

October 2021:

  • Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
    --edition=2021 available on stable in Rust 1.56.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Edition Changes

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Unify std::panic and core::panic

Team(s) Status RFC Tracking issue Who
libs, lang RFC accepted RFC 3007 #80162 Mara

This makes panic!() consistent with print!():
panic!("{}") becomes an error, and panic!("{x}") will format x once implicit formatting arguments are stabilized.

To do:

  • Implement things. See tracking issue.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Promote 2018 warn lints to deny

Team(s) Status RFC Tracking issue Who
compiler - - #80165 Ryan Levick

To do:

  • Decide on final list of promotions
  • Implementation

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Forbid bare_trait_objects

Team(s) Status RFC Tracking issue Who
lang Not yet decided None (yet?) lang-team#65 t-lang

To do:

  • Make decision
  • Implementation

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Change Cargo's feature resolver to resolver = "2" by default for edition 2021

Team(s) Status RFC Tracking issue Who
cargo Accepted - cargo#9048 ?

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Edition specific or-patterns

Team(s) Status RFC Tracking issue Who
lang Team consensus RFC 2535 #54883 mark-i-m

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Disjoint captures in closures

Team(s) Status RFC Tracking issue Who
lang ? RFC 2229 #53488 ?

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Fix cargo fix --edition for edition 2021

Team(s) Status RFC Tracking issue Who
cargo Implemented N/A cargo#9047 ?

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Prelude changes

Team(s) Status RFC Tracking issue Who
libs, lang Incomplete idea RFC 3090 #65512 t-libs?
  • Add TryFrom / TryInto
  • Add other things?
  • Needs a compatibility warning (See Zulip)
  • Prioritization of glob import method resolution the same as item resolution (language change)
  • Doesn't need to be edition-specific:
    • Image Not Showing Possible Reasons
      • The image file may be corrupted
      • The server hosting the image is unavailable
      • The image path is incorrect
      • The image format is not supported
      Learn More →
      Add std::iter? (#80216)
  • Might not need to be edition-specific:
    (but have potential breakage from trait method conflicts, so would probably need at least a crater run)
    • Image Not Showing Possible Reasons
      • The image file may be corrupted
      • The server hosting the image is unavailable
      • The image path is incorrect
      • The image format is not supported
      Learn More →
      Add ops::Not? (thread on Internals)
    • Image Not Showing Possible Reasons
      • The image file may be corrupted
      • The server hosting the image is unavailable
      • The image path is incorrect
      • The image format is not supported
      Learn More →
      Add Debug and Display (#80360 and Zulip discussion)
    • Image Not Showing Possible Reasons
      • The image file may be corrupted
      • The server hosting the image is unavailable
      • The image path is incorrect
      • The image format is not supported
      Learn More →
      Add Hash (#80361 and Zulip discussion)

To do:

  • Complete the list of changes (see tracking issue)
  • Implement glob and prelude import changes in compiler? Compatibility warning? (RFC/MCP first?)
  • Implement new prelude

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Removing #[macro_export]

Team(s) Status RFC Tracking issue Who
lang Not yet decided - None yet petrochenkov?

To do:

  • Support pub on macro_rules!: #78166
  • Remove #[macro_export]
  • Could also be just a deprecation warning.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
IntoIterator for [T; N]

Team(s) Status RFC Tracking issue Who
libs Incomplete idea None (yet?) None yet Mara

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Replace #[rustc_args_required_const(..)] with const generics

Team(s) Status RFC Tracking issue Who
libs, lang Incomplete idea None (yet?) None yet Amanieu
  • Context: this comment, and also the rest of that issue.
  • Could also be a warning on all editions. (So, not deny on 2021.)

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Reserve new keywords

Team(s) Status RFC Tracking issue Who
lang Incomplete idea None None t-lang?

To do:

  • List keywords to reserve
  • Implement it

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
New/fixed range types (make a..b Copy)

Team(s) Status RFC Tracking issue Who
libs, lang Incomplete idea None None t-libs? sfackler?

To do:

  • Investigate alternative solutions, see rfcs#2848
  • Decide on the best solution
  • Implement it

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Change rustdoc lints to have a tool prefix and make changing the names deny-by-default

Team(s) Status RFC Tracking issue Who
rustdoc waiting on FCP (see Zulip thread) - - Joshua Nelson

To do:

  • Add rustdoc:: lints and suggest changing builtin rustdoc lints to use rustdoc:: prefix (#80527)
  • Add a deny-by-default lint to rename the old lints
  • Cohesive lints suggests all tools should be namespacing lints, is this true?

Does this actually need to be deny by default? Warn-by-default seems good enough; it wouldn't allow simplifying code since the compiler has to support all editions.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Run doctests in a single binary?

Team(s) Status RFC Tracking issue Who
rustdoc Incomplete idea - #75341 -

It's unclear whether we should do this. Preferably we could find a smaller hammer to throw at this that still gives performance gains.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Separate compile-time from run-time working directory for doctests?

Team(s) Status RFC Tracking issue Who
rustdoc Incomplete idea - #8993 -

Similar to doctests in a single binary, I would prefer to find a smaller hammer that doesn't require breaking changes.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Change Rustdoc's URL structure?

Team(s) Status RFC Tracking issue Who
rustdoc Incomplete idea rfcs#2988 #25879, #80504, docs.rs#1055, #55160, #71912 Joshua Nelson

This change might be too big even for an edition. It also needs better planning of what the end result is - if we're changing URLs anyway, it probably makes sense to solve the case-insensitive files issue at the same time.


Notes

..

Select a repo