error[E0308]: mismatched types --> $DIR/issue-66312.rs:9:8 | LL | if x.is_some() { | ^^^^^^^^^^^ expected `bool`, found `()` error[E0307]: invalid `self` parameter type: T --> $DIR/issue-66312.rs:4:22 | LL | fn is_some(self: T); | ^ | = 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: aborting due to 2 previous errors Some errors have detailed explanations: E0307, E0308. For more information about an error, try `rustc --explain E0307`.