rust/tests/ui/borrowck/issue-62387-suggest-iter-mut-2.rs

37 lines
770 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().flat_map(|container| container.things()).cloned().collect::<Vec<PathBuf>>();
//~^ ERROR cannot borrow `*container` as mutable, as it is behind a `&` reference
unimplemented!();
}
}
fn main() {}