Files
rust/tests/ui/consts/match_ice.stderr
T
Esteban Küber 3f08f6759a Suggest using equality comparison instead of pattern matching on non-strutural constant in pattern
```
error: constant of non-structural type `partial_eq::S` in a pattern
  --> $DIR/suggest_equality_comparison_instead_of_pattern_matching.rs:16:18
   |
LL |     struct S;
   |     -------- `partial_eq::S` must be annotated with `#[derive(PartialEq)]` to be usable in patterns
...
LL |     const C: S = S;
   |     ---------- constant defined here
...
LL |             Some(C) => {}
   |                  ^ constant of non-structural type
   |
note: the `PartialEq` trait must be derived, manual `impl`s are not sufficient; see https://doc.rust-lang.org/stable/std/marker/trait.StructuralPartialEq.html for details
  --> $DIR/suggest_equality_comparison_instead_of_pattern_matching.rs:5:5
   |
LL |     impl PartialEq<S> for S {
   |     ^^^^^^^^^^^^^^^^^^^^^^^
help: add a condition to the match arm checking for equality
   |
LL -             Some(C) => {}
LL +             Some(binding) if binding == C => {}
   |
```
2026-03-17 17:54:01 +00:00

22 lines
639 B
Plaintext

error: constant of non-structural type `S` in a pattern
--> $DIR/match_ice.rs:11:9
|
LL | struct S;
| -------- `S` must be annotated with `#[derive(PartialEq)]` to be usable in patterns
...
LL | const C: &S = &S;
| ----------- constant defined here
LL | match C {
LL | C => {}
| ^ constant of non-structural type
|
= note: see https://doc.rust-lang.org/stable/std/marker/trait.StructuralPartialEq.html for details
help: add a condition to the match arm checking for equality
|
LL - C => {}
LL + binding if binding == C => {}
|
error: aborting due to 1 previous error