|  | // Issue #51976 | 
|  | //@ run-rustfix | 
|  | #![allow(unused_variables)] // allowed so we don't get overlapping suggestions | 
|  | enum Lol { | 
|  | Foo, | 
|  | Bar, | 
|  | } | 
|  |  | 
|  | fn foo(x: (Lol, Lol)) { | 
|  | use Lol::*; | 
|  | match &x { | 
|  | (Foo, Bar) | (Ban, Foo) => {} | 
|  | //~^ ERROR: variable `Ban` is not bound in all patterns | 
|  | //~| HELP: you might have meant to use the similarly named previously used binding `Bar` | 
|  | //~| NOTE: pattern doesn't bind `Ban` | 
|  | //~| NOTE: variable not in all patterns | 
|  | _ => {} | 
|  | } | 
|  | match &x { | 
|  | (Foo, _) | (Ban, Foo) => {} | 
|  | //~^ ERROR: variable `Ban` is not bound in all patterns | 
|  | //~| HELP: you might have meant to use the similarly named unit variant `Bar` | 
|  | //~| NOTE: pattern doesn't bind `Ban` | 
|  | //~| NOTE: variable not in all patterns | 
|  | _ => {} | 
|  | } | 
|  | } | 
|  |  | 
|  | fn main() { | 
|  | use Lol::*; | 
|  | foo((Foo, Bar)); | 
|  | } |