Actual error is in the line before the last one: let x4: Vec<f64> = x3.collect();
but compiler blames the last one, where it makes no sense, because I have specified explicitly type of x4
. Is this a bug in type resolver?
fn main() {
let v = vec![1_f64, 2.2_f64];
let mut fft: Vec<Vec<f64>> = vec![];
let x1: &[f64] = &v;
let x2 = x1.into_iter();
let x3 = x2.rev();
let x4: Vec<f64> = x3.collect(); // <-- mistake is here
fft.push(x4); // <-- but error blames this line
}
--> src/main.rs:9:14
|
9 | fft.push(x4);
| ^^ a collection of type `std::vec::Vec<f64>` cannot be built from `std::iter::Iterator<Item=&f64>`
And while we are on this, what is idiomatic way to copy slice in reverse order into vector?