summaryrefslogtreecommitdiffstats
path: root/src/test/ui/mismatched_types/abridged.rs
blob: 9a5c183ca342881384d2ae5cd587cf3e0ed531cd (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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
enum Bar {
    Qux,
    Zar,
}

struct Foo {
    bar: usize,
}

struct X<T1, T2> {
    x: T1,
    y: T2,
}

fn a() -> Foo {
    Some(Foo { bar: 1 }) //~ ERROR mismatched types
}

fn a2() -> Foo {
    Ok(Foo { bar: 1}) //~ ERROR mismatched types
}

fn b() -> Option<Foo> {
    Foo { bar: 1 } //~ ERROR mismatched types
}

fn c() -> Result<Foo, Bar> {
    Foo { bar: 1 } //~ ERROR mismatched types
}

fn d() -> X<X<String, String>, String> {
    let x = X {
        x: X {
            x: "".to_string(),
            y: 2,
        },
        y: 3,
    };
    x //~ ERROR mismatched types
}

fn e() -> X<X<String, String>, String> {
    let x = X {
        x: X {
            x: "".to_string(),
            y: 2,
        },
        y: "".to_string(),
    };
    x //~ ERROR mismatched types
}

fn f() -> String {
    1+2 //~ ERROR mismatched types
}


fn g() -> String {
    -2 //~ ERROR mismatched types
}

fn main() {}