2018-03-28 05:03:28 -05: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 01:04:20 -05:00
|
|
|
// This was broken for various reasons. In particular, that hack was
|
2018-03-28 05:03:28 -05: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 15:13:15 -05:00
|
|
|
|
2021-08-24 19:39:40 -05:00
|
|
|
|
2015-02-19 10:54:41 -06:00
|
|
|
|
|
|
|
fn main() {
|
2021-08-24 19:39:40 -05:00
|
|
|
let x: Box<_> = Box::new(1);
|
2015-02-19 10:54:41 -06:00
|
|
|
|
|
|
|
let v = (1, 2);
|
|
|
|
|
|
|
|
match v {
|
|
|
|
(1, 2) if take(x) => (),
|
2018-03-28 05:03:28 -05:00
|
|
|
(1, 2) if take(x) => (), //~ ERROR use of moved value: `x`
|
2015-02-19 10:54:41 -06:00
|
|
|
_ => (),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn take<T>(_: T) -> bool { false }
|