summaryrefslogtreecommitdiffstats
path: root/src/test/ui/issues/issue-22638.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/issues/issue-22638.rs')
-rw-r--r--src/test/ui/issues/issue-22638.rs63
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(&(|| ()))
-}