// run-rustfix pub trait Foo { fn zero(self) -> Self; } impl Foo for u32 { fn zero(self) -> u32 { 0u32 } } pub mod bar { pub use Foo; pub fn bar(x: T) -> T { x.zero() } } mod baz { use bar; use Foo; pub fn baz(x: T) -> T { if 0 == 1 { bar::bar(x.zero()) } else { x.zero() }; x.zero() //~^ ERROR use of moved value } } fn main() { let _ = baz::baz(0u32); }