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
|
error[E0801]: invalid generic `self` parameter type: `R`
--> $DIR/arbitrary-self-from-method-substs-with-receiver.rs:25:42
|
LL | fn a<R: Receiver<Target=Self>>(self: R) -> u32 {
| ^
|
= note: type of `self` must not be a method generic parameter type
= help: use a concrete type such as `self`, `&self`, `&mut self`, `self: Box<Self>`, `self: Rc<Self>`, `self: Arc<Self>`, or `self: Pin<P>` (where P is one of the previous types except `Self`)
error[E0801]: invalid generic `self` parameter type: `R`
--> $DIR/arbitrary-self-from-method-substs-with-receiver.rs:29:39
|
LL | fn b<R: Deref<Target=Self>>(self: R) -> u32 {
| ^
|
= note: type of `self` must not be a method generic parameter type
= help: use a concrete type such as `self`, `&self`, `&mut self`, `self: Box<Self>`, `self: Rc<Self>`, `self: Arc<Self>`, or `self: Pin<P>` (where P is one of the previous types except `Self`)
error[E0801]: invalid generic `self` parameter type: `impl Receiver<Target = Self>`
--> $DIR/arbitrary-self-from-method-substs-with-receiver.rs:33:16
|
LL | fn c(self: impl Receiver<Target=Self>) -> u32 {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: type of `self` must not be a method generic parameter type
= help: use a concrete type such as `self`, `&self`, `&mut self`, `self: Box<Self>`, `self: Rc<Self>`, `self: Arc<Self>`, or `self: Pin<P>` (where P is one of the previous types except `Self`)
error[E0801]: invalid generic `self` parameter type: `impl Deref<Target = Self>`
--> $DIR/arbitrary-self-from-method-substs-with-receiver.rs:37:16
|
LL | fn d(self: impl Deref<Target=Self>) -> u32 {
| ^^^^^^^^^^^^^^^^^^^^^^^
|
= note: type of `self` must not be a method generic parameter type
= help: use a concrete type such as `self`, `&self`, `&mut self`, `self: Box<Self>`, `self: Rc<Self>`, `self: Arc<Self>`, or `self: Pin<P>` (where P is one of the previous types except `Self`)
error[E0308]: mismatched types
--> $DIR/arbitrary-self-from-method-substs-with-receiver.rs:51:16
|
LL | assert_eq!(foo.a::<&Foo>(), 2);
| ^^^ expected `&Foo`, found `Foo`
error[E0308]: mismatched types
--> $DIR/arbitrary-self-from-method-substs-with-receiver.rs:53:16
|
LL | assert_eq!(foo.b::<&Foo>(), 1);
| ^^^ expected `&Foo`, found `Foo`
error[E0308]: mismatched types
--> $DIR/arbitrary-self-from-method-substs-with-receiver.rs:60:16
|
LL | assert_eq!(smart_ptr.a::<&Foo>(), 2);
| ^^^^^^^^^ expected `&Foo`, found `SmartPtr<'_, Foo>`
|
= note: expected reference `&Foo`
found struct `SmartPtr<'_, Foo, >`
error[E0308]: mismatched types
--> $DIR/arbitrary-self-from-method-substs-with-receiver.rs:62:16
|
LL | assert_eq!(smart_ptr.b::<&Foo>(), 1);
| ^^^^^^^^^ expected `&Foo`, found `SmartPtr<'_, Foo>`
|
= note: expected reference `&Foo`
found struct `SmartPtr<'_, Foo, >`
error: aborting due to 8 previous errors
Some errors have detailed explanations: E0308, E0801.
For more information about an error, try `rustc --explain E0308`.
|