//@ run-rustfix | |
#![allow(dead_code, noop_method_call)] | |
use std::ops::Deref; | |
struct S(Vec<usize>); | |
impl Deref for S { | |
type Target = Vec<usize>; | |
fn deref(&self) -> &Self::Target { | |
&self.0 | |
} | |
} | |
impl S { | |
fn foo(&self) { | |
// `self.clone()` returns `&S`, not `Vec` | |
for _ in <Vec<usize> as Clone>::clone(&self).into_iter() {} //~ ERROR cannot move out of dereference of `S` | |
} | |
} | |
fn main() {} |