mirror of https://github.com/rust-lang/rust.git
169 lines
8.4 KiB
Plaintext
169 lines
8.4 KiB
Plaintext
error[E0801]: invalid generic `self` parameter type: `R`
|
|
--> $DIR/arbitrary-self-from-method-substs.rs:9:43
|
|
|
|
|
LL | fn get<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: `&R`
|
|
--> $DIR/arbitrary-self-from-method-substs.rs:13:44
|
|
|
|
|
LL | fn get1<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: `&mut R`
|
|
--> $DIR/arbitrary-self-from-method-substs.rs:17:44
|
|
|
|
|
LL | fn get2<R: Deref<Target = Self>>(self: &mut 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: `Rc<R>`
|
|
--> $DIR/arbitrary-self-from-method-substs.rs:21:44
|
|
|
|
|
LL | fn get3<R: Deref<Target = Self>>(self: std::rc::Rc<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: `&Rc<R>`
|
|
--> $DIR/arbitrary-self-from-method-substs.rs:25:44
|
|
|
|
|
LL | fn get4<R: Deref<Target = Self>>(self: &std::rc::Rc<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: `Rc<&R>`
|
|
--> $DIR/arbitrary-self-from-method-substs.rs:29:44
|
|
|
|
|
LL | fn get5<R: Deref<Target = Self>>(self: std::rc::Rc<&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[E0658]: `<FR as FindReceiver>::Receiver` cannot be used as the type of `self` without the `arbitrary_self_types` feature
|
|
--> $DIR/arbitrary-self-from-method-substs.rs:33:37
|
|
|
|
|
LL | fn get6<FR: FindReceiver>(self: FR::Receiver, other: FR) -> u32 {
|
|
| ^^^^^^^^^^^^
|
|
|
|
|
= note: see issue #44874 <https://github.com/rust-lang/rust/issues/44874> for more information
|
|
= help: add `#![feature(arbitrary_self_types)]` to the crate attributes to enable
|
|
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
|
|
= help: consider changing to `self`, `&self`, `&mut self`, or a type implementing `Receiver` such as `self: Box<Self>`, `self: Rc<Self>`, or `self: Arc<Self>`
|
|
|
|
error[E0658]: `R` cannot be used as the type of `self` without the `arbitrary_self_types` feature
|
|
--> $DIR/arbitrary-self-from-method-substs.rs:61:18
|
|
|
|
|
LL | fn get(self: R) {}
|
|
| ^
|
|
|
|
|
= note: see issue #44874 <https://github.com/rust-lang/rust/issues/44874> for more information
|
|
= help: add `#![feature(arbitrary_self_types)]` to the crate attributes to enable
|
|
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
|
|
= help: consider changing to `self`, `&self`, `&mut self`, or a type implementing `Receiver` such as `self: Box<Self>`, `self: Rc<Self>`, or `self: Arc<Self>`
|
|
|
|
error[E0271]: type mismatch resolving `<Silly as FindReceiver>::Receiver == Foo`
|
|
--> $DIR/arbitrary-self-from-method-substs.rs:92:9
|
|
|
|
|
LL | foo.get6(Silly);
|
|
| ^^^^ type mismatch resolving `<Silly as FindReceiver>::Receiver == Foo`
|
|
|
|
|
note: expected this to be `Foo`
|
|
--> $DIR/arbitrary-self-from-method-substs.rs:71:21
|
|
|
|
|
LL | type Receiver = std::rc::Rc<Foo>;
|
|
| ^^^^^^^^^^^^^^^^
|
|
= note: expected struct `Foo`
|
|
found struct `Rc<Foo>`
|
|
|
|
error[E0271]: type mismatch resolving `<Silly as FindReceiver>::Receiver == &Foo`
|
|
--> $DIR/arbitrary-self-from-method-substs.rs:96:9
|
|
|
|
|
LL | foo.get6(Silly);
|
|
| ^^^^ type mismatch resolving `<Silly as FindReceiver>::Receiver == &Foo`
|
|
|
|
|
note: expected this to be `&Foo`
|
|
--> $DIR/arbitrary-self-from-method-substs.rs:71:21
|
|
|
|
|
LL | type Receiver = std::rc::Rc<Foo>;
|
|
| ^^^^^^^^^^^^^^^^
|
|
= note: expected reference `&Foo`
|
|
found struct `Rc<Foo>`
|
|
|
|
error[E0599]: the method `get` exists for struct `Rc<Bar<_>>`, but its trait bounds were not satisfied
|
|
--> $DIR/arbitrary-self-from-method-substs.rs:100:7
|
|
|
|
|
LL | struct Bar<R>(std::marker::PhantomData<R>);
|
|
| ------------- doesn't satisfy `Bar<_>: Deref`
|
|
...
|
|
LL | t.get();
|
|
| ^^^ method cannot be called on `Rc<Bar<_>>` due to unsatisfied trait bounds
|
|
|
|
|
note: the following trait bounds were not satisfied:
|
|
`<&Bar<_> as Deref>::Target = Bar<&Bar<_>>`
|
|
`<&Rc<Bar<_>> as Deref>::Target = Bar<&Rc<Bar<_>>>`
|
|
`<&mut Bar<_> as Deref>::Target = Bar<&mut Bar<_>>`
|
|
`<&mut Rc<Bar<_>> as Deref>::Target = Bar<&mut Rc<Bar<_>>>`
|
|
`<Rc<Bar<_>> as Deref>::Target = Bar<Rc<Bar<_>>>`
|
|
`Bar<_>: Deref`
|
|
--> $DIR/arbitrary-self-from-method-substs.rs:60:9
|
|
|
|
|
LL | impl<R: std::ops::Deref<Target = Self>> Bar<R> {
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ------
|
|
| | |
|
|
| | unsatisfied trait bound introduced here
|
|
| unsatisfied trait bound introduced here
|
|
note: the trait `Deref` must be implemented
|
|
--> $SRC_DIR/core/src/ops/deref.rs:LL:COL
|
|
= help: items from traits can only be used if the trait is implemented and in scope
|
|
= note: the following trait defines an item `get`, perhaps you need to implement it:
|
|
candidate #1: `SliceIndex`
|
|
|
|
error[E0599]: the method `get` exists for reference `&Rc<Bar<_>>`, but its trait bounds were not satisfied
|
|
--> $DIR/arbitrary-self-from-method-substs.rs:108:7
|
|
|
|
|
LL | struct Bar<R>(std::marker::PhantomData<R>);
|
|
| ------------- doesn't satisfy `Bar<_>: Deref`
|
|
...
|
|
LL | t.get();
|
|
| ^^^ method cannot be called on `&Rc<Bar<_>>` due to unsatisfied trait bounds
|
|
|
|
|
note: the following trait bounds were not satisfied:
|
|
`<&&Rc<Bar<_>> as Deref>::Target = Bar<&&Rc<Bar<_>>>`
|
|
`<&Bar<_> as Deref>::Target = Bar<&Bar<_>>`
|
|
`<&Rc<Bar<_>> as Deref>::Target = Bar<&Rc<Bar<_>>>`
|
|
`<&mut &Rc<Bar<_>> as Deref>::Target = Bar<&mut &Rc<Bar<_>>>`
|
|
`<&mut Bar<_> as Deref>::Target = Bar<&mut Bar<_>>`
|
|
`<&mut Rc<Bar<_>> as Deref>::Target = Bar<&mut Rc<Bar<_>>>`
|
|
`<Rc<Bar<_>> as Deref>::Target = Bar<Rc<Bar<_>>>`
|
|
`Bar<_>: Deref`
|
|
--> $DIR/arbitrary-self-from-method-substs.rs:60:9
|
|
|
|
|
LL | impl<R: std::ops::Deref<Target = Self>> Bar<R> {
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ------
|
|
| | |
|
|
| | unsatisfied trait bound introduced here
|
|
| unsatisfied trait bound introduced here
|
|
note: the trait `Deref` must be implemented
|
|
--> $SRC_DIR/core/src/ops/deref.rs:LL:COL
|
|
= help: items from traits can only be used if the trait is implemented and in scope
|
|
= note: the following trait defines an item `get`, perhaps you need to implement it:
|
|
candidate #1: `SliceIndex`
|
|
|
|
error: aborting due to 12 previous errors
|
|
|
|
Some errors have detailed explanations: E0271, E0599, E0658, E0801.
|
|
For more information about an error, try `rustc --explain E0271`.
|