26 lines
812 B
Rust
26 lines
812 B
Rust
|
// Tests that a suggestion is issued for type mismatch errors when a
|
||
|
// 1-tuple is expected and a parenthesized expression of non-tuple
|
||
|
// type is supplied.
|
||
|
|
||
|
fn foo<T>(_t: (T,)) {}
|
||
|
struct S { _s: (String,) }
|
||
|
|
||
|
fn main() {
|
||
|
let _x: (i32,) = (5);
|
||
|
//~^ ERROR: mismatched types [E0308]
|
||
|
//~| HELP: use a trailing comma to create a tuple with one element
|
||
|
|
||
|
foo((Some(3)));
|
||
|
//~^ ERROR: mismatched types [E0308]
|
||
|
//~| HELP: use a trailing comma to create a tuple with one element
|
||
|
|
||
|
let _s = S { _s: ("abc".to_string()) };
|
||
|
//~^ ERROR: mismatched types [E0308]
|
||
|
//~| HELP: use a trailing comma to create a tuple with one element
|
||
|
|
||
|
// Do not issue the suggestion if the found type is already a tuple.
|
||
|
let t = (1, 2);
|
||
|
let _x: (i32,) = (t);
|
||
|
//~^ ERROR: mismatched types [E0308]
|
||
|
}
|