add tests to a few edge cases in method lookup
These aren't fixed by this PR, but were broken in a few older attempts at it. Make sure they don't regress.
This commit is contained in:
parent
8d26c75043
commit
0ceb30de6d
3 changed files with 290 additions and 0 deletions
|
@ -0,0 +1,72 @@
|
|||
error[E0308]: mismatched types
|
||||
--> $DIR/method-deref-to-same-trait-object-with-separate-params.rs:85:24
|
||||
|
|
||||
LL | let _seetype: () = z; //~ ERROR mismatched types
|
||||
| ^ expected (), found u32
|
||||
|
|
||||
= note: expected type `()`
|
||||
found type `u32`
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/method-deref-to-same-trait-object-with-separate-params.rs:102:24
|
||||
|
|
||||
LL | let _seetype: () = z; //~ ERROR mismatched types
|
||||
| ^ expected (), found u64
|
||||
|
|
||||
= note: expected type `()`
|
||||
found type `u64`
|
||||
|
||||
error[E0034]: multiple applicable items in scope
|
||||
--> $DIR/method-deref-to-same-trait-object-with-separate-params.rs:120:15
|
||||
|
|
||||
LL | let z = x.foo(); //~ ERROR multiple applicable items in scope
|
||||
| ^^^ multiple `foo` found
|
||||
|
|
||||
note: candidate #1 is defined in an impl of the trait `internal::X` for the type `_`
|
||||
--> $DIR/method-deref-to-same-trait-object-with-separate-params.rs:43:9
|
||||
|
|
||||
LL | fn foo(self: Smaht<Self, u64>) -> u64 {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
note: candidate #2 is defined in an impl of the trait `nuisance_foo::NuisanceFoo` for the type `_`
|
||||
--> $DIR/method-deref-to-same-trait-object-with-separate-params.rs:70:9
|
||||
|
|
||||
LL | fn foo(self) {}
|
||||
| ^^^^^^^^^^^^
|
||||
note: candidate #3 is defined in the trait `FinalFoo`
|
||||
--> $DIR/method-deref-to-same-trait-object-with-separate-params.rs:57:5
|
||||
|
|
||||
LL | fn foo(&self) -> u8;
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
= help: to disambiguate the method call, write `FinalFoo::foo(x)` instead
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/method-deref-to-same-trait-object-with-separate-params.rs:137:24
|
||||
|
|
||||
LL | let _seetype: () = z; //~ ERROR mismatched types
|
||||
| ^ expected (), found u8
|
||||
|
|
||||
= note: expected type `()`
|
||||
found type `u8`
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/method-deref-to-same-trait-object-with-separate-params.rs:155:24
|
||||
|
|
||||
LL | let _seetype: () = z; //~ ERROR mismatched types
|
||||
| ^ expected (), found u32
|
||||
|
|
||||
= note: expected type `()`
|
||||
found type `u32`
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/method-deref-to-same-trait-object-with-separate-params.rs:172:24
|
||||
|
|
||||
LL | let _seetype: () = z; //~ ERROR mismatched types
|
||||
| ^ expected (), found u32
|
||||
|
|
||||
= note: expected type `()`
|
||||
found type `u32`
|
||||
|
||||
error: aborting due to 6 previous errors
|
||||
|
||||
Some errors occurred: E0034, E0308.
|
||||
For more information about an error, try `rustc --explain E0034`.
|
Loading…
Add table
Add a link
Reference in a new issue