Skip to content

On binding not present in all patterns, suggest potential typo #145827

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

estebank
Copy link
Contributor

@estebank estebank commented Aug 24, 2025

error[E0408]: variable `Ban` is not bound in all patterns
 --> f12.rs:9:9
  |
9 |         (Foo,Bar)|(Ban,Foo) => {}
  |         ^^^^^^^^^  --- variable not in all patterns
  |         |
  |         pattern doesn't bind `Ban`
  |
help: you might have meant to use the similarly named previously used binding `Bar`
  |
9 -         (Foo,Bar)|(Ban,Foo) => {}
9 +         (Foo,Bar)|(Bar,Foo) => {}
  |

Fix #51976.

```
error[E0408]: variable `Ban` is not bound in all patterns
 --> f12.rs:9:9
  |
9 |         (Foo,Bar)|(Ban,Foo) => {}
  |         ^^^^^^^^^  --- variable not in all patterns
  |         |
  |         pattern doesn't bind `Ban`
  |
help: you might have meant to use the similarly named previously used binding `Bar`
  |
9 -         (Foo,Bar)|(Ban,Foo) => {}
9 +         (Foo,Bar)|(Bar,Foo) => {}
  |
```
@rustbot
Copy link
Collaborator

rustbot commented Aug 24, 2025

r? @fee1-dead

rustbot has assigned @fee1-dead.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Aug 24, 2025
@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-llvm-19 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
131    |
- help: you might have meant to use the similarly named previously used binding `d`
+ help: you might have meant to use the similarly named previously used binding `a`
133    |
134 LL -     let (A(A(a, b) | B(c), d) | B(e)) = Y;
- LL +     let (A(A(a, b) | B(c), d) | B(d)) = Y;
+ LL +     let (A(A(a, b) | B(c), d) | B(a)) = Y;
136    |
137 
138 error[E0408]: variable `a` is not bound in all patterns


The actual stderr differed from the expected stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args or-patterns/missing-bindings.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/or-patterns/missing-bindings.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2" "--target=i686-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/or-patterns/missing-bindings" "-A" "unused" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/i686-unknown-linux-gnu/native/rust-test-helpers" "-Clinker=x86_64-linux-gnu-gcc" "--edition=2018"
stdout: none
--- stderr -------------------------------
error[E0408]: variable `beta` is not bound in all patterns
##[error]  --> /checkout/tests/ui/or-patterns/missing-bindings.rs:19:10
   |
LL |     let (alpha | beta | charlie) = alpha; //~  ERROR variable `beta` is not bound in all patterns
   |          ^^^^^   ----   ^^^^^^^ pattern doesn't bind `beta`
   |          |       |
   |          |       variable not in all patterns
   |          pattern doesn't bind `beta`

error[E0408]: variable `beta` is not bound in all patterns
##[error]  --> /checkout/tests/ui/or-patterns/missing-bindings.rs:22:14
   |
LL |         Some(alpha | beta) => {} //~ ERROR variable `beta` is not bound in all patterns
   |              ^^^^^   ---- variable not in all patterns
   |              |
   |              pattern doesn't bind `beta`

error[E0408]: variable `a` is not bound in all patterns
##[error]  --> /checkout/tests/ui/or-patterns/missing-bindings.rs:35:20
   |
LL |     let (A(a, _) | _) = X; //~ ERROR variable `a` is not bound in all patterns
   |            -       ^ pattern doesn't bind `a`
   |            |
   |            variable not in all patterns

error[E0408]: variable `a` is not bound in all patterns
##[error]  --> /checkout/tests/ui/or-patterns/missing-bindings.rs:36:10
   |
LL |     let (_ | B(a)) = X; //~ ERROR variable `a` is not bound in all patterns
   |          ^     - variable not in all patterns
   |          |
   |          pattern doesn't bind `a`

error[E0408]: variable `a` is not bound in all patterns
##[error]  --> /checkout/tests/ui/or-patterns/missing-bindings.rs:37:10
   |
LL |     let (A(..) | B(a)) = X; //~ ERROR variable `a` is not bound in all patterns
   |          ^^^^^     - variable not in all patterns
   |          |
   |          pattern doesn't bind `a`

error[E0408]: variable `a` is not bound in all patterns
##[error]  --> /checkout/tests/ui/or-patterns/missing-bindings.rs:38:20
   |
