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. Language
      1. RPIT lifetime capture rules
      2. if let temporary scope
      3. Tail expression temporary scope
      4. Match ergonomics
      5. Unsafe extern blocks
      6. Unsafe attributes
      7. unsafe_op_in_unsafe_fn warning
      8. Disallow references to static mut
      9. Never type fallback change
      10. Macro fragment specifiers
      11. Missing macro fragment specifiers
      12. gen keyword
      13. Reserved syntax
    2. Standard library
      1. Additions to the prelude
      2. Add IntoIterator for Box<[T]>
      3. Newly unsafe functions
    3. Cargo
      1. Cargo: Rust-version aware resolver
      2. Cargo: Table and key name consistency
      3. Cargo: Reject unused inherited default-features
    4. Rustdoc
      1. Rustdoc combined tests
      2. Rustdoc nested include! change
    5. Rustfmt
      1. Rustfmt: Style edition
      2. Rustfmt: Combine all delimited exprs as last argument
      3. Rustfmt: Raw identifier sorting
      4. Rustfmt: Version sorting