summaryrefslogtreecommitdiffstats
path: root/src/test/ui/nll/issue-52078.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/nll/issue-52078.rs')
-rw-r--r--src/test/ui/nll/issue-52078.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/test/ui/nll/issue-52078.rs b/src/test/ui/nll/issue-52078.rs
new file mode 100644
index 000000000..a2bcb91ac
--- /dev/null
+++ b/src/test/ui/nll/issue-52078.rs
@@ -0,0 +1,24 @@
+// Regression test for #52078: we were failing to infer a relationship
+// between `'a` and `'b` below due to inference variables introduced
+// during the normalization process.
+//
+// check-pass
+
+struct Drain<'a, T: 'a> {
+ _marker: ::std::marker::PhantomData<&'a T>,
+}
+
+trait Join {
+ type Value;
+ fn get(value: &mut Self::Value);
+}
+
+impl<'a, T> Join for Drain<'a, T> {
+ type Value = &'a mut Option<T>;
+
+ fn get<'b>(value: &'b mut Self::Value) {
+ }
+}
+
+fn main() {
+}