warning: the feature `unsized_locals` is incomplete and may not be safe to use and/or cause compiler crashes
  --> $DIR/method-deref-to-same-trait-object-with-separate-params.rs:2:12
   |
LL | #![feature(unsized_locals, unsized_fn_params)]
   |            ^^^^^^^^^^^^^^
   |
   = note: see issue #48055 <https://github.com/rust-lang/rust/issues/48055> for more information
   = note: `#[warn(incomplete_features)]` on by default

error[E0308]: mismatched types
  --> $DIR/method-deref-to-same-trait-object-with-separate-params.rs:87:24
   |
LL |     let _seetype: () = z;
   |                   --   ^ expected `()`, found `u32`
   |                   |
   |                   expected due to this

error[E0308]: mismatched types
  --> $DIR/method-deref-to-same-trait-object-with-separate-params.rs:104:24
   |
LL |     let _seetype: () = z;
   |                   --   ^ expected `()`, found `u64`
   |                   |
   |                   expected due to this

error[E0034]: multiple applicable items in scope
  --> $DIR/method-deref-to-same-trait-object-with-separate-params.rs:122:15
   |
LL |     let z = x.foo();
   |               ^^^ multiple `foo` found
   |
note: candidate #1 is defined in the trait `FinalFoo`
  --> $DIR/method-deref-to-same-trait-object-with-separate-params.rs:59:5
   |
LL |     fn foo(&self) -> u8;
   |     ^^^^^^^^^^^^^^^^^^^^
note: candidate #2 is defined in an impl of the trait `NuisanceFoo` for the type `T`
  --> $DIR/method-deref-to-same-trait-object-with-separate-params.rs:72:9
   |
LL |         fn foo(self) {}
   |         ^^^^^^^^^^^^
note: candidate #3 is defined in an impl of the trait `X` for the type `T`
  --> $DIR/method-deref-to-same-trait-object-with-separate-params.rs:45:9
   |
LL |         fn foo(self: Smaht<Self, u64>) -> u64 {
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: disambiguate the method for candidate #1
   |
LL |     let z = FinalFoo::foo(&x);
   |             ~~~~~~~~~~~~~~~~~
help: disambiguate the method for candidate #2
   |
LL |     let z = NuisanceFoo::foo(x);
   |             ~~~~~~~~~~~~~~~~~~~
help: disambiguate the method for candidate #3
   |
LL |     let z = X::foo(x);
   |             ~~~~~~~~~

error[E0308]: mismatched types
  --> $DIR/method-deref-to-same-trait-object-with-separate-params.rs:139:24
   |
LL |     let _seetype: () = z;
   |                   --   ^ expected `()`, found `u8`
   |                   |
   |                   expected due to this

error[E0308]: mismatched types
  --> $DIR/method-deref-to-same-trait-object-with-separate-params.rs:157:24
   |
LL |     let _seetype: () = z;
   |                   --   ^ expected `()`, found `u32`
   |                   |
   |                   expected due to this

error[E0308]: mismatched types
  --> $DIR/method-deref-to-same-trait-object-with-separate-params.rs:174:24
   |
LL |     let _seetype: () = z;
   |                   --   ^ expected `()`, found `u32`
   |                   |
   |                   expected due to this

error: aborting due to 6 previous errors; 1 warning emitted

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