error[E0308]: mismatched types --> $DIR/ice-issue-122550.rs:5:35 | LL | fn description(&self) -> &str {} | ^^ expected `&str`, found `()` error[E0277]: the trait bound `S: Trait` is not satisfied --> $DIR/ice-issue-122550.rs:13:12 | LL | reuse ::description { &self.0 } | ^ the trait `Trait` is not implemented for `S` | help: this trait has no implementations, consider adding one --> $DIR/ice-issue-122550.rs:4:1 | LL | trait Trait { | ^^^^^^^^^^^ error[E0308]: mismatched types --> $DIR/ice-issue-122550.rs:13:39 | LL | reuse ::description { &self.0 } | ----------- ^^^^^^^ expected `&S`, found `&F` | | | arguments to this function are incorrect | = note: expected reference `&S` found reference `&F` note: method defined here --> $DIR/ice-issue-122550.rs:5:8 | LL | fn description(&self) -> &str {} | ^^^^^^^^^^^ ----- error: aborting due to 3 previous errors Some errors have detailed explanations: E0277, E0308. For more information about an error, try `rustc --explain E0277`.