// Make sure the generated suggestion suggest editing the user code instead of // the macro implementation (which might come from an external crate). // issue: //@ run-rustfix #![allow(dead_code)] // You could assume that this comes from an extern crate (it doesn't // because an aux crate would be overkill for this test). macro_rules! perform { ($e:expr) => { D(&$e).end() } } //~^ ERROR does not live long enough //~| ERROR does not live long enough fn main() { { let l = (); perform!(l) }; //~^ SUGGESTION ; let _x = { let l = (); perform!(l) }; //~^ SUGGESTION let x } struct D(T); impl Drop for D { fn drop(&mut self) {} } impl D { fn end(&self) -> String { String::new() } }