blob: f02374d8e11debf34842a3b37d24d13b12bff329 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
// run-rustfix
#![allow(unused_mut)]
#![allow(dead_code)]
use std::path::PathBuf;
#[derive(Clone)]
struct Container {
things: Vec<PathBuf>,
}
impl Container {
fn things(&mut self) -> &[PathBuf] {
&self.things
}
}
// contains containers
struct ContainerContainer {
contained: Vec<Container>,
}
impl ContainerContainer {
fn contained(&self) -> &[Container] {
&self.contained
}
fn all_the_things(&mut self) -> &[PathBuf] {
let mut vec = self.contained.clone();
let _a =
vec.iter_mut().flat_map(|container| container.things()).cloned().collect::<Vec<PathBuf>>();
//~^ ERROR cannot borrow `*container` as mutable, as it is behind a `&` reference
unimplemented!();
}
}
fn main() {}
|