error[E0038]: the trait `Fetcher` cannot be made into an object
  --> $DIR/undispatchable-receiver-and-wc-references-Self.rs:19:21
   |
LL |     fn get<'a>(self: &'a Box<Self>) -> Pin<Box<dyn Future<Output = Vec<u8>> + 'a>>
   |                      ------------- help: consider changing method `get`'s `self` parameter to be `&self`: `&Self`
...
LL | fn fetcher() -> Box<dyn Fetcher> {
   |                     ^^^^^^^^^^^ `Fetcher` cannot be made into an object
   |
note: for a trait to be "dyn-compatible" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
  --> $DIR/undispatchable-receiver-and-wc-references-Self.rs:11:22
   |
LL | pub trait Fetcher: Send + Sync {
   |           ------- this trait cannot be made into an object...
LL |     fn get<'a>(self: &'a Box<Self>) -> Pin<Box<dyn Future<Output = Vec<u8>> + 'a>>
   |                      ^^^^^^^^^^^^^ ...because method `get`'s `self` parameter cannot be dispatched on

error[E0038]: the trait `Fetcher` cannot be made into an object
  --> $DIR/undispatchable-receiver-and-wc-references-Self.rs:25:19
   |
LL |     fn get<'a>(self: &'a Box<Self>) -> Pin<Box<dyn Future<Output = Vec<u8>> + 'a>>
   |                      ------------- help: consider changing method `get`'s `self` parameter to be `&self`: `&Self`
...
LL |     let fetcher = fetcher();
   |                   ^^^^^^^^^ `Fetcher` cannot be made into an object
   |
note: for a trait to be "dyn-compatible" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
  --> $DIR/undispatchable-receiver-and-wc-references-Self.rs:11:22
   |
LL | pub trait Fetcher: Send + Sync {
   |           ------- this trait cannot be made into an object...
LL |     fn get<'a>(self: &'a Box<Self>) -> Pin<Box<dyn Future<Output = Vec<u8>> + 'a>>
   |                      ^^^^^^^^^^^^^ ...because method `get`'s `self` parameter cannot be dispatched on

error[E0038]: the trait `Fetcher` cannot be made into an object
  --> $DIR/undispatchable-receiver-and-wc-references-Self.rs:27:13
   |
LL |     fn get<'a>(self: &'a Box<Self>) -> Pin<Box<dyn Future<Output = Vec<u8>> + 'a>>
   |                      ------------- help: consider changing method `get`'s `self` parameter to be `&self`: `&Self`
...
LL |     let _ = fetcher.get();
   |             ^^^^^^^^^^^^^ `Fetcher` cannot be made into an object
   |
note: for a trait to be "dyn-compatible" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
  --> $DIR/undispatchable-receiver-and-wc-references-Self.rs:11:22
   |
LL | pub trait Fetcher: Send + Sync {
   |           ------- this trait cannot be made into an object...
LL |     fn get<'a>(self: &'a Box<Self>) -> Pin<Box<dyn Future<Output = Vec<u8>> + 'a>>
   |                      ^^^^^^^^^^^^^ ...because method `get`'s `self` parameter cannot be dispatched on

error: aborting due to 3 previous errors

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