Skip to content

Tracking Issue for match ergonomics 2024 (RFC 3627) #123076

Open

Description

@Jules-Bertholet

This is a tracking issue for changes to match ergonomics for the 2024 edition, as described in rust-lang/rfcs#3627.

About tracking issues

Tracking issues are used to record the overall progress of implementation.
They are also used as hubs connecting to other relevant issues, e.g., bugs or open design questions.
A tracking issue is however not meant for large scale discussion, questions, or bug reports about a feature.
Instead, open a dedicated issue for the specific matter and add the relevant feature gate label.

Steps

Tracking for Rust 2024 changes:

Unresolved Questions

  • mut ref mut vs ref mut (mut syntax
  • The HackMD says the reference types should be "compatible", what does this mean and why?
### Implementation history
- [ ] https://github.com/rust-lang/rust/pull/122978
- [ ] https://github.com/rust-lang/rust/pull/123080
- [ ] https://github.com/rust-lang/rust/pull/123311
- [ ] https://github.com/rust-lang/rust/pull/123512
- [ ] https://github.com/rust-lang/rust/pull/123535
- [ ] https://github.com/rust-lang/rust/pull/124047
- [ ] https://github.com/rust-lang/rust/pull/124567
- [ ] https://github.com/rust-lang/rust/pull/124639
- [ ] https://github.com/rust-lang/rfcs/pull/3627
- [ ] https://github.com/rust-lang/rust/issues/125058
- [ ] https://github.com/rust-lang/rust/pull/125084
- [ ] https://github.com/rust-lang/rust/pull/125168
- [ ] https://github.com/rust-lang/rust/pull/127008
- [ ] https://github.com/rust-lang/rust/issues/127257
- [ ] https://github.com/rust-lang/rust/pull/127369
- [ ] https://github.com/rust-lang/rust/issues/127559
- [ ] https://github.com/rust-lang/rust/pull/135237

See also #105647, #64586

@rustbot label T-lang A-patterns A-edition-2024

Activity

  1. added
    C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFC
    on Mar 26, 2024
  2. added
    A-patternsRelating to patterns and pattern matching
    T-langRelevant to the language team
    on Mar 26, 2024
  3. Nadrieril commented on Mar 26, 2024

    @Nadrieril
    Member

    Noting here that I no longer think we need the "&<pat> everywhere" part of the proposal. This makes the proposed fix less local but saves us in design and possible conflicts with deref patterns.

  4. Jules-Bertholet commented on Mar 26, 2024

    @Jules-Bertholet
    ContributorAuthor

    possible conflicts with deref patterns.

    Can you elaborate? edit: oh I see, https://hackmd.io/YLKslGwpQOeAyGBayO9mdw#Deref-patterns

  5. traviscross commented on Mar 26, 2024

    @traviscross
    Contributor

    @rustbot labels +I-lang-nominated

    @Jules-Bertholet has picked up this work and is looking for a liaison for the experiment. Let's nominate to discuss.

  6. traviscross commented on Mar 27, 2024

    @traviscross
    Contributor

    @rustbot labels -I-lang-nominated

    We discussed this is in the lang meeting today, and I'll be picking up liaisoning on this one. Please let me know whenever anything is needed to move this forward.

    Thanks to @Nadrieril for the original work here, and thanks to @Jules-Bertholet for carrying the torch forward.

  7. removed
    I-lang-nominatedNominated for discussion during a lang team meeting.
    on Mar 27, 2024
  8. added 2 commits that reference this issue on Mar 28, 2024
  9. added a commit that references this issue on Apr 4, 2024
  10. added a commit that references this issue on Apr 5, 2024
  11. added a commit that references this issue on Apr 5, 2024
  12. 80 remaining items

  13. added a commit that references this issue on Mar 7, 2025
  14. added
    B-unstableBlocker: Implemented in the nightly compiler and unstable.
    on Jun 6, 2025
  15. joshtriplett commented on Jan 21, 2026

    @joshtriplett
    Member

    What is the current state of this feature? Is it ready for a stabilization report?

  16. joshtriplett commented on Jan 21, 2026

    @joshtriplett
    Member

    Also, one open question that came up in today's lang meeting: should this be mut ref x or mut (ref x)?

  17. traviscross commented on Jan 21, 2026

    @traviscross
    Contributor

    The open question was choosing between:

    • mut ref x, mut ref mut x
      • Separately, we could require parens for style reasons: mut (ref x), mut (ref mut x)
    • ref (mut x), ref mut (mut x)
  18. Nadrieril commented on Jan 24, 2026

    @Nadrieril
    Member

    For those wondering, the open question for this whole tracking issue was most importantly choosing between the structural-based rules and the type-based rules. Consensus seemed to be roughly aligned with the type-based approach when we last talked about this (was that a year ago? damn). However the recent work on field projections is putting that into question again, so I'm waiting for that to get fleshed out before reviving this initiative.

  19. added 2 commits that reference this issue on Jan 31, 2026
  20. added a commit that references this issue on Feb 1, 2026
  21. added a commit that references this issue on May 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

A-patternsRelating to patterns and pattern matchingB-RFC-approvedBlocker: Approved by a merged RFC but not yet implemented.B-unstableBlocker: Implemented in the nightly compiler and unstable.C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCT-langRelevant to the language team

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions