| // 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] |
| } |