From 350d92430a047a41f855c9f61d278c4476f04d78 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Mon, 8 Apr 2019 19:18:49 +0200 Subject: Circumvent https://github.com/rust-lang/rust/issues/59803 --- iter_patterns/src/lib.rs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'iter_patterns/src/lib.rs') diff --git a/iter_patterns/src/lib.rs b/iter_patterns/src/lib.rs index abd072e..657b538 100644 --- a/iter_patterns/src/lib.rs +++ b/iter_patterns/src/lib.rs @@ -1,4 +1,4 @@ -#![feature(slice_patterns, bind_by_move_pattern_guards)] +#![feature(slice_patterns)] /* Destructure an iterator using the syntax of slice_patterns. * Wraps the match body in `Some` if there was a match; returns @@ -174,11 +174,15 @@ macro_rules! match_vec { ) }; (@make_filter; $variant:ident ($x:ident).., $($rest:tt)*) => { - $x.iter() - .all(|x| match x { - $variant(_) => true, - _ => false, - }) + { + // Circumvent https://github.com/rust-lang/rust/issues/59803 + let is_all_variant = || $x.iter() + .all(|x| match x { + $variant(_) => true, + _ => false, + }); + is_all_variant() + } && $crate::match_vec!(@make_filter; $($rest)* -- cgit v1.2.3