diff options
| author | Folkert de Vries <flokkievids@gmail.com> | 2025-08-03 10:44:41 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-08-03 10:44:41 +0000 |
| commit | c691374cc19d583103f3da5d655efb308a1648b9 (patch) | |
| tree | 767496caef5b54e56f46a834d0d612705ce5e488 /tests/ui/recursion/recursive-impl-trait-iterator-by-ref-67552.rs | |
| parent | daa742afe5970109c1e15b391226f78087b10439 (diff) | |
| parent | 49aa0ecc7b251003e61c38a56471195a2d3dabee (diff) | |
| download | rust-c691374cc19d583103f3da5d655efb308a1648b9.tar.gz rust-c691374cc19d583103f3da5d655efb308a1648b9.zip | |
Merge pull request #1889 from rust-lang/rustc-pull
Rustc pull update
Diffstat (limited to 'tests/ui/recursion/recursive-impl-trait-iterator-by-ref-67552.rs')
| -rw-r--r-- | tests/ui/recursion/recursive-impl-trait-iterator-by-ref-67552.rs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/ui/recursion/recursive-impl-trait-iterator-by-ref-67552.rs b/tests/ui/recursion/recursive-impl-trait-iterator-by-ref-67552.rs new file mode 100644 index 00000000000..0875d385ddc --- /dev/null +++ b/tests/ui/recursion/recursive-impl-trait-iterator-by-ref-67552.rs @@ -0,0 +1,33 @@ +//@ build-fail +//@ compile-flags: -Copt-level=0 + +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 + } +} + +// https://github.com/rust-lang/rust/issues/67552 |
