1 #![feature(const_eval_select)]
3 use std::intrinsics::const_eval_select;
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
12 const fn foo(n: i32) -> i32 {
16 fn bar(n: i32) -> bool {
17 assert_eq!(n, 0, "{} must be equal to {}", n, 0);
21 fn baz(n: bool) -> i32 {
22 assert!(n, "{} must be true", n);
26 const fn return_ty_mismatch() {
27 const_eval_select((1,), foo, bar);
28 //~^ ERROR type mismatch
31 const fn args_ty_mismatch() {
32 const_eval_select((true,), foo, baz);
33 //~^ ERROR type mismatch