| //! Test that implicit deref patterns respect the recursion limit | |
| #![feature(deref_patterns)] | |
| #![allow(incomplete_features)] | |
| #![recursion_limit = "8"] | |
| use std::ops::Deref; | |
| struct Cyclic; | |
| impl Deref for Cyclic { | |
| type Target = Cyclic; | |
| fn deref(&self) -> &Cyclic { | |
| &Cyclic | |
| } | |
| } | |
| fn main() { | |
| match &Box::new(Cyclic) { | |
| () => {} | |
| //~^ ERROR: reached the recursion limit while auto-dereferencing `Cyclic` | |
| //~| ERROR: the trait bound `Cyclic: DerefPure` is not satisfied | |
| _ => {} | |
| } | |
| } |