LL |     let (A(a, _) | B(_)) = X; //~ ERROR variable `a` is not bound in all patterns
   |            -       ^^^^ pattern doesn't bind `a`
   |            |
   |            variable not in all patterns

error[E0408]: variable `a` is not bound in all patterns
##[error]  --> /checkout/tests/ui/or-patterns/missing-bindings.rs:39:20
   |
LL |     let (A(_, a) | B(_)) = X; //~ ERROR variable `a` is not bound in all patterns
   |               -    ^^^^ pattern doesn't bind `a`
   |               |
   |               variable not in all patterns

error[E0408]: variable `b` is not bound in all patterns
##[error]  --> /checkout/tests/ui/or-patterns/missing-bindings.rs:40:20
   |
LL |     let (A(a, b) | B(a)) = X; //~ ERROR variable `b` is not bound in all patterns
   |               -    ^^^^ pattern doesn't bind `b`
   |               |
   |               variable not in all patterns

error[E0408]: variable `a` is not bound in all patterns
##[error]  --> /checkout/tests/ui/or-patterns/missing-bindings.rs:44:10
   |
LL |     let (A(A(..) | B(_), _) | B(a)) = Y; //~ ERROR variable `a` is not bound in all patterns
   |          ^^^^^^^^^^^^^^^^^^     - variable not in all patterns
   |          |
   |          pattern doesn't bind `a`

error[E0408]: variable `a` is not bound in all patterns
##[error]  --> /checkout/tests/ui/or-patterns/missing-bindings.rs:45:12
   |
LL |     let (A(A(..) | B(a), _) | B(A(a, _) | B(a))) = Y;
   |            ^^^^^     - variable not in all patterns
   |            |
   |            pattern doesn't bind `a`

error[E0408]: variable `c` is not bound in all patterns
##[error]  --> /checkout/tests/ui/or-patterns/missing-bindings.rs:47:12
   |
LL |     let (A(A(a, b) | B(c), d) | B(e)) = Y;
   |            ^^^^^^^     - variable not in all patterns
   |            |
   |            pattern doesn't bind `c`
   |
help: you might have meant to use the similarly named previously used binding `a`
   |
LL -     let (A(A(a, b) | B(c), d) | B(e)) = Y;
LL +     let (A(A(a, b) | B(a), d) | B(e)) = Y;
   |

error[E0408]: variable `a` is not bound in all patterns
##[error]  --> /checkout/tests/ui/or-patterns/missing-bindings.rs:47:22
   |
LL |     let (A(A(a, b) | B(c), d) | B(e)) = Y;
   |              -       ^^^^ pattern doesn't bind `a`
   |              |
   |              variable not in all patterns
   |
help: you might have meant to use the similarly named previously used binding `c`
   |
LL -     let (A(A(a, b) | B(c), d) | B(e)) = Y;
LL +     let (A(A(c, b) | B(c), d) | B(e)) = Y;
   |

error[E0408]: variable `b` is not bound in all patterns
##[error]  --> /checkout/tests/ui/or-patterns/missing-bindings.rs:47:22
   |
LL |     let (A(A(a, b) | B(c), d) | B(e)) = Y;
   |                 -    ^^^^ pattern doesn't bind `b`
   |                 |
   |                 variable not in all patterns
   |
help: you might have meant to use the similarly named previously used binding `c`
   |
LL -     let (A(A(a, b) | B(c), d) | B(e)) = Y;
LL +     let (A(A(a, c) | B(c), d) | B(e)) = Y;
   |

error[E0408]: variable `e` is not bound in all patterns
##[error]  --> /checkout/tests/ui/or-patterns/missing-bindings.rs:47:10
   |
LL |     let (A(A(a, b) | B(c), d) | B(e)) = Y;
   |          ^^^^^^^^^^^^^^^^^^^^     - variable not in all patterns
   |          |
   |          pattern doesn't bind `e`
   |
help: you might have meant to use the similarly named previously used binding `a`
   |
LL -     let (A(A(a, b) | B(c), d) | B(e)) = Y;
LL +     let (A(A(a, b) | B(c), d) | B(a)) = Y;
   |

error[E0408]: variable `a` is not bound in all patterns
##[error]  --> /checkout/tests/ui/or-patterns/missing-bindings.rs:47:33
   |
LL |     let (A(A(a, b) | B(c), d) | B(e)) = Y;
   |              -                  ^^^^ pattern doesn't bind `a`
   |              |
   |              variable not in all patterns
   |
