error: this argument must be a function item
  --> $DIR/const-eval-select-bad.rs:7:27
   |
LL |     const_eval_select((), || {}, || {});
   |                           ^^^^^
   |
   = note: expected a function item, found {closure@$DIR/const-eval-select-bad.rs:7:27: 7:29}
   = help: consult the documentation on `const_eval_select` for more information

error: this argument must be a function item
  --> $DIR/const-eval-select-bad.rs:7:34
   |
LL |     const_eval_select((), || {}, || {});
   |                                  ^^^^^
   |
   = note: expected a function item, found {closure@$DIR/const-eval-select-bad.rs:7:34: 7:36}
   = help: consult the documentation on `const_eval_select` for more information

error[E0277]: expected a `FnOnce()` closure, found `{integer}`
  --> $DIR/const-eval-select-bad.rs:10:27
   |
LL |     const_eval_select((), 42, 0xDEADBEEF);
   |     -----------------     ^^ expected an `FnOnce()` closure, found `{integer}`
   |     |
   |     required by a bound introduced by this call
   |
   = help: the trait `FnOnce()` is not implemented for `{integer}`
   = note: wrap the `{integer}` in a closure with no arguments: `|| { /* code */ }`
note: required by a bound in `const_eval_select`
  --> $SRC_DIR/core/src/intrinsics.rs:LL:COL

error[E0277]: expected a `FnOnce()` closure, found `{integer}`
  --> $DIR/const-eval-select-bad.rs:10:31
   |
LL |     const_eval_select((), 42, 0xDEADBEEF);
   |     -----------------         ^^^^^^^^^^ expected an `FnOnce()` closure, found `{integer}`
   |     |
   |     required by a bound introduced by this call
   |
   = help: the trait `FnOnce()` is not implemented for `{integer}`
   = note: wrap the `{integer}` in a closure with no arguments: `|| { /* code */ }`
note: required by a bound in `const_eval_select`
  --> $SRC_DIR/core/src/intrinsics.rs:LL:COL

error: this argument must be a function item
  --> $DIR/const-eval-select-bad.rs:10:27
   |
LL |     const_eval_select((), 42, 0xDEADBEEF);
   |                           ^^
   |
   = note: expected a function item, found {integer}
   = help: consult the documentation on `const_eval_select` for more information

error: this argument must be a function item
  --> $DIR/const-eval-select-bad.rs:10:31
   |
LL |     const_eval_select((), 42, 0xDEADBEEF);
   |                               ^^^^^^^^^^
   |
   = note: expected a function item, found {integer}
   = help: consult the documentation on `const_eval_select` for more information

error[E0271]: expected `bar` to be a fn item that returns `i32`, but it returns `bool`
  --> $DIR/const-eval-select-bad.rs:32:34
   |
LL |     const_eval_select((1,), foo, bar);
   |     -----------------            ^^^ expected `i32`, found `bool`
   |     |
   |     required by a bound introduced by this call
   |
note: required by a bound in `const_eval_select`
  --> $SRC_DIR/core/src/intrinsics.rs:LL:COL

error[E0631]: type mismatch in function arguments
  --> $DIR/const-eval-select-bad.rs:37:32
   |
LL | const fn foo(n: i32) -> i32 {
   | --------------------------- found signature defined here
...
LL |     const_eval_select((true,), foo, baz);
   |     -----------------          ^^^ expected due to this
   |     |
   |     required by a bound introduced by this call
   |
   = note: expected function signature `fn(bool) -> _`
              found function signature `fn(i32) -> _`
note: required by a bound in `const_eval_select`
  --> $SRC_DIR/core/src/intrinsics.rs:LL:COL
help: consider wrapping the function in a closure
   |
LL |     const_eval_select((true,), |arg0: bool| foo(/* i32 */), baz);
   |                                ++++++++++++    +++++++++++

error: this argument must be a `const fn`
  --> $DIR/const-eval-select-bad.rs:42:29
   |
LL |     const_eval_select((1,), bar, bar);
   |                             ^^^
   |
   = help: consult the documentation on `const_eval_select` for more information

error: aborting due to 9 previous errors

Some errors have detailed explanations: E0271, E0277, E0631.
For more information about an error, try `rustc --explain E0271`.
