summaryrefslogtreecommitdiffstats
path: root/src/test/ui/generic-associated-types/issue-93141.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/generic-associated-types/issue-93141.rs')
-rw-r--r--src/test/ui/generic-associated-types/issue-93141.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/test/ui/generic-associated-types/issue-93141.rs b/src/test/ui/generic-associated-types/issue-93141.rs
new file mode 100644
index 000000000..39ca77d13
--- /dev/null
+++ b/src/test/ui/generic-associated-types/issue-93141.rs
@@ -0,0 +1,25 @@
+// check-pass
+
+#![feature(generic_associated_types)]
+
+pub trait Fooey: Sized {
+ type Context<'c> where Self: 'c;
+}
+
+pub struct Handle<E: Fooey>(Option<Box<dyn for<'c> Fn(&mut E::Context<'c>)>>);
+
+fn tuple<T>() -> (Option<T>,) { (Option::None,) }
+
+pub struct FooImpl {}
+impl Fooey for FooImpl {
+ type Context<'c> = &'c ();
+}
+
+impl FooImpl {
+ pub fn fail1() -> Handle<Self> {
+ let (tx,) = tuple();
+ Handle(tx)
+ }
+}
+
+fn main() {}