struct MutType; pub trait MutTrait { fn function(&mut self) where Self: Sized; } impl MutTrait for MutType { fn function(&mut self) {} } struct Type; pub trait Trait { fn function(&self) where Self: Sized; } impl Trait for Type { fn function(&self) {} } fn main() { (&MutType as &dyn MutTrait).function(); //~^ ERROR the `function` method cannot be invoked on `&dyn MutTrait` //~| HELP you need `&mut dyn MutTrait` instead of `&dyn MutTrait` (&mut Type as &mut dyn Trait).function(); //~^ ERROR the `function` method cannot be invoked on `&mut dyn Trait` //~| HELP you need `&dyn Trait` instead of `&mut dyn Trait` }