diff options
Diffstat (limited to 'src/test/ui/issues/issue-22638.rs')
-rw-r--r-- | src/test/ui/issues/issue-22638.rs | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/src/test/ui/issues/issue-22638.rs b/src/test/ui/issues/issue-22638.rs deleted file mode 100644 index 198ceccc2..000000000 --- a/src/test/ui/issues/issue-22638.rs +++ /dev/null @@ -1,63 +0,0 @@ -// build-fail -// normalize-stderr-test: "<\[closure@.+`" -> "$$CLOSURE`" -// normalize-stderr-test: ".nll/" -> "/" - -#![allow(unused)] - -#![recursion_limit = "20"] -#![type_length_limit = "20000000"] -#![crate_type = "rlib"] - -#[derive(Clone)] -struct A (B); - -impl A { - pub fn matches<F: Fn()>(&self, f: &F) { - let &A(ref term) = self; - term.matches(f); - } -} - -#[derive(Clone)] -enum B { - Variant1, - Variant2(C), -} - -impl B { - pub fn matches<F: Fn()>(&self, f: &F) { - match self { - &B::Variant2(ref factor) => { - factor.matches(&|| ()) - } - _ => unreachable!("") - } - } -} - -#[derive(Clone)] -struct C (D); - -impl C { - pub fn matches<F: Fn()>(&self, f: &F) { - let &C(ref base) = self; - base.matches(&|| { - C(base.clone()).matches(f) - }) - } -} - -#[derive(Clone)] -struct D (Box<A>); - -impl D { - pub fn matches<F: Fn()>(&self, f: &F) { - let &D(ref a) = self; - a.matches(f) - //~^ ERROR reached the recursion limit while instantiating `A::matches::<[closure - } -} - -pub fn matches() { - A(B::Variant1).matches(&(|| ())) -} |