#![feature(deref_patterns)] #![allow(incomplete_features)] struct MyPointer; impl std::ops::Deref for MyPointer { type Target = (); fn deref(&self) -> &() { &() } } fn main() { // Test that we get a trait error if a user attempts implicit deref pats on their own impls. // FIXME(deref_patterns): there should be a special diagnostic for missing `DerefPure`. match MyPointer { () => {} //~^ ERROR the trait bound `MyPointer: DerefPure` is not satisfied _ => {} } }