diff options
Diffstat (limited to '')
-rw-r--r-- | src/test/ui/issues/issue-67552.rs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/test/ui/issues/issue-67552.rs b/src/test/ui/issues/issue-67552.rs new file mode 100644 index 000000000..ec1997ccd --- /dev/null +++ b/src/test/ui/issues/issue-67552.rs @@ -0,0 +1,32 @@ +// build-fail +// compile-flags: -Copt-level=0 +// normalize-stderr-test: ".nll/" -> "/" + +fn main() { + rec(Empty); +} + +struct Empty; + +impl Iterator for Empty { + type Item = (); + fn next<'a>(&'a mut self) -> core::option::Option<()> { + None + } +} + +fn identity<T>(x: T) -> T { + x +} + +fn rec<T>(mut it: T) +where + T: Iterator, +{ + if () == () { + T::count(it); + } else { + rec(identity(&mut it)) + //~^ ERROR reached the recursion limit while instantiating + } +} |