tests: update tests for more conservative return ty mismatch note

This commit is contained in:
许杰友 Jieyou Xu (Joe) 2024-06-16 17:57:01 +00:00
parent bfe6a26af6
commit 939026c8fb
3 changed files with 27 additions and 6 deletions

View file

@ -1,4 +1,5 @@
// Checks existence of a note for "a caller chooses ty for ty param" upon return ty mismatch.
// Checks existence or absence of a note for "a caller chooses ty for ty param" upon return ty
// mismatch.
fn f<T>() -> (T,) {
(0,) //~ ERROR mismatched types
@ -14,6 +15,14 @@ fn h() -> u8 {
0u8
}
// This case was reported in <https://github.com/rust-lang/rust/issues/126547> where it doesn't
// make sense to make the "note caller chooses ty for ty param" note if the found type contains
// the ty param...
fn k<T>(_t: &T) -> T {
_t
//~^ ERROR mismatched types
}
fn main() {
f::<()>();
g::<(), ()>;

View file

@ -1,5 +1,5 @@
error[E0308]: mismatched types
--> $DIR/return-ty-mismatch-note.rs:4:6
--> $DIR/return-ty-mismatch-note.rs:5:6
|
LL | fn f<T>() -> (T,) {
| - expected this type parameter
@ -10,7 +10,7 @@ LL | (0,)
found type `{integer}`
error[E0308]: mismatched types
--> $DIR/return-ty-mismatch-note.rs:8:6
--> $DIR/return-ty-mismatch-note.rs:9:6
|
LL | fn g<U, V>() -> (U, V) {
| - expected this type parameter
@ -21,7 +21,7 @@ LL | (0, "foo")
found type `{integer}`
error[E0308]: mismatched types
--> $DIR/return-ty-mismatch-note.rs:8:9
--> $DIR/return-ty-mismatch-note.rs:9:9
|
LL | fn g<U, V>() -> (U, V) {
| - expected this type parameter
@ -31,6 +31,19 @@ LL | (0, "foo")
= note: expected type parameter `V`
found reference `&'static str`
error: aborting due to 3 previous errors
error[E0308]: mismatched types
--> $DIR/return-ty-mismatch-note.rs:22:5
|
LL | fn k<T>(_t: &T) -> T {
| - - expected `T` because of return type
| |
| expected this type parameter
LL | _t
| ^^ expected type parameter `T`, found `&T`
|
= note: expected type parameter `_`
found reference `&_`
error: aborting due to 4 previous errors
For more information about this error, try `rustc --explain E0308`.

View file

@ -10,7 +10,6 @@ LL | t.clone()
|
= note: expected type parameter `_`
found reference `&_`
= note: the caller chooses a type for `T` which can be different from `&T`
note: `T` does not implement `Clone`, so `&T` was cloned instead
--> $DIR/clone-on-unconstrained-borrowed-type-param.rs:3:5
|