error[E0801]: invalid generic `self` parameter type: `R` --> $DIR/arbitrary-self-from-method-substs.rs:9:43 | LL | fn get>(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: Rc`, `self: Arc`, or `self: Pin

` (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>(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: Rc`, `self: Arc`, or `self: Pin

` (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>(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: Rc`, `self: Arc`, or `self: Pin

` (where P is one of the previous types except `Self`) error[E0801]: invalid generic `self` parameter type: `Rc` --> $DIR/arbitrary-self-from-method-substs.rs:21:44 | LL | fn get3>(self: std::rc::Rc) -> 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: Rc`, `self: Arc`, or `self: Pin

` (where P is one of the previous types except `Self`) error[E0801]: invalid generic `self` parameter type: `&Rc` --> $DIR/arbitrary-self-from-method-substs.rs:25:44 | LL | fn get4>(self: &std::rc::Rc) -> 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: Rc`, `self: Arc`, or `self: Pin

` (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>(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: Rc`, `self: Arc`, or `self: Pin

` (where P is one of the previous types except `Self`) error[E0658]: `::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(self: FR::Receiver, other: FR) -> u32 { | ^^^^^^^^^^^^ | = note: see issue #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: Rc`, or `self: Arc` 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 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: Rc`, or `self: Arc` error[E0271]: type mismatch resolving `::Receiver == Foo` --> $DIR/arbitrary-self-from-method-substs.rs:92:9 | LL | foo.get6(Silly); | ^^^^ type mismatch resolving `::Receiver == Foo` | note: expected this to be `Foo` --> $DIR/arbitrary-self-from-method-substs.rs:71:21 | LL | type Receiver = std::rc::Rc; | ^^^^^^^^^^^^^^^^ = note: expected struct `Foo` found struct `Rc` error[E0271]: type mismatch resolving `::Receiver == &Foo` --> $DIR/arbitrary-self-from-method-substs.rs:96:9 | LL | foo.get6(Silly); | ^^^^ type mismatch resolving `::Receiver == &Foo` | note: expected this to be `&Foo` --> $DIR/arbitrary-self-from-method-substs.rs:71:21 | LL | type Receiver = std::rc::Rc; | ^^^^^^^^^^^^^^^^ = note: expected reference `&Foo` found struct `Rc` error[E0599]: the method `get` exists for struct `Rc>`, but its trait bounds were not satisfied --> $DIR/arbitrary-self-from-method-substs.rs:100:7 | LL | struct Bar(std::marker::PhantomData); | ------------- doesn't satisfy `Bar<_>: Deref` ... LL | t.get(); | ^^^ method cannot be called on `Rc>` due to unsatisfied trait bounds | note: the following trait bounds were not satisfied: `<&Bar<_> as Deref>::Target = Bar<&Bar<_>>` `<&Rc> as Deref>::Target = Bar<&Rc>>` `<&mut Bar<_> as Deref>::Target = Bar<&mut Bar<_>>` `<&mut Rc> as Deref>::Target = Bar<&mut Rc>>` `> as Deref>::Target = Bar>>` `Bar<_>: Deref` --> $DIR/arbitrary-self-from-method-substs.rs:60:9 | LL | impl> Bar { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ------ | | | | | 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>`, but its trait bounds were not satisfied --> $DIR/arbitrary-self-from-method-substs.rs:108:7 | LL | struct Bar(std::marker::PhantomData); | ------------- doesn't satisfy `Bar<_>: Deref` ... LL | t.get(); | ^^^ method cannot be called on `&Rc>` due to unsatisfied trait bounds | note: the following trait bounds were not satisfied: `<&&Rc> as Deref>::Target = Bar<&&Rc>>` `<&Bar<_> as Deref>::Target = Bar<&Bar<_>>` `<&Rc> as Deref>::Target = Bar<&Rc>>` `<&mut &Rc> as Deref>::Target = Bar<&mut &Rc>>` `<&mut Bar<_> as Deref>::Target = Bar<&mut Bar<_>>` `<&mut Rc> as Deref>::Target = Bar<&mut Rc>>` `> as Deref>::Target = Bar>>` `Bar<_>: Deref` --> $DIR/arbitrary-self-from-method-substs.rs:60:9 | LL | impl> Bar { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ------ | | | | | 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`.