1 error: functions cannot be both `const` and `async`
2 --> $DIR/fn-header-semantic-fail.rs:12:5
4 LL | const async unsafe extern "C" fn ff5() {}
5 | ^^^^^-^^^^^------------------------------
7 | | `async` because of this
8 | `const` because of this
10 error[E0706]: functions in traits cannot be declared `async`
11 --> $DIR/fn-header-semantic-fail.rs:17:9
16 | `async` because of this
18 = note: `async` trait functions are not currently supported
19 = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait
21 error[E0379]: functions in traits cannot be declared const
22 --> $DIR/fn-header-semantic-fail.rs:19:9
25 | ^^^^^ functions in traits cannot be const
27 error[E0379]: functions in traits cannot be declared const
28 --> $DIR/fn-header-semantic-fail.rs:21:9
30 LL | const async unsafe extern "C" fn ft5();
31 | ^^^^^ functions in traits cannot be const
33 error[E0706]: functions in traits cannot be declared `async`
34 --> $DIR/fn-header-semantic-fail.rs:21:9
36 LL | const async unsafe extern "C" fn ft5();
37 | ^^^^^^-----^^^^^^^^^^^^^^^^^^^^^^^^^^^^
39 | `async` because of this
41 = note: `async` trait functions are not currently supported
42 = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait
44 error: functions cannot be both `const` and `async`
45 --> $DIR/fn-header-semantic-fail.rs:21:9
47 LL | const async unsafe extern "C" fn ft5();
48 | ^^^^^-^^^^^----------------------------
50 | | `async` because of this
51 | `const` because of this
53 error[E0706]: functions in traits cannot be declared `async`
54 --> $DIR/fn-header-semantic-fail.rs:29:9
56 LL | async fn ft1() {}
59 | `async` because of this
61 = note: `async` trait functions are not currently supported
62 = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait
64 error[E0379]: functions in traits cannot be declared const
65 --> $DIR/fn-header-semantic-fail.rs:32:9
67 LL | const fn ft3() {}
68 | ^^^^^ functions in traits cannot be const
70 error[E0379]: functions in traits cannot be declared const
71 --> $DIR/fn-header-semantic-fail.rs:34:9
73 LL | const async unsafe extern "C" fn ft5() {}
74 | ^^^^^ functions in traits cannot be const
76 error[E0706]: functions in traits cannot be declared `async`
77 --> $DIR/fn-header-semantic-fail.rs:34:9
79 LL | const async unsafe extern "C" fn ft5() {}
80 | ^^^^^^-----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
82 | `async` because of this
84 = note: `async` trait functions are not currently supported
85 = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait
87 error: functions cannot be both `const` and `async`
88 --> $DIR/fn-header-semantic-fail.rs:34:9
90 LL | const async unsafe extern "C" fn ft5() {}
91 | ^^^^^-^^^^^------------------------------
93 | | `async` because of this
94 | `const` because of this
96 error: functions cannot be both `const` and `async`
97 --> $DIR/fn-header-semantic-fail.rs:47:9
99 LL | const async unsafe extern "C" fn fi5() {}
100 | ^^^^^-^^^^^------------------------------
102 | | `async` because of this
103 | `const` because of this
105 error: functions in `extern` blocks cannot have qualifiers
106 --> $DIR/fn-header-semantic-fail.rs:53:18
109 | ---------- in this `extern` block
113 help: remove the qualifiers
118 error: functions in `extern` blocks cannot have qualifiers
119 --> $DIR/fn-header-semantic-fail.rs:54:19
122 | ---------- in this `extern` block
124 LL | unsafe fn fe2();
127 help: remove the qualifiers
132 error: functions in `extern` blocks cannot have qualifiers
133 --> $DIR/fn-header-semantic-fail.rs:55:18
136 | ---------- in this `extern` block
141 help: remove the qualifiers
146 error: functions in `extern` blocks cannot have qualifiers
147 --> $DIR/fn-header-semantic-fail.rs:56:23
150 | ---------- in this `extern` block
152 LL | extern "C" fn fe4();
155 help: remove the qualifiers
160 error: functions in `extern` blocks cannot have qualifiers
161 --> $DIR/fn-header-semantic-fail.rs:57:42
164 | ---------- in this `extern` block
166 LL | const async unsafe extern "C" fn fe5();
169 help: remove the qualifiers
174 error: functions cannot be both `const` and `async`
175 --> $DIR/fn-header-semantic-fail.rs:57:9
177 LL | const async unsafe extern "C" fn fe5();
178 | ^^^^^-^^^^^----------------------------
180 | | `async` because of this
181 | `const` because of this
183 error[E0391]: cycle detected when computing type of `main::ff5::{opaque#0}`
184 --> $DIR/fn-header-semantic-fail.rs:12:44
186 LL | const async unsafe extern "C" fn ff5() {}
189 note: ...which requires borrow-checking `main::ff5`...
190 --> $DIR/fn-header-semantic-fail.rs:12:5
192 LL | const async unsafe extern "C" fn ff5() {}
193 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
194 note: ...which requires processing `main::ff5`...
195 --> $DIR/fn-header-semantic-fail.rs:12:5
197 LL | const async unsafe extern "C" fn ff5() {}
198 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
199 note: ...which requires const checking `main::ff5`...
200 --> $DIR/fn-header-semantic-fail.rs:12:5
202 LL | const async unsafe extern "C" fn ff5() {}
203 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
204 = note: ...which requires computing whether `impl core::future::future::Future<Output = ()>` is freeze...
205 = note: ...which requires evaluating trait selection obligation `impl core::future::future::Future<Output = ()>: core::marker::Freeze`...
206 = note: ...which again requires computing type of `main::ff5::{opaque#0}`, completing the cycle
207 note: cycle used when checking item types in top-level module
208 --> $DIR/fn-header-semantic-fail.rs:5:1
210 LL | / #![feature(const_extern_fn)]
213 LL | | async fn ff1() {} // OK.
219 error[E0053]: method `ft1` has an incompatible type for trait
220 --> $DIR/fn-header-semantic-fail.rs:29:24
222 LL | async fn ft1() {}
225 | checked the `Output` of this `async fn`, found opaque type
226 | expected `()`, found opaque type
228 = note: while checking the return type of the `async fn`
230 --> $DIR/fn-header-semantic-fail.rs:17:23
234 = note: expected fn pointer `fn()`
235 found fn pointer `fn() -> impl Future<Output = ()>`
237 error[E0053]: method `ft5` has an incompatible type for trait
238 --> $DIR/fn-header-semantic-fail.rs:34:48
240 LL | const async unsafe extern "C" fn ft5() {}
243 | checked the `Output` of this `async fn`, found opaque type
244 | expected `()`, found opaque type
246 = note: while checking the return type of the `async fn`
248 --> $DIR/fn-header-semantic-fail.rs:21:47
250 LL | const async unsafe extern "C" fn ft5();
252 = note: expected fn pointer `unsafe extern "C" fn()`
253 found fn pointer `unsafe extern "C" fn() -> impl Future<Output = ()>`
255 error[E0391]: cycle detected when computing type of `main::<impl at $DIR/fn-header-semantic-fail.rs:28:5: 28:17>::ft5::{opaque#0}`
256 --> $DIR/fn-header-semantic-fail.rs:34:48
258 LL | const async unsafe extern "C" fn ft5() {}
261 note: ...which requires borrow-checking `main::<impl at $DIR/fn-header-semantic-fail.rs:28:5: 28:17>::ft5`...
262 --> $DIR/fn-header-semantic-fail.rs:34:9
264 LL | const async unsafe extern "C" fn ft5() {}
265 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
266 note: ...which requires processing `main::<impl at $DIR/fn-header-semantic-fail.rs:28:5: 28:17>::ft5`...
267 --> $DIR/fn-header-semantic-fail.rs:34:9
269 LL | const async unsafe extern "C" fn ft5() {}
270 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
271 note: ...which requires const checking `main::<impl at $DIR/fn-header-semantic-fail.rs:28:5: 28:17>::ft5`...
272 --> $DIR/fn-header-semantic-fail.rs:34:9
274 LL | const async unsafe extern "C" fn ft5() {}
275 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
276 = note: ...which requires computing whether `impl core::future::future::Future<Output = ()>` is freeze...
277 = note: ...which requires evaluating trait selection obligation `impl core::future::future::Future<Output = ()>: core::marker::Freeze`...
278 = note: ...which again requires computing type of `main::<impl at $DIR/fn-header-semantic-fail.rs:28:5: 28:17>::ft5::{opaque#0}`, completing the cycle
279 note: cycle used when checking item types in top-level module
280 --> $DIR/fn-header-semantic-fail.rs:5:1
282 LL | / #![feature(const_extern_fn)]
285 LL | | async fn ff1() {} // OK.
291 error[E0391]: cycle detected when computing type of `main::<impl at $DIR/fn-header-semantic-fail.rs:42:5: 42:11>::fi5::{opaque#0}`
292 --> $DIR/fn-header-semantic-fail.rs:47:48
294 LL | const async unsafe extern "C" fn fi5() {}
297 note: ...which requires borrow-checking `main::<impl at $DIR/fn-header-semantic-fail.rs:42:5: 42:11>::fi5`...
298 --> $DIR/fn-header-semantic-fail.rs:47:9
300 LL | const async unsafe extern "C" fn fi5() {}
301 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
302 note: ...which requires processing `main::<impl at $DIR/fn-header-semantic-fail.rs:42:5: 42:11>::fi5`...
303 --> $DIR/fn-header-semantic-fail.rs:47:9
305 LL | const async unsafe extern "C" fn fi5() {}
306 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
307 note: ...which requires const checking `main::<impl at $DIR/fn-header-semantic-fail.rs:42:5: 42:11>::fi5`...
308 --> $DIR/fn-header-semantic-fail.rs:47:9
310 LL | const async unsafe extern "C" fn fi5() {}
311 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
312 = note: ...which requires computing whether `impl core::future::future::Future<Output = ()>` is freeze...
313 = note: ...which requires evaluating trait selection obligation `impl core::future::future::Future<Output = ()>: core::marker::Freeze`...
314 = note: ...which again requires computing type of `main::<impl at $DIR/fn-header-semantic-fail.rs:42:5: 42:11>::fi5::{opaque#0}`, completing the cycle
315 note: cycle used when checking item types in top-level module
316 --> $DIR/fn-header-semantic-fail.rs:5:1
318 LL | / #![feature(const_extern_fn)]
321 LL | | async fn ff1() {} // OK.
327 error: aborting due to 23 previous errors
329 Some errors have detailed explanations: E0053, E0379, E0391, E0706.
330 For more information about an error, try `rustc --explain E0053`.