From 0689a4f4f719418ee4fba74aa39d7920104343b5 Mon Sep 17 00:00:00 2001 From: Oli Scherer Date: Fri, 22 Mar 2024 12:09:53 +0000 Subject: [PATCH] Add regression test --- tests/ui/impl-trait/nested-hkl-lifetime.rs | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 tests/ui/impl-trait/nested-hkl-lifetime.rs diff --git a/tests/ui/impl-trait/nested-hkl-lifetime.rs b/tests/ui/impl-trait/nested-hkl-lifetime.rs new file mode 100644 index 000000000000..089ceca6777a --- /dev/null +++ b/tests/ui/impl-trait/nested-hkl-lifetime.rs @@ -0,0 +1,32 @@ +//@ check-pass + +use std::iter::FromIterator; + +struct DynamicAlt

(P); + +impl

FromIterator

for DynamicAlt

{ + fn from_iter>(_iter: T) -> Self { + loop {} + } +} + +fn owned_context(_: F) -> impl FnMut(I) -> I { + |i| i +} + +trait Parser {} + +impl Parser for T where T: FnMut(I) -> I {} + +fn alt>(_: DynamicAlt

) -> impl FnMut(I) -> I { + |i| i +} + +fn rule_to_parser<'c>() -> impl Parser<&'c str> { + move |input| { + let v: Vec<()> = vec![]; + alt(v.iter().map(|()| owned_context(rule_to_parser())).collect::>())(input) + } +} + +fn main() {}