summaryrefslogtreecommitdiffstats
path: root/tests/ui/async-await/await-keyword/incorrect-syntax-suggestions.rs
blob: 554ac673d515599a4a230ed1f04110d806116a4d (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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
// edition:2018

async fn bar() -> Result<(), ()> {
    Ok(())
}

async fn foo1() -> Result<(), ()> {
    let _ = await bar(); //~ ERROR incorrect use of `await`
    Ok(())
}
async fn foo2() -> Result<(), ()> {
    let _ = await? bar(); //~ ERROR incorrect use of `await`
    Ok(())
}
async fn foo3() -> Result<(), ()> {
    let _ = await bar()?; //~ ERROR incorrect use of `await`
    Ok(())
}
async fn foo21() -> Result<(), ()> {
    let _ = await { bar() }; //~ ERROR incorrect use of `await`
    Ok(())
}
async fn foo22() -> Result<(), ()> {
    let _ = await(bar()); //~ ERROR incorrect use of `await`
    Ok(())
}
async fn foo23() -> Result<(), ()> {
    let _ = await { bar() }?; //~ ERROR incorrect use of `await`
    Ok(())
}
async fn foo4() -> Result<(), ()> {
    let _ = (await bar())?; //~ ERROR incorrect use of `await`
    Ok(())
}
async fn foo5() -> Result<(), ()> {
    let _ = bar().await(); //~ ERROR incorrect use of `await`
    Ok(())
}
async fn foo6() -> Result<(), ()> {
    let _ = bar().await()?; //~ ERROR incorrect use of `await`
    Ok(())
}
async fn foo7() -> Result<(), ()> {
    let _ = bar().await; // OK
    Ok(())
}
async fn foo8() -> Result<(), ()> {
    let _ = bar().await?; // OK
    Ok(())
}
fn foo9() -> Result<(), ()> {
    let _ = await bar(); //~ ERROR `await` is only allowed inside `async` functions and blocks
    //~^ ERROR incorrect use of `await`
    Ok(())
}
fn foo10() -> Result<(), ()> {
    let _ = await? bar(); //~ ERROR `await` is only allowed inside `async` functions and blocks
    //~^ ERROR incorrect use of `await`
    Ok(())
}
fn foo11() -> Result<(), ()> {
    let _ = await bar()?; //~ ERROR incorrect use of `await`
    Ok(())
}
fn foo12() -> Result<(), ()> {
    let _ = (await bar())?; //~ ERROR `await` is only allowed inside `async` functions and blocks
    //~^ ERROR incorrect use of `await`
    Ok(())
}
fn foo13() -> Result<(), ()> {
    let _ = bar().await(); //~ ERROR `await` is only allowed inside `async` functions and blocks
    //~^ ERROR incorrect use of `await`
    Ok(())
}
fn foo14() -> Result<(), ()> {
    let _ = bar().await()?; //~ ERROR `await` is only allowed inside `async` functions and blocks
    //~^ ERROR incorrect use of `await`
    Ok(())
}
fn foo15() -> Result<(), ()> {
    let _ = bar().await; //~ ERROR `await` is only allowed inside `async` functions and blocks
    Ok(())
}
fn foo16() -> Result<(), ()> {
    let _ = bar().await?; //~ ERROR `await` is only allowed inside `async` functions and blocks
    Ok(())
}
fn foo24() -> Result<(), ()> {
    fn foo() -> Result<(), ()> {
        let _ = bar().await?; //~ ERROR `await` is only allowed inside `async` functions and blocks
        Ok(())
    }
    foo()
}
fn foo25() -> Result<(), ()> {
    let foo = || {
        let _ = bar().await?; //~ ERROR `await` is only allowed inside `async` functions and blocks
        Ok(())
    };
    foo()
}

async fn foo26() -> Result<(), ()> {
    let _ = await!(bar()); //~ ERROR incorrect use of `await`
    Ok(())
}
async fn foo27() -> Result<(), ()> {
    let _ = await!(bar())?; //~ ERROR incorrect use of `await`
    Ok(())
}
fn foo28() -> Result<(), ()> {
    fn foo() -> Result<(), ()> {
        let _ = await!(bar())?; //~ ERROR incorrect use of `await`
        //~^ ERROR `await` is only allowed inside `async` functions
        Ok(())
    }
    foo()
}
fn foo29() -> Result<(), ()> {
    let foo = || {
        let _ = await!(bar())?; //~ ERROR incorrect use of `await`
        //~^ ERROR `await` is only allowed inside `async` functions
        Ok(())
    };
    foo()
}

fn main() {
    match await { await => () }
    //~^ ERROR expected expression, found `=>`
    //~| ERROR incorrect use of `await`
} //~ ERROR expected one of `.`, `?`, `{`, or an operator, found `}`