diff --git a/src/lib.rs b/src/lib.rs index e6bc8c73..50b1d98a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -2663,23 +2663,11 @@ impl core::iter::FromIterator for SmallVec { #[macro_export] macro_rules! smallvec { - // count helper: transform any expression into 1 - (@one $x:expr) => (1usize); - () => ( - $crate::SmallVec::new() - ); ($elem:expr; $n:expr) => ({ $crate::from_elem($elem, $n) }); - ($($x:expr),+$(,)?) => ({ - const COUNT: usize = 0usize $(+ $crate::smallvec!(@one $x))+; - let mut vec = $crate::SmallVec::new(); - if COUNT <= vec.capacity() { - $(vec.push($x);)* - vec - } else { - $crate::SmallVec::from_vec($crate::alloc::vec![$($x,)+]) - } + ($($($x:expr),+$(,)?)?) => ({ + $crate::SmallVec::from([$($($x),+)?]) }); } @@ -2692,7 +2680,7 @@ macro_rules! smallvec_inline { }); ($($x:expr),+ $(,)?) => ({ const N: usize = 0usize $(+ $crate::smallvec_inline!(@one $x))*; - $crate::SmallVec::<_, N>::from_buf([$($x,)*]) + $crate::SmallVec::<_, N>::from_buf([$($x),*]) }); }