]> git.lizzy.rs Git - rust.git/blob - src/test/ui/intrinsics/const-eval-select-bad.rs
Added docs to internal_macro const
[rust.git] / src / test / ui / intrinsics / const-eval-select-bad.rs
1 #![feature(const_eval_select)]
2
3 use std::intrinsics::const_eval_select;
4
5 const fn not_fn_items() {
6     const_eval_select((), || {}, || {});
7     //~^ ERROR expected a `FnOnce<()>` closure
8     const_eval_select((), 42, 0xDEADBEEF);
9     //~^ ERROR expected a `FnOnce<()>` closure
10 }
11
12 const fn foo(n: i32) -> i32 {
13     n
14 }
15
16 fn bar(n: i32) -> bool {
17     assert_eq!(n, 0, "{} must be equal to {}", n, 0);
18     n == 0
19 }
20
21 fn baz(n: bool) -> i32 {
22     assert!(n, "{} must be true", n);
23     n as i32
24 }
25
26 const fn return_ty_mismatch() {
27     const_eval_select((1,), foo, bar);
28     //~^ ERROR type mismatch
29 }
30
31 const fn args_ty_mismatch() {
32     const_eval_select((true,), foo, baz);
33     //~^ ERROR type mismatch
34 }
35
36 fn main() {}