Commit 56e8f29
committed
Auto merge of rust-lang#51580 - cramertj:async-await, r=eddyb
async/await
This PR implements `async`/`await` syntax for `async fn` in Rust 2015 and `async` closures and `async` blocks in Rust 2018 (tracking issue: rust-lang#50547). Limitations: non-`move` async closures with arguments are currently not supported, nor are `async fn` with multiple different input lifetimes. These limitations are not fundamental and will be removed in the future, however I'd like to go ahead and get this PR merged so we can start experimenting with this in combination with futures 0.3.
Based on rust-lang#51414.
cc @petrochenkov for parsing changes.
r? @eddybFile tree
69 files changed
+1796
-538
lines changed- src
- librustc_allocator
- librustc_driver
- librustc_lint
- librustc_metadata
- librustc_mir/transform
- librustc_passes
- librustc_resolve
- librustc_save_analysis
- librustc_typeck
- check
- librustc
- hir
- map
- ich
- middle
- librustdoc
- clean
- html
- libstd
- libsyntax_ext/deriving/generic
- libsyntax_pos
- libsyntax
- ext
- parse
- print
- util
- test
- parse-fail
- run-pass-fulldeps
- run-pass
- ui
- did_you_mean
- token
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
69 files changed
+1796
-538
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2131 | 2131 | | |
2132 | 2132 | | |
2133 | 2133 | | |
2134 | | - | |
| 2134 | + | |
| 2135 | + | |
| 2136 | + | |
| 2137 | + | |
| 2138 | + | |
| 2139 | + | |
2135 | 2140 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
45 | 44 | | |
46 | 45 | | |
47 | 46 | | |
| |||
54 | 53 | | |
55 | 54 | | |
56 | 55 | | |
57 | | - | |
58 | | - | |
| 56 | + | |
| 57 | + | |
59 | 58 | | |
60 | 59 | | |
61 | 60 | | |
| |||
479 | 478 | | |
480 | 479 | | |
481 | 480 | | |
482 | | - | |
| 481 | + | |
483 | 482 | | |
484 | 483 | | |
485 | | - | |
486 | | - | |
487 | | - | |
| 484 | + | |
488 | 485 | | |
489 | 486 | | |
490 | 487 | | |
| |||
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | | - | |
29 | 28 | | |
30 | 29 | | |
31 | 30 | | |
| |||
105 | 104 | | |
106 | 105 | | |
107 | 106 | | |
108 | | - | |
109 | | - | |
110 | | - | |
| 107 | + | |
111 | 108 | | |
112 | 109 | | |
113 | 110 | | |
| |||
183 | 180 | | |
184 | 181 | | |
185 | 182 | | |
186 | | - | |
187 | | - | |
188 | | - | |
189 | | - | |
190 | | - | |
191 | | - | |
| 183 | + | |
| 184 | + | |
192 | 185 | | |
193 | 186 | | |
194 | 187 | | |
195 | 188 | | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
196 | 197 | | |
197 | 198 | | |
198 | | - | |
199 | | - | |
200 | | - | |
201 | | - | |
202 | | - | |
203 | | - | |
| 199 | + | |
| 200 | + | |
204 | 201 | | |
205 | 202 | | |
206 | 203 | | |
207 | 204 | | |
208 | 205 | | |
209 | 206 | | |
210 | | - | |
| 207 | + | |
211 | 208 | | |
212 | 209 | | |
213 | 210 | | |
| |||
232 | 229 | | |
233 | 230 | | |
234 | 231 | | |
235 | | - | |
| 232 | + | |
236 | 233 | | |
237 | 234 | | |
238 | 235 | | |
239 | 236 | | |
240 | | - | |
241 | 237 | | |
242 | | - | |
243 | | - | |
244 | 238 | | |
245 | | - | |
246 | 239 | | |
247 | 240 | | |
| 241 | + | |
| 242 | + | |
248 | 243 | | |
249 | 244 | | |
250 | 245 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
76 | 97 | | |
77 | 98 | | |
78 | 99 | | |
| |||
99 | 120 | | |
100 | 121 | | |
101 | 122 | | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
102 | 132 | | |
103 | 133 | | |
104 | 134 | | |
| |||
197 | 227 | | |
198 | 228 | | |
199 | 229 | | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
200 | 241 | | |
201 | 242 | | |
202 | 243 | | |
| |||
227 | 268 | | |
228 | 269 | | |
229 | 270 | | |
230 | | - | |
231 | | - | |
| 271 | + | |
| 272 | + | |
232 | 273 | | |
233 | 274 | | |
234 | 275 | | |
235 | | - | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
236 | 294 | | |
237 | 295 | | |
238 | | - | |
| 296 | + | |
239 | 297 | | |
240 | 298 | | |
241 | 299 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
174 | 174 | | |
175 | 175 | | |
176 | 176 | | |
177 | | - | |
| 177 | + | |
178 | 178 | | |
179 | 179 | | |
180 | 180 | | |
| |||
210 | 210 | | |
211 | 211 | | |
212 | 212 | | |
213 | | - | |
| 213 | + | |
214 | 214 | | |
215 | 215 | | |
216 | 216 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
255 | 255 | | |
256 | 256 | | |
257 | 257 | | |
258 | | - | |
| 258 | + | |
259 | 259 | | |
260 | 260 | | |
261 | 261 | | |
| |||
1506 | 1506 | | |
1507 | 1507 | | |
1508 | 1508 | | |
1509 | | - | |
1510 | | - | |
1511 | | - | |
| 1509 | + | |
1512 | 1510 | | |
1513 | 1511 | | |
1514 | 1512 | | |
| |||
1736 | 1734 | | |
1737 | 1735 | | |
1738 | 1736 | | |
1739 | | - | |
| 1737 | + | |
| 1738 | + | |
| 1739 | + | |
| 1740 | + | |
| 1741 | + | |
| 1742 | + | |
| 1743 | + | |
1740 | 1744 | | |
1741 | 1745 | | |
1742 | 1746 | | |
| |||
2012 | 2016 | | |
2013 | 2017 | | |
2014 | 2018 | | |
| 2019 | + | |
| 2020 | + | |
| 2021 | + | |
| 2022 | + | |
| 2023 | + | |
| 2024 | + | |
| 2025 | + | |
| 2026 | + | |
2015 | 2027 | | |
2016 | 2028 | | |
2017 | 2029 | | |
| |||
2031 | 2043 | | |
2032 | 2044 | | |
2033 | 2045 | | |
2034 | | - | |
| 2046 | + | |
2035 | 2047 | | |
2036 | 2048 | | |
2037 | 2049 | | |
| |||
2096 | 2108 | | |
2097 | 2109 | | |
2098 | 2110 | | |
2099 | | - | |
| 2111 | + | |
2100 | 2112 | | |
2101 | 2113 | | |
2102 | 2114 | | |
| |||
0 commit comments