summaryrefslogtreecommitdiffstats
path: root/src/test/ui/generic-associated-types/issue-95305.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/generic-associated-types/issue-95305.rs')
-rw-r--r--src/test/ui/generic-associated-types/issue-95305.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/test/ui/generic-associated-types/issue-95305.rs b/src/test/ui/generic-associated-types/issue-95305.rs
new file mode 100644
index 000000000..e2f1710fa
--- /dev/null
+++ b/src/test/ui/generic-associated-types/issue-95305.rs
@@ -0,0 +1,20 @@
+// It's not yet clear how '_ and GATs should interact.
+// Forbid it for now but proper support might be added
+// at some point in the future.
+
+#![feature(generic_associated_types)]
+#![feature(anonymous_lifetime_in_impl_trait)]
+trait Foo {
+ type Item<'a>;
+}
+
+fn foo(x: &impl Foo<Item<'_> = u32>) { }
+ //~^ ERROR `'_` cannot be used here [E0637]
+
+// Ok: the anonymous lifetime is bound to the function.
+fn bar(x: &impl for<'a> Foo<Item<'a> = &'_ u32>) { }
+
+// Ok: the anonymous lifetime is bound to the function.
+fn baz(x: &impl for<'a> Foo<Item<'a> = &u32>) { }
+
+fn main() {}