error[E0599]: the method `insert` exists for struct `HashSet`, but its trait bounds were not satisfied --> $DIR/issue-91550.rs:8:8 | LL | struct Value(u32); | ------------ | | | doesn't satisfy `Value: Eq` | doesn't satisfy `Value: Hash` ... LL | hs.insert(Value(0)); | ^^^^^^ | = note: the following trait bounds were not satisfied: `Value: Eq` `Value: Hash` help: consider annotating `Value` with `#[derive(Eq, Hash, PartialEq)]` | LL | #[derive(Eq, Hash, PartialEq)] | error[E0599]: the method `use_eq` exists for struct `Object`, but its trait bounds were not satisfied --> $DIR/issue-91550.rs:26:9 | LL | pub struct NoDerives; | -------------------- doesn't satisfy `NoDerives: Eq` LL | LL | struct Object(T); | ---------------- method `use_eq` not found for this struct ... LL | foo.use_eq(); | ^^^^^^ method cannot be called on `Object` due to unsatisfied trait bounds | note: trait bound `NoDerives: Eq` was not satisfied --> $DIR/issue-91550.rs:15:9 | LL | impl Object { | ^^ --------- | | | unsatisfied trait bound introduced here help: consider annotating `NoDerives` with `#[derive(Eq, PartialEq)]` | LL | #[derive(Eq, PartialEq)] | error[E0599]: the method `use_ord` exists for struct `Object`, but its trait bounds were not satisfied --> $DIR/issue-91550.rs:27:9 | LL | pub struct NoDerives; | -------------------- doesn't satisfy `NoDerives: Ord` LL | LL | struct Object(T); | ---------------- method `use_ord` not found for this struct ... LL | foo.use_ord(); | ^^^^^^^ method cannot be called on `Object` due to unsatisfied trait bounds | note: trait bound `NoDerives: Ord` was not satisfied --> $DIR/issue-91550.rs:18:9 | LL | impl Object { | ^^^ --------- | | | unsatisfied trait bound introduced here help: consider annotating `NoDerives` with `#[derive(Eq, Ord, PartialEq, PartialOrd)]` | LL | #[derive(Eq, Ord, PartialEq, PartialOrd)] | error[E0599]: the method `use_ord_and_partial_ord` exists for struct `Object`, but its trait bounds were not satisfied --> $DIR/issue-91550.rs:28:9 | LL | pub struct NoDerives; | -------------------- | | | doesn't satisfy `NoDerives: Ord` | doesn't satisfy `NoDerives: PartialOrd` LL | LL | struct Object(T); | ---------------- method `use_ord_and_partial_ord` not found for this struct ... LL | foo.use_ord_and_partial_ord(); | ^^^^^^^^^^^^^^^^^^^^^^^ method cannot be called on `Object` due to unsatisfied trait bounds | note: trait bound `NoDerives: Ord` was not satisfied --> $DIR/issue-91550.rs:21:9 | LL | impl Object { | ^^^ --------- | | | unsatisfied trait bound introduced here note: trait bound `NoDerives: PartialOrd` was not satisfied --> $DIR/issue-91550.rs:21:15 | LL | impl Object { | ^^^^^^^^^^ --------- | | | unsatisfied trait bound introduced here help: consider annotating `NoDerives` with `#[derive(Eq, Ord, PartialEq, PartialOrd)]` | LL | #[derive(Eq, Ord, PartialEq, PartialOrd)] | error: aborting due to 4 previous errors For more information about this error, try `rustc --explain E0599`.