//! Test non-exhaustive matches involving deref patterns. #![feature(deref_patterns)] #![expect(incomplete_features)] #![deny(unreachable_patterns)] fn main() { match Box::new(false) { //~^ ERROR non-exhaustive patterns: `deref!(true)` not covered false => {} } match Box::new(Box::new(false)) { //~^ ERROR non-exhaustive patterns: `deref!(deref!(false))` not covered true => {} } match Box::new((true, Box::new(false))) { //~^ ERROR non-exhaustive patterns: `deref!((true, deref!(true)))` and `deref!((false, deref!(false)))` not covered (true, false) => {} (false, true) => {} } enum T { A, B, C } match Box::new((Box::new(T::A), Box::new(T::A))) { //~^ ERROR non-exhaustive patterns: `deref!((deref!(T::C), _))` not covered (T::A | T::B, T::C) => {} } }