about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorest31 <MTest31@outlook.com>2022-11-23 13:54:48 +0100
committerest31 <MTest31@outlook.com>2022-11-23 17:48:00 +0100
commit9abd785543710c382b99a8346a1e360aa539da13 (patch)
treed2e11acb699d1d64c98ea47693ad9b1b266d7bab /src
parent3f2b2eee8f46f2252d2919d7a57bf3068d7df285 (diff)
downloadrust-9abd785543710c382b99a8346a1e360aa539da13.tar.gz
rust-9abd785543710c382b99a8346a1e360aa539da13.zip
Add regression test for issue 99938
That issue was a dupe of 99852, but it's always better to
have multiple regression tests rather than one.
Diffstat (limited to 'src')
-rw-r--r--src/test/ui/rfc-2497-if-let-chains/issue-99938.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/test/ui/rfc-2497-if-let-chains/issue-99938.rs b/src/test/ui/rfc-2497-if-let-chains/issue-99938.rs
new file mode 100644
index 00000000000..bd81ce0b19c
--- /dev/null
+++ b/src/test/ui/rfc-2497-if-let-chains/issue-99938.rs
@@ -0,0 +1,31 @@
+// compile-flags: -Zvalidate-mir -C opt-level=3
+// build-pass
+#![feature(let_chains)]
+struct TupleIter<T, I: Iterator<Item = T>> {
+    inner: I,
+}
+
+impl<T, I: Iterator<Item = T>> Iterator for TupleIter<T, I> {
+    type Item = (T, T, T);
+
+    fn next(&mut self) -> Option<Self::Item> {
+        let inner = &mut self.inner;
+
+        if let Some(first) = inner.next()
+            && let Some(second) = inner.next()
+            && let Some(third) = inner.next()
+        {
+            Some((first, second, third))
+        } else {
+            None
+        }
+    }
+}
+
+fn main() {
+    let vec: Vec<u8> = Vec::new();
+    let mut tup_iter = TupleIter {
+        inner: vec.into_iter(),
+    };
+    tup_iter.next();
+}