error[E0599]: the method `foo` exists for reference `&Foo`, but its trait bounds were not satisfied --> $DIR/missing-trait-bounds-for-method-call.rs:14:14 | LL | struct Foo { | ------------- doesn't satisfy `Foo: Bar` ... LL | self.foo(); | ^^^ method cannot be called on `&Foo` due to unsatisfied trait bounds | note: the following trait bounds were not satisfied: `T: Bar` `T: Default` --> $DIR/missing-trait-bounds-for-method-call.rs:10:9 | LL | impl Bar for Foo {} | ^^^^^^^ ^^^ --- ------ | | | | | unsatisfied trait bound introduced here | unsatisfied trait bound introduced here help: consider restricting the type parameters to satisfy the trait bounds | LL | struct Foo where T: Bar, T: Default { | ++++++++++++++++++++++++ error[E0599]: the method `foo` exists for reference `&Fin`, but its trait bounds were not satisfied --> $DIR/missing-trait-bounds-for-method-call.rs:27:14 | LL | struct Fin where T: Bar { | ------------- doesn't satisfy `Fin: Bar` ... LL | self.foo(); | ^^^ method cannot be called on `&Fin` due to unsatisfied trait bounds | note: trait bound `T: Default` was not satisfied --> $DIR/missing-trait-bounds-for-method-call.rs:23:9 | LL | impl Bar for Fin {} | ^^^^^^^ --- ------ | | | unsatisfied trait bound introduced here help: consider restricting the type parameter to satisfy the trait bound | LL | struct Fin where T: Bar, T: Default { | ++++++++++++ error: aborting due to 2 previous errors For more information about this error, try `rustc --explain E0599`.