37 lines
775 B
Rust
37 lines
775 B
Rust
|
//@ 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() {}
|