about summary refs log tree commit diff
path: root/tests/ui/impl-trait/no-anonymize-regions.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/impl-trait/no-anonymize-regions.rs')
-rw-r--r--tests/ui/impl-trait/no-anonymize-regions.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/ui/impl-trait/no-anonymize-regions.rs b/tests/ui/impl-trait/no-anonymize-regions.rs
new file mode 100644
index 00000000000..4f7f7c0641c
--- /dev/null
+++ b/tests/ui/impl-trait/no-anonymize-regions.rs
@@ -0,0 +1,18 @@
+//@ check-pass
+// FIXME(-Znext-solver): enable this test
+
+// A regression test for an error in `redis` while working on #139587.
+//
+// We check for structural equality when adding defining uses of opaques.
+// In this test one defining use had anonymized regions while the other
+// one did not, causing an error.
+struct W<T>(T);
+fn constrain<F: FnOnce(T) -> R, T, R>(f: F) -> R {
+    loop {}
+}
+fn foo<'a>(x: for<'b> fn(&'b ())) -> impl Sized + use<'a> {
+    let mut r = constrain(foo::<'_>);
+    r = W(x);
+    r
+}
+fn main() {}