Rollup merge of #104771 - est31:if_let_chain_broken_mir_test, r=davidtwco

Add regression test for issue #99938

That issue was a dupe of #99852, and it got fixed since, but it's always better to have multiple regression tests rather than one.

closes #99938
This commit is contained in:
Matthias Krüger 2022-11-24 08:42:35 +01:00 committed by GitHub
commit 84ff4ab5a2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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();
}