rust-lang / rust-lang/rust-analyzer

`Fill match arms` duplicates arm with imported variants

Open
#15,147 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-assists A-pattern C-bug
Dominant language
Rust
Stars
16.9k
Forks
2.2k
Avg merge
1d 12h
Merged PRs (30d)
72

Description

Spotted in #15143.

            ProjectionElem::Field(f) => match &base.data(Interner).kind {
                TyKind::Adt(_, subst) => {
                    db.field_types(f.parent)[f.local_id].clone().substitute(Interner, subst)
                }
                chalk_ir::TyKind::Adt(_, _) => todo!(),
                // ...

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the shown Fill match arms example involving ProjectionElem::Field and imported TyKind::Adt variants. Trace the match-arm filling implementation from that behavior; done when imported variants no longer produce a duplicate arm while the existing arm remains available.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
devtools
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.