A binding shadowed something it shouldn't. A match arm or a variable has a name that is already used by something else, e.g. * struct name * enum variant * static * associated constant This error may also happen when an enum variant *with fields* is used in a pattern, but without its fields. ```compile_fail enum Enum { WithField(i32) } use Enum::*; match WithField(1) { WithField => {} // error: missing (_) } ``` Match bindings cannot shadow statics: ```compile_fail,E0530 static TEST: i32 = 0; let r = 123; match r { TEST => {} // error: name of a static } ``` Fixed examples: ``` static TEST: i32 = 0; let r = 123; match r { some_value => {} // ok! } ``` or ``` const TEST: i32 = 0; // const, not static let r = 123; match r { TEST => {} // const is ok! other_values => {} } ```