| error[E0599]: no method named `cmp` found for type parameter `T` in the current scope |
| --> $DIR/method-on-unbounded-type-param.rs:2:7 |
| | |
| LL | fn f<T>(a: T, b: T) -> std::cmp::Ordering { |
| | - method `cmp` not found for this type parameter |
| LL | a.cmp(&b) |
| | ^^^ method cannot be called on `T` due to unsatisfied trait bounds |
| | |
| = help: items from traits can only be used if the type parameter is bounded by the trait |
| help: the following traits define an item `cmp`, perhaps you need to restrict type parameter `T` with one of them: |
| | |
| LL | fn f<T: Iterator>(a: T, b: T) -> std::cmp::Ordering { |
| | ++++++++++ |
| LL | fn f<T: Ord>(a: T, b: T) -> std::cmp::Ordering { |
| | +++++ |
| |
| error[E0599]: the method `cmp` exists for reference `&T`, but its trait bounds were not satisfied |
| --> $DIR/method-on-unbounded-type-param.rs:5:10 |
| | |
| LL | (&a).cmp(&b) |
| | ^^^ method cannot be called on `&T` due to unsatisfied trait bounds |
| | |
| = note: the following trait bounds were not satisfied: |
| `T: Ord` |
| which is required by `&T: Ord` |
| `&T: Iterator` |
| which is required by `&mut &T: Iterator` |
| `T: Iterator` |
| which is required by `&mut T: Iterator` |
| = help: items from traits can only be used if the type parameter is bounded by the trait |
| help: the following traits define an item `cmp`, perhaps you need to restrict type parameter `T` with one of them: |
| | |
| LL | fn g<T: Iterator>(a: T, b: T) -> std::cmp::Ordering { |
| | ++++++++++ |
| LL | fn g<T: Ord>(a: T, b: T) -> std::cmp::Ordering { |
| | +++++ |
| |
| error[E0599]: the method `cmp` exists for reference `&T`, but its trait bounds were not satisfied |
| --> $DIR/method-on-unbounded-type-param.rs:8:7 |
| | |
| LL | a.cmp(&b) |
| | ^^^ method cannot be called on `&T` due to unsatisfied trait bounds |
| | |
| = note: the following trait bounds were not satisfied: |
| `T: Ord` |
| which is required by `&T: Ord` |
| `&T: Iterator` |
| which is required by `&mut &T: Iterator` |
| `T: Iterator` |
| which is required by `&mut T: Iterator` |
| = help: items from traits can only be used if the type parameter is bounded by the trait |
| help: the following traits define an item `cmp`, perhaps you need to restrict type parameter `T` with one of them: |
| | |
| LL | fn h<T: Iterator>(a: &T, b: T) -> std::cmp::Ordering { |
| | ++++++++++ |
| LL | fn h<T: Ord>(a: &T, b: T) -> std::cmp::Ordering { |
| | +++++ |
| |
| error[E0599]: the method `cmp` exists for struct `Box<dyn T>`, but its trait bounds were not satisfied |
| --> $DIR/method-on-unbounded-type-param.rs:14:7 |
| | |
| LL | trait T {} |
| | ------- doesn't satisfy `dyn T: Iterator` or `dyn T: Ord` |
| ... |
| LL | x.cmp(&x); |
| | ^^^ method cannot be called on `Box<dyn T>` due to unsatisfied trait bounds |
| | |
| = note: the following trait bounds were not satisfied: |
| `dyn T: Iterator` |
| which is required by `Box<dyn T>: Iterator` |
| `dyn T: Ord` |
| which is required by `Box<dyn T>: Ord` |
| `Box<dyn T>: Iterator` |
| which is required by `&mut Box<dyn T>: Iterator` |
| `dyn T: Iterator` |
| which is required by `&mut dyn T: Iterator` |
| = help: items from traits can only be used if the trait is implemented and in scope |
| = note: the following traits define an item `cmp`, perhaps you need to implement one of them: |
| candidate #1: `Iterator` |
| candidate #2: `Ord` |
| |
| error: aborting due to 4 previous errors |
| |
| For more information about this error, try `rustc --explain E0599`. |