error[E0307]: invalid `self` parameter type: `Bar` --> $DIR/arbitrary-self-opaque.rs:8:18 | LL | fn foo(self: Bar) {} | ^^^ | = note: type of `self` must be `Self` or a type that dereferences to it = help: consider changing to `self`, `&self`, `&mut self`, `self: Box`, `self: Rc`, `self: Arc`, or `self: Pin

` (where P is one of the previous types except `Self`) error: item does not constrain `Bar::{opaque#0}`, but has it in its signature --> $DIR/arbitrary-self-opaque.rs:8:8 | LL | fn foo(self: Bar) {} | ^^^ | = note: consider moving the opaque type's declaration and defining uses into a separate module note: this opaque type is in the signature --> $DIR/arbitrary-self-opaque.rs:4:12 | LL | type Bar = impl Sized; | ^^^^^^^^^^ error: unconstrained opaque type --> $DIR/arbitrary-self-opaque.rs:4:12 | LL | type Bar = impl Sized; | ^^^^^^^^^^ | = note: `Bar` must be used in combination with a concrete type within the same module error: aborting due to 3 previous errors For more information about this error, try `rustc --explain E0307`.