We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent a3f519d commit 9169934Copy full SHA for 9169934
src/librustc_data_structures/small_vec.rs
@@ -169,10 +169,18 @@ impl<A: Array> FromIterator<A::Element> for SmallVec<A> {
169
170
impl<A: Array> Extend<A::Element> for SmallVec<A> {
171
fn extend<I: IntoIterator<Item=A::Element>>(&mut self, iter: I) {
172
- let iter = iter.into_iter();
173
- self.reserve(iter.size_hint().0);
174
- for el in iter {
175
- self.push(el);
+ if self.is_array() {
+ let iter = iter.into_iter();
+ self.reserve(iter.size_hint().0);
+
176
+ for el in iter {
177
+ self.push(el);
178
+ }
179
+ } else {
180
+ match self.0 {
181
+ AccumulateVec::Heap(ref mut vec) => vec.extend(iter),
182
+ _ => unreachable!()
183
184
}
185
186
0 commit comments