summaryrefslogtreecommitdiffstats
path: root/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-unconstrained-lifetime.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/type-alias-impl-trait/type-alias-impl-trait-unconstrained-lifetime.rs')
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-impl-trait-unconstrained-lifetime.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-unconstrained-lifetime.rs b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-unconstrained-lifetime.rs
new file mode 100644
index 000000000..efbf4f1e3
--- /dev/null
+++ b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-unconstrained-lifetime.rs
@@ -0,0 +1,18 @@
+// regression test for #74018
+
+#![feature(type_alias_impl_trait)]
+
+trait Trait {
+ type Associated;
+ fn into(self) -> Self::Associated;
+}
+
+impl<'a, I: Iterator<Item = i32>> Trait for (i32, I) {
+ //~^ ERROR the lifetime parameter `'a` is not constrained
+ type Associated = (i32, impl Iterator<Item = i32>);
+ fn into(self) -> Self::Associated {
+ (0_i32, [0_i32].iter().copied())
+ }
+}
+
+fn main() {}