// run-rustfix #![warn(clippy::match_single_binding)] #![allow(unused_variables)] fn main() { // Lint (additional curly braces needed, see #6572) struct AppendIter where I: Iterator, { inner: Option<(I, ::Item)>, } #[allow(dead_code)] fn size_hint(iter: &AppendIter) -> (usize, Option) { match &iter.inner { Some((iter, _item)) => { let (min, max) = iter.size_hint(); (min.saturating_add(1), max.and_then(|max| max.checked_add(1))) }, None => (0, Some(0)), } } // Lint (no additional curly braces needed) let opt = Some((5, 2)); let get_tup = || -> (i32, i32) { (1, 2) }; match opt { #[rustfmt::skip] Some((first, _second)) => { let (a, b) = get_tup(); println!("a {:?} and b {:?}", a, b); }, None => println!("nothing"), } fn side_effects() {} // Lint (scrutinee has side effects) // issue #7094 side_effects(); println!("Side effects"); // Lint (scrutinee has side effects) // issue #7094 let x = 1; match x { 0 => 1, _ => 2, }; println!("Single branch"); }