use std::intrinsics::const_eval_select;
const fn not_fn_items() {
- const_eval_select((), |()| {}, |()| {});
- //~^ ERROR expected a `FnOnce<((),)>` closure
+ const_eval_select((), || {}, || {});
+ //~^ ERROR expected a `FnOnce<()>` closure
const_eval_select((), 42, 0xDEADBEEF);
- //~^ ERROR expected a `FnOnce<((),)>` closure
+ //~^ ERROR expected a `FnOnce<()>` closure
}
-const fn foo((n,): (i32,)) -> i32 {
+const fn foo(n: i32) -> i32 {
n
}
-fn bar((n,): (i32,)) -> bool {
+fn bar(n: i32) -> bool {
assert_eq!(n, 0, "{} must be equal to {}", n, 0);
n == 0
}
-fn baz((n,): (bool,)) -> i32 {
+fn baz(n: bool) -> i32 {
assert!(n, "{} must be true", n);
n as i32
}
-error[E0277]: expected a `FnOnce<((),)>` closure, found `[closure@$DIR/const-eval-select-bad.rs:6:27: 6:34]`
- --> $DIR/const-eval-select-bad.rs:6:36
+error[E0277]: expected a `FnOnce<()>` closure, found `[closure@$DIR/const-eval-select-bad.rs:6:27: 6:32]`
+ --> $DIR/const-eval-select-bad.rs:6:34
|
-LL | const_eval_select((), |()| {}, |()| {});
- | ----------------- ^^^^^^^ expected an `FnOnce<((),)>` closure, found `[closure@$DIR/const-eval-select-bad.rs:6:27: 6:34]`
+LL | const_eval_select((), || {}, || {});
+ | ----------------- ^^^^^ expected an `FnOnce<()>` closure, found `[closure@$DIR/const-eval-select-bad.rs:6:27: 6:32]`
| |
| required by a bound introduced by this call
|
- = help: the trait `FnOnce<((),)>` is not implemented for `[closure@$DIR/const-eval-select-bad.rs:6:27: 6:34]`
+ = help: the trait `FnOnce<()>` is not implemented for `[closure@$DIR/const-eval-select-bad.rs:6:27: 6:32]`
+ = note: wrap the `[closure@$DIR/const-eval-select-bad.rs:6:27: 6:32]` in a closure with no arguments: `|| { /* code */ }`
note: required by a bound in `const_eval_select`
--> $SRC_DIR/core/src/intrinsics.rs:LL:COL
|
-LL | F: ~const FnOnce(ARG) -> RET,
- | ^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `const_eval_select`
+LL | F: ~const FnOnce<ARG, Output = RET>,
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `const_eval_select`
-error[E0277]: expected a `FnOnce<((),)>` closure, found `{integer}`
+error[E0277]: expected a `FnOnce<()>` closure, found `{integer}`
--> $DIR/const-eval-select-bad.rs:8:31
|
LL | const_eval_select((), 42, 0xDEADBEEF);
- | ----------------- ^^^^^^^^^^ expected an `FnOnce<((),)>` closure, found `{integer}`
+ | ----------------- ^^^^^^^^^^ expected an `FnOnce<()>` closure, found `{integer}`
| |
| required by a bound introduced by this call
|
- = help: the trait `FnOnce<((),)>` is not implemented for `{integer}`
+ = 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
|
-LL | F: ~const FnOnce(ARG) -> RET,
- | ^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `const_eval_select`
+LL | F: ~const FnOnce<ARG, Output = RET>,
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `const_eval_select`
-error[E0271]: type mismatch resolving `<fn((i32,)) -> bool {bar} as FnOnce<((i32,),)>>::Output == i32`
+error[E0271]: type mismatch resolving `<fn(i32) -> bool {bar} as FnOnce<(i32,)>>::Output == i32`
--> $DIR/const-eval-select-bad.rs:27:5
|
LL | const_eval_select((1,), foo, bar);
note: required by a bound in `const_eval_select`
--> $SRC_DIR/core/src/intrinsics.rs:LL:COL
|
-LL | G: FnOnce(ARG) -> RET + ~const Drop,
- | ^^^ required by this bound in `const_eval_select`
+LL | G: FnOnce<ARG, Output = RET> + ~const Drop,
+ | ^^^^^^^^^^^^ required by this bound in `const_eval_select`
error[E0631]: type mismatch in function arguments
--> $DIR/const-eval-select-bad.rs:32:37
|
-LL | const fn foo((n,): (i32,)) -> i32 {
- | --------------------------------- found signature of `fn((i32,)) -> _`
+LL | const fn foo(n: i32) -> i32 {
+ | --------------------------- found signature of `fn(i32) -> _`
...
LL | const_eval_select((true,), foo, baz);
- | ----------------- ^^^ expected signature of `fn((bool,)) -> _`
+ | ----------------- ^^^ expected signature of `fn(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
|
-LL | F: ~const FnOnce(ARG) -> RET,
- | ^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `const_eval_select`
+LL | F: ~const FnOnce<ARG, Output = RET>,
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `const_eval_select`
error: aborting due to 4 previous errors