//! 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 | |
_ => {} | |
} | |
} |