1. Introduction
  2. What are editions?
    1. Creating a new project
    2. Transitioning an existing project to a new edition
    3. Advanced migrations
  3. Rust 2015
  4. Rust 2018
    1. Path and module system changes
    2. Anonymous trait function parameters deprecated
    3. New keywords
    4. Method dispatch for raw pointers to inference variables
    5. Cargo changes
  5. Rust 2021
    1. Additions to the prelude
    2. Default Cargo feature resolver
    3. IntoIterator for arrays
    4. Disjoint capture in closures
    5. Panic macro consistency
    6. Reserved syntax
    7. Raw lifetimes
    8. Warnings promoted to errors
    9. Or patterns in macro-rules
    10. C-string literals
  6. Rust 2024 🚧
    1. Additions to the prelude
    2. Add IntoIterator for Box<[T]>
    3. Newly unsafe functions
    4. unsafe_op_in_unsafe_fn warning
    5. RPIT lifetime capture rules
    6. Disallow references to static mut
    7. Cargo: Rust-version aware resolver
    8. Cargo: Table and key name consistency
    9. Cargo: Reject unused inherited default-features
    10. Rustfmt: Combine all delimited exprs as last argument
    11. Rustfmt: Raw identifier sorting
    12. Rustfmt: Style Edition
    13. gen keyword
    14. Macro fragment specifiers
    15. Missing macro fragment specifiers
    16. Never type fallback change
    17. Unsafe extern blocks
    18. Unsafe attributes
    19. Rustdoc combined tests
    20. Rustdoc nested include! change
    21. Reserved syntax