pub struct Stuff { | |
inner: *mut (), | |
} | |
pub struct Wrap<T>(T); | |
fn fun<T>(t: T) -> Wrap<T> { | |
todo!() | |
} | |
pub trait Trait<'de> { | |
fn do_stuff(_: Wrap<&'de mut Self>); | |
} | |
impl<'a> Trait<'a> for () { | |
fn do_stuff(_: Wrap<&'a mut Self>) {} | |
} | |
fn fun2(t: &mut Stuff) -> () { | |
let Stuff { inner, .. } = t; | |
Trait::do_stuff({ fun(&mut *inner) }); | |
//~^ ERROR the trait bound `*mut (): Trait<'_>` is not satisfied | |
} | |
fn main() {} |