2018-03-28 12:03:28 +02:00
|
|
|
// #47295: We used to have a hack of special-casing adjacent amtch
|
|
|
|
// arms whose patterns were composed solely of constants to not have
|
|
|
|
// them linked in the cfg.
|
|
|
|
//
|
2021-09-05 08:04:20 +02:00
|
|
|
// This was broken for various reasons. In particular, that hack was
|
2018-03-28 12:03:28 +02:00
|
|
|
// originally authored under the assunption that other checks
|
|
|
|
// elsewhere would ensure that the two patterns did not overlap. But
|
|
|
|
// that assumption did not hold, at least not in the long run (namely,
|
|
|
|
// overlapping patterns were turned into warnings rather than errors).
|
2015-03-22 13:13:15 -07:00
|
|
|
|
2021-08-25 02:39:40 +02:00
|
|
|
|
2015-02-19 17:54:41 +01:00
|
|
|
|
|
|
|
fn main() {
|
2021-08-25 02:39:40 +02:00
|
|
|
let x: Box<_> = Box::new(1);
|
2015-02-19 17:54:41 +01:00
|
|
|
|
|
|
|
let v = (1, 2);
|
|
|
|
|
|
|
|
match v {
|
|
|
|
(1, 2) if take(x) => (),
|
2018-03-28 12:03:28 +02:00
|
|
|
(1, 2) if take(x) => (), //~ ERROR use of moved value: `x`
|
2015-02-19 17:54:41 +01:00
|
|
|
_ => (),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn take<T>(_: T) -> bool { false }
|