From b36a206a303e02dd55996f2c709cc36f69c99ff4 Mon Sep 17 00:00:00 2001 From: Mazdak Farrokhzad Date: Mon, 9 Sep 2019 02:05:54 +0200 Subject: [PATCH] joined_uncovered_patterns: use slice pats & eta-reduce. --- src/librustc_mir/hair/pattern/check_match.rs | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/librustc_mir/hair/pattern/check_match.rs b/src/librustc_mir/hair/pattern/check_match.rs index 245e7534add..a2ca53a9a3f 100644 --- a/src/librustc_mir/hair/pattern/check_match.rs +++ b/src/librustc_mir/hair/pattern/check_match.rs @@ -489,17 +489,16 @@ fn check_exhaustive<'tcx>( fn joined_uncovered_patterns(witnesses: &[&Pattern<'_>]) -> String { const LIMIT: usize = 3; - match witnesses.len() { - 0 => bug!(), - 1 => format!("`{}`", witnesses[0]), - 2..=LIMIT => { - let (tail, head) = witnesses.split_last().unwrap(); - let head: Vec<_> = head.iter().map(|w| w.to_string()).collect(); + match witnesses { + [] => bug!(), + [witness] => format!("`{}`", witness), + [head @ .., tail] if head.len() < LIMIT => { + let head: Vec<_> = head.iter().map(<_>::to_string).collect(); format!("`{}` and `{}`", head.join("`, `"), tail) } _ => { let (head, tail) = witnesses.split_at(LIMIT); - let head: Vec<_> = head.iter().map(|w| w.to_string()).collect(); + let head: Vec<_> = head.iter().map(<_>::to_string).collect(); format!("`{}` and {} more", head.join("`, `"), tail.len()) } }