error[E0599]: no function or associated item named `lol` found for trait object `dyn Foo<_>` in the current scope
  --> $DIR/unspecified-self-in-trait-ref.rs:10:18
   |
LL |     let a = Foo::lol();
   |                  ^^^ function or associated item not found in `dyn Foo<_>`

error[E0599]: no function or associated item named `lol` found for trait object `dyn Foo<_>` in the current scope
  --> $DIR/unspecified-self-in-trait-ref.rs:12:23
   |
LL |     let b = Foo::<_>::lol();
   |                       ^^^ function or associated item not found in `dyn Foo<_>`

error[E0599]: no function or associated item named `lol` found for trait object `dyn Bar<_, _>` in the current scope
  --> $DIR/unspecified-self-in-trait-ref.rs:14:18
   |
LL |     let c = Bar::lol();
   |                  ^^^ function or associated item not found in `dyn Bar<_, _>`

error[E0599]: no function or associated item named `lol` found for trait object `dyn Bar<usize, _>` in the current scope
  --> $DIR/unspecified-self-in-trait-ref.rs:16:30
   |
LL |     let d = Bar::<usize, _>::lol();
   |                              ^^^ function or associated item not found in `dyn Bar<usize, _>`

error[E0393]: the type parameter `A` must be explicitly specified
  --> $DIR/unspecified-self-in-trait-ref.rs:18:13
   |
LL | / pub trait Bar<X=usize, A=Self> {
LL | |     fn foo(&self);
LL | | }
   | |_- type parameter `A` must be specified for this
...
LL |       let e = Bar::<usize>::lol();
   |               ^^^^^^^^^^^^ missing reference to `A`
   |
   = note: because of the default `Self` reference, type parameters must be specified on object types

error: aborting due to 5 previous errors

Some errors have detailed explanations: E0393, E0599.
For more information about an error, try `rustc --explain E0393`.