help: you might have meant to use the similarly named previously used binding `e`
   |
LL -     let (A(A(a, b) | B(c), d) | B(e)) = Y;
LL +     let (A(A(e, b) | B(c), d) | B(e)) = Y;
   |

error[E0408]: variable `b` is not bound in all patterns
##[error]  --> /checkout/tests/ui/or-patterns/missing-bindings.rs:47:33
   |
LL |     let (A(A(a, b) | B(c), d) | B(e)) = Y;
   |                 -               ^^^^ pattern doesn't bind `b`
   |                 |
   |                 variable not in all patterns
   |
help: you might have meant to use the similarly named previously used binding `e`
   |
LL -     let (A(A(a, b) | B(c), d) | B(e)) = Y;
LL +     let (A(A(a, e) | B(c), d) | B(e)) = Y;
   |

error[E0408]: variable `c` is not bound in all patterns
##[error]  --> /checkout/tests/ui/or-patterns/missing-bindings.rs:47:33
   |
LL |     let (A(A(a, b) | B(c), d) | B(e)) = Y;
   |                        -        ^^^^ pattern doesn't bind `c`
   |                        |
   |                        variable not in all patterns
   |
help: you might have meant to use the similarly named previously used binding `e`
   |
LL -     let (A(A(a, b) | B(c), d) | B(e)) = Y;
LL +     let (A(A(a, b) | B(e), d) | B(e)) = Y;
   |

error[E0408]: variable `d` is not bound in all patterns
##[error]  --> /checkout/tests/ui/or-patterns/missing-bindings.rs:47:33
   |
LL |     let (A(A(a, b) | B(c), d) | B(e)) = Y;
   |                            -    ^^^^ pattern doesn't bind `d`
   |                            |
   |                            variable not in all patterns
   |
help: you might have meant to use the similarly named previously used binding `e`
   |
LL -     let (A(A(a, b) | B(c), d) | B(e)) = Y;
LL +     let (A(A(a, b) | B(c), e) | B(e)) = Y;
   |

error[E0408]: variable `a` is not bound in all patterns
##[error]  --> /checkout/tests/ui/or-patterns/missing-bindings.rs:63:29
   |
LL |                     Ok(a) | Err(_), //~ ERROR variable `a` is not bound in all patterns
   |                        -    ^^^^^^ pattern doesn't bind `a`
   |                        |
   |                        variable not in all patterns

error[E0408]: variable `b` is not bound in all patterns
##[error]  --> /checkout/tests/ui/or-patterns/missing-bindings.rs:70:21
   |
LL |                     A(_, a) | //~ ERROR variable `b` is not bound in all patterns
   |                     ^^^^^^^ pattern doesn't bind `b`
LL |                     B(b), //~ ERROR variable `a` is not bound in all patterns
   |                       - variable not in all patterns
   |
help: you might have meant to use the similarly named previously used binding `a`
   |
LL -                     B(b), //~ ERROR variable `a` is not bound in all patterns
LL +                     B(a), //~ ERROR variable `a` is not bound in all patterns
   |

error[E0408]: variable `a` is not bound in all patterns
##[error]  --> /checkout/tests/ui/or-patterns/missing-bindings.rs:71:21
   |
LL |                     A(_, a) | //~ ERROR variable `b` is not bound in all patterns
   |                          - variable not in all patterns
LL |                     B(b), //~ ERROR variable `a` is not bound in all patterns
   |                     ^^^^ pattern doesn't bind `a`
   |
help: you might have meant to use the similarly named previously used binding `b`
   |
LL -                     A(_, a) | //~ ERROR variable `b` is not bound in all patterns
LL +                     A(_, b) | //~ ERROR variable `b` is not bound in all patterns
   |

error[E0408]: variable `a` is not bound in all patterns
##[error]  --> /checkout/tests/ui/or-patterns/missing-bindings.rs:74:17
   |
LL |                     A(_, a) | //~ ERROR variable `b` is not bound in all patterns
   |                          - variable not in all patterns
...
LL |                 B(_)
   |                 ^^^^ pattern doesn't bind `a`

error[E0408]: variable `b` is not bound in all patterns
##[error]  --> /checkout/tests/ui/or-patterns/missing-bindings.rs:74:17
   |
LL |                     B(b), //~ ERROR variable `a` is not bound in all patterns
   |                       - variable not in all patterns
...
LL |                 B(_)
   |                 ^^^^ pattern doesn't bind `b`

