summaryrefslogtreecommitdiffstats
path: root/tests/ui/nll/closure-requirements/type-test-subject-opaque-1.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/nll/closure-requirements/type-test-subject-opaque-1.rs')
-rw-r--r--tests/ui/nll/closure-requirements/type-test-subject-opaque-1.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/ui/nll/closure-requirements/type-test-subject-opaque-1.rs b/tests/ui/nll/closure-requirements/type-test-subject-opaque-1.rs
new file mode 100644
index 000000000..fce6f2fee
--- /dev/null
+++ b/tests/ui/nll/closure-requirements/type-test-subject-opaque-1.rs
@@ -0,0 +1,18 @@
+// Regression test for #107426.
+// check-pass
+
+use std::marker::PhantomData;
+#[derive(Clone, Copy)]
+pub struct Scope<'a>(&'a PhantomData<&'a mut &'a ()>);
+fn event<'a, F: FnMut() + 'a>(_: Scope<'a>, _: F) {}
+fn make_fn<'a>(_: Scope<'a>) -> impl Fn() + Copy + 'a {
+ || {}
+}
+
+fn foo(cx: Scope) {
+ let open_toggle = make_fn(cx);
+
+ || event(cx, open_toggle);
+}
+
+fn main() {}