File: method-on-unbounded-type-param.stderr

package info (click to toggle)
rustc 1.85.0%2Bdfsg3-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental, sid, trixie
  • size: 893,396 kB
  • sloc: xml: 158,127; python: 35,830; javascript: 19,497; cpp: 19,002; sh: 17,245; ansic: 13,127; asm: 4,376; makefile: 1,051; perl: 29; lisp: 29; ruby: 19; sql: 11
file content (84 lines) | stat: -rw-r--r-- 3,672 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
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: `Ord`
   = note: the trait `Iterator` defines an item `cmp`, but is explicitly unimplemented

error: aborting due to 4 previous errors

For more information about this error, try `rustc --explain E0599`.