---
LL | |             //~^ ERROR variable `b` is not bound in all patterns
LL | |             //~| ERROR variable `c` is not bound in all patterns
LL | |                 A(
...  |
LL | |                 B(Ok(a) | Err(a))
LL | |             ) |
   | |_____________^ pattern doesn't bind `b`
...
LL |                       B(b), //~ ERROR variable `a` is not bound in all patterns
   |                         - variable not in all patterns
...
LL |               V3(c),
   |               ^^^^^ pattern doesn't bind `b`

---
LL | |             //~^ ERROR variable `b` is not bound in all patterns
LL | |             //~| ERROR variable `c` is not bound in all patterns
LL | |                 A(
...  |
LL | |                 B(Ok(a) | Err(a))
LL | |             ) |
   | |_____________^ pattern doesn't bind `c`
LL | /             V2(
LL | |                 A(
LL | |                     A(_, a) | //~ ERROR variable `b` is not bound in all patterns
LL | |                     B(b), //~ ERROR variable `a` is not bound in all patterns
...  |
LL | |             ) |
   | |_____________^ pattern doesn't bind `c`
LL |               V3(c),
   |                  - variable not in all patterns
---

error[E0408]: variable `a` is not bound in all patterns
##[error]  --> /checkout/tests/ui/or-patterns/missing-bindings.rs:78:13
   |
LL |                 B(Ok(a) | Err(a))
   |                               - variable not in all patterns
...
LL |                     A(_, a) | //~ ERROR variable `b` is not bound in all patterns
   |                          - variable not in all patterns
...
LL |             V3(c),
   |             ^^^^^ pattern doesn't bind `a`
   |
help: you might have meant to use the similarly named previously used binding `c`
   |
LL ~                 B(Ok(a) | Err(c))
LL |             ) |
LL |             V2(
LL |                 A(
LL ~                     A(_, c) | //~ ERROR variable `b` is not bound in all patterns
   |

error[E0170]: pattern binding `beta` is named the same as one of the variants of the type `check_handling_of_paths::bar::foo`
##[error]  --> /checkout/tests/ui/or-patterns/missing-bindings.rs:19:18
   |
LL |     let (alpha | beta | charlie) = alpha; //~  ERROR variable `beta` is not bound in all patterns
   |                  ^^^^
   |
   = note: `#[deny(bindings_with_variant_name)]` on by default

error[E0170]: pattern binding `beta` is named the same as one of the variants of the type `check_handling_of_paths::bar::foo`
##[error]  --> /checkout/tests/ui/or-patterns/missing-bindings.rs:22:22
   |
LL |         Some(alpha | beta) => {} //~ ERROR variable `beta` is not bound in all patterns
   |                      ^^^^ help: to match on the variant, qualify the path: `check_handling_of_paths::bar::foo::beta`

error[E0004]: non-exhaustive patterns: `None` not covered
##[error]  --> /checkout/tests/ui/or-patterns/missing-bindings.rs:21:11
   |
LL |     match Some(alpha) { //~ ERROR `None` not covered
   |           ^^^^^^^^^^^ pattern `None` not covered
   |
note: `Option<foo>` defined here
  --> /rustc/FAKE_PREFIX/library/core/src/option.rs:593:1
  ::: /rustc/FAKE_PREFIX/library/core/src/option.rs:597:5
   |
   = note: not covered
   = note: the matched value is of type `Option<foo>`
help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
   |
LL |         Some(alpha | beta) => {}, None => todo!() //~ ERROR variable `beta` is not bound in all patterns
   |                                 +++++++++++++++++

error: aborting due to 29 previous errors

Some errors have detailed explanations: E0004, E0170, E0408.
---
9    |         pattern doesn't bind `b`
+    |
+ help: you might have meant to use the similarly named previously used binding `a`
+    |
+ LL -         T::T1(a, d) | T::T2(d, b) | T::T3(c) | T::T4(a) => { println!("{:?}", a); }
+ LL +         T::T1(a, d) | T::T2(d, a) | T::T3(c) | T::T4(a) => { println!("{:?}", a); }
+    |
10 
11 error[E0408]: variable `c` is not bound in all patterns
12   --> $DIR/issue-39698.rs:10:9

18    |         |             pattern doesn't bind `c`
19    |         pattern doesn't bind `c`
20    |
- help: you might have meant to use the similarly named previously used binding `d`
+ help: you might have meant to use the similarly named previously used binding `a`
22    |
23 LL -         T::T1(a, d) | T::T2(d, b) | T::T3(c) | T::T4(a) => { println!("{:?}", a); }
- LL +         T::T1(a, d) | T::T2(d, b) | T::T3(d) | T::T4(a) => { println!("{:?}", a); }
+ LL +         T::T1(a, d) | T::T2(d, b) | T::T3(a) | T::T4(a) => { println!("{:?}", a); }
25    |
26 
27 error[E0408]: variable `a` is not bound in all patterns


The actual stderr differed from the expected stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args span/issue-39698.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/span/issue-39698.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2" "--target=i686-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/span/issue-39698" "-A" "unused" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/i686-unknown-linux-gnu/native/rust-test-helpers" "-Clinker=x86_64-linux-gnu-gcc"
stdout: none
--- stderr -------------------------------
error[E0408]: variable `b` is not bound in all patterns
##[error]  --> /checkout/tests/ui/span/issue-39698.rs:10:9
   |
LL |         T::T1(a, d) | T::T2(d, b) | T::T3(c) | T::T4(a) => { println!("{:?}", a); }
   |         ^^^^^^^^^^^            -    ^^^^^^^^   ^^^^^^^^ pattern doesn't bind `b`
   |         |                      |    |
   |         |                      |    pattern doesn't bind `b`
   |         |                      variable not in all patterns
   |         pattern doesn't bind `b`
   |
help: you might have meant to use the similarly named previously used binding `a`
   |
LL -         T::T1(a, d) | T::T2(d, b) | T::T3(c) | T::T4(a) => { println!("{:?}", a); }
LL +         T::T1(a, d) | T::T2(d, a) | T::T3(c) | T::T4(a) => { println!("{:?}", a); }
   |

error[E0408]: variable `c` is not bound in all patterns
##[error]  --> /checkout/tests/ui/span/issue-39698.rs:10:9
   |
LL |         T::T1(a, d) | T::T2(d, b) | T::T3(c) | T::T4(a) => { println!("{:?}", a); }
   |         ^^^^^^^^^^^   ^^^^^^^^^^^         -    ^^^^^^^^ pattern doesn't bind `c`
   |         |             |                   |
   |         |             |                   variable not in all patterns
   |         |             pattern doesn't bind `c`
   |         pattern doesn't bind `c`
   |
help: you might have meant to use the similarly named previously used binding `a`
   |
LL -         T::T1(a, d) | T::T2(d, b) | T::T3(c) | T::T4(a) => { println!("{:?}", a); }
LL +         T::T1(a, d) | T::T2(d, b) | T::T3(a) | T::T4(a) => { println!("{:?}", a); }
   |

error[E0408]: variable `a` is not bound in all patterns
##[error]  --> /checkout/tests/ui/span/issue-39698.rs:10:23
   |
LL |         T::T1(a, d) | T::T2(d, b) | T::T3(c) | T::T4(a) => { println!("{:?}", a); }
   |               -       ^^^^^^^^^^^   ^^^^^^^^         - variable not in all patterns
   |               |       |             |
   |               |       |             pattern doesn't bind `a`
   |               |       pattern doesn't bind `a`
   |               variable not in all patterns

error[E0408]: variable `d` is not bound in all patterns
##[error]  --> /checkout/tests/ui/span/issue-39698.rs:10:37
   |
LL |         T::T1(a, d) | T::T2(d, b) | T::T3(c) | T::T4(a) => { println!("{:?}", a); }
   |                  -          -       ^^^^^^^^   ^^^^^^^^ pattern doesn't bind `d`
   |                  |          |       |
   |                  |          |       pattern doesn't bind `d`
   |                  |          variable not in all patterns
   |                  variable not in all patterns

error[E0381]: used binding `a` is possibly-uninitialized
##[error]  --> /checkout/tests/ui/span/issue-39698.rs:10:79
   |
LL |         T::T1(a, d) | T::T2(d, b) | T::T3(c) | T::T4(a) => { println!("{:?}", a); }
   |               -                                      -                        ^ `a` used here but it is possibly-uninitialized
   |               |                                      |
   |               |                                      binding initialized here in some conditions
   |               binding initialized here in some conditions
   |               binding declared here but left uninitialized
   |

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Diagnostic error[E0408]: variable ... is not bound in all patterns should be more helpful with typos.
4 participants