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:31: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:33: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:33: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:33: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:45: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:51: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:52: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:53: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:54: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:55: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:55: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[E0391]: cycle detected when computing type of `main::<impl at $DIR/fn-header-semantic-fail.rs:28:5: 38:6>::ft5::{opaque#0}`
220 --> $DIR/fn-header-semantic-fail.rs:33:48
222 LL | const async unsafe extern "C" fn ft5() {}
225 note: ...which requires borrow-checking `main::<impl at $DIR/fn-header-semantic-fail.rs:28:5: 38:6>::ft5`...
226 --> $DIR/fn-header-semantic-fail.rs:33:9
228 LL | const async unsafe extern "C" fn ft5() {}
229 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
230 note: ...which requires processing `main::<impl at $DIR/fn-header-semantic-fail.rs:28:5: 38:6>::ft5`...
231 --> $DIR/fn-header-semantic-fail.rs:33:9
233 LL | const async unsafe extern "C" fn ft5() {}
234 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
235 note: ...which requires const checking `main::<impl at $DIR/fn-header-semantic-fail.rs:28:5: 38:6>::ft5`...
236 --> $DIR/fn-header-semantic-fail.rs:33:9
238 LL | const async unsafe extern "C" fn ft5() {}
239 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
240 = note: ...which requires computing whether `impl core::future::future::Future<Output = ()>` is freeze...
241 = note: ...which requires evaluating trait selection obligation `impl core::future::future::Future<Output = ()>: core::marker::Freeze`...
242 = note: ...which again requires computing type of `main::<impl at $DIR/fn-header-semantic-fail.rs:28:5: 38:6>::ft5::{opaque#0}`, completing the cycle
243 note: cycle used when checking item types in top-level module
244 --> $DIR/fn-header-semantic-fail.rs:5:1
246 LL | / #![feature(const_extern_fn)]
249 LL | | async fn ff1() {} // OK.
255 error[E0391]: cycle detected when computing type of `main::<impl at $DIR/fn-header-semantic-fail.rs:40:5: 48:6>::fi5::{opaque#0}`
256 --> $DIR/fn-header-semantic-fail.rs:45:48
258 LL | const async unsafe extern "C" fn fi5() {}
261 note: ...which requires borrow-checking `main::<impl at $DIR/fn-header-semantic-fail.rs:40:5: 48:6>::fi5`...
262 --> $DIR/fn-header-semantic-fail.rs:45:9
264 LL | const async unsafe extern "C" fn fi5() {}
265 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
266 note: ...which requires processing `main::<impl at $DIR/fn-header-semantic-fail.rs:40:5: 48:6>::fi5`...
267 --> $DIR/fn-header-semantic-fail.rs:45:9
269 LL | const async unsafe extern "C" fn fi5() {}
270 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
271 note: ...which requires const checking `main::<impl at $DIR/fn-header-semantic-fail.rs:40:5: 48:6>::fi5`...
272 --> $DIR/fn-header-semantic-fail.rs:45:9
274 LL | const async unsafe extern "C" fn fi5() {}
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:40:5: 48:6>::fi5::{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: aborting due to 21 previous errors
293 Some errors have detailed explanations: E0379, E0391, E0706.
294 For more information about an error, try `rustc --explain E0379`.