Skip to content

Commit 14c60e2

Browse files
eranfuLuthaf
eranfu
authored andcommitted
Fix the access of extend.
1 parent 1dd26e9 commit 14c60e2

File tree

3 files changed

+19
-5
lines changed

3 files changed

+19
-5
lines changed

soa-derive-internal/src/iter.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ pub fn derive(input: &Input) -> TokenStream {
293293
where #( for<'b> #fields_types: Clone, )*
294294
{
295295
fn extend<I: IntoIterator<Item = #ref_name<'a>>>(&mut self, iter: I) {
296-
self.extend(iter.into_iter().map(|item| item.to_owned()))
296+
<Self as Extend<#name>>::extend(self, iter.into_iter().map(|item| item.to_owned()))
297297
}
298298
}
299299

tests/iter.rs

+11-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#![allow(clippy::float_cmp)]
22

33
mod particles;
4-
use self::particles::{Particle, ParticleVec};
4+
use self::particles::*;
55

66
#[test]
77
fn iter() {
@@ -81,7 +81,15 @@ fn extend() {
8181
let particles_from_iter: ParticleVec = vec_with_particles.clone().into_iter().collect();
8282

8383
let mut particles = ParticleVec::new();
84-
particles.extend(vec_with_particles);
84+
Extend::<Particle>::extend(&mut particles, vec_with_particles);
8585

86-
assert_eq!(particles, particles_from_iter)
86+
assert_eq!(particles, particles_from_iter);
87+
88+
let mut particles = ParticleVec::new();
89+
Extend::<ParticleRef>::extend(&mut particles, particles_from_iter.iter());
90+
assert_eq!(particles, particles_from_iter);
91+
92+
let mut particles = ParticleVec::new();
93+
particles.extend(&particles_from_iter);
94+
assert_eq!(particles, particles_from_iter);
8795
}

tests/particles/mod.rs

+7-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@ impl Particle {
1818
}
1919
}
2020

21+
impl ParticleVec {
22+
pub fn extend(&mut self, other: &ParticleVec) {
23+
self.name.extend_from_slice(&other.name);
24+
self.mass.extend_from_slice(&other.mass);
25+
}
26+
}
2127

2228
mod impls {
2329
use std::cmp::Ordering;
@@ -111,4 +117,4 @@ mod impls {
111117
assert_eq!(pv.first().unwrap().name, "baz");
112118

113119
}
114-
}
120+
}

0 commit comments

Comments
 (0)