]> git.lizzy.rs Git - rust.git/blob - src/test/ui/rfc-2632-const-trait-impl/const-closures.rs
Tweak move error
[rust.git] / src / test / ui / rfc-2632-const-trait-impl / const-closures.rs
1 // run-pass
2
3 #![feature(const_trait_impl)]
4 #![feature(const_fn_trait_bound)]
5
6 const fn answer_p1<F>(f: &F) -> u8
7     where
8         F: ~const FnOnce() -> u8,
9         F: ~const FnMut() -> u8,
10         F: ~const Fn() -> u8,
11 {
12     f() * 7
13 }
14
15 const fn three() -> u8 {
16     3
17 }
18
19 const fn answer_p2() -> u8 {
20     answer_p1(&three)
21 }
22
23 const fn answer<F: ~const Fn() -> u8>(f: &F) -> u8 {
24     f() + f()
25 }
26
27 const ANSWER: u8 = answer(&answer_p2);
28
29 fn main() {
30     assert_eq!(ANSWER, 42)
31 }