diff options
Diffstat (limited to 'tests/ui/suggestions/issue-86100-tuple-paren-comma.rs')
-rw-r--r-- | tests/ui/suggestions/issue-86100-tuple-paren-comma.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/ui/suggestions/issue-86100-tuple-paren-comma.rs b/tests/ui/suggestions/issue-86100-tuple-paren-comma.rs new file mode 100644 index 000000000..fa9d1a889 --- /dev/null +++ b/tests/ui/suggestions/issue-86100-tuple-paren-comma.rs @@ -0,0 +1,25 @@ +// 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] +} |