error[E0038]: the trait `IFoo` cannot be made into an object --> span-no-self-error.rs:9:7 | 9 | trait IFoo { | ^^^^ `IFoo` cannot be made into an object | note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit --> span-no-self-error.rs:10:8 | 9 | trait IFoo { | ---- this trait cannot be made into an object... 10 | fn arg_type(); | ^^^^^^^^ ...because associated function `arg_type` has no `self` parameter help: consider turning `arg_type` into a method by giving it a `&self` argument | 10 | fn arg_type(&self); | +++++ help: alternatively, consider constraining `arg_type` so it does not apply to trait objects | 10 | fn arg_type() where Self: Sized; | +++++++++++++++++ error: aborting due to previous error For more information about this error, try `rustc --explain E0038`.