error[E0080]: evaluation of constant value failed --> $DIR/issue-76191.rs:8:37 | LL | const RANGE2: RangeInclusive = panic!(); | ^^^^^^^^ evaluation panicked: explicit panic error[E0308]: mismatched types --> $DIR/issue-76191.rs:14:9 | LL | const RANGE: RangeInclusive = 0..=255; | -------------------------------- constant defined here ... LL | match n { | - this expression has type `i32` LL | RANGE => {} | ^^^^^ | | | expected `i32`, found `RangeInclusive` | `RANGE` is interpreted as a constant, not a new binding | = note: expected type `i32` found struct `std::ops::RangeInclusive` help: you may want to move the range into the match block | LL - RANGE => {} LL + 0..=255 => {} | error[E0308]: mismatched types --> $DIR/issue-76191.rs:16:9 | LL | const RANGE2: RangeInclusive = panic!(); | --------------------------------- constant defined here ... LL | match n { | - this expression has type `i32` ... LL | RANGE2 => {} | ^^^^^^ | | | expected `i32`, found `RangeInclusive` | `RANGE2` is interpreted as a constant, not a new binding | = note: expected type `i32` found struct `std::ops::RangeInclusive` = note: constants only support matching by type, if you meant to match against a range of values, consider using a range pattern like `min ..= max` in the match block error: aborting due to 3 previous errors Some errors have detailed explanations: E0080, E0308. For more information about an error, try `rustc --explain E0080`.