diff --git a/src/lib.rs b/src/lib.rs index 8689b75..3259774 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -184,18 +184,20 @@ use core::mem::ManuallyDrop; macro_rules! smallvec { // count helper: transform any expression into 1 (@one $x:expr) => (1usize); + () => ( + $crate::SmallVec::new() + ); ($elem:expr; $n:expr) => ({ $crate::SmallVec::from_elem($elem, $n) }); - ($($x:expr),*$(,)*) => ({ - let count = 0usize $(+ $crate::smallvec!(@one $x))*; - #[allow(unused_mut)] + ($($x:expr),+$(,)?) => ({ + let count = 0usize $(+ $crate::smallvec!(@one $x))+; let mut vec = $crate::SmallVec::new(); if count <= vec.inline_size() { $(vec.push($x);)* vec } else { - $crate::SmallVec::from_vec($crate::alloc::vec![$($x,)*]) + $crate::SmallVec::from_vec($crate::alloc::vec![$($x,)+]) } }); }