]> git.proxmox.com Git - rustc.git/blame - src/test/ui/intrinsics/const-eval-select-bad.rs
New upstream version 1.59.0+dfsg1
[rustc.git] / src / test / ui / intrinsics / const-eval-select-bad.rs
CommitLineData
c295e0f8
XL
1#![feature(const_eval_select)]
2
3use std::intrinsics::const_eval_select;
4
5const 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
3c0e092e 10 //~| ERROR expected a `FnOnce<()>` closure
c295e0f8
XL
11}
12
13const fn foo(n: i32) -> i32 {
14 n
15}
16
17fn bar(n: i32) -> bool {
18 assert_eq!(n, 0, "{} must be equal to {}", n, 0);
19 n == 0
20}
21
22fn baz(n: bool) -> i32 {
23 assert!(n, "{} must be true", n);
24 n as i32
25}
26
27const fn return_ty_mismatch() {
28 const_eval_select((1,), foo, bar);
29 //~^ ERROR type mismatch
30}
31
32const fn args_ty_mismatch() {
33 const_eval_select((true,), foo, baz);
34 //~^ ERROR type mismatch
35}
36
37fn main() {}