summaryrefslogtreecommitdiffstats
path: root/tests/ui/suggestions/issue-86100-tuple-paren-comma.rs
blob: fa9d1a88928cdf727a3a344910fa001668a559d0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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]
}