diff options
Diffstat (limited to 'src/test/ui/consts/fn_trait_refs.rs')
-rw-r--r-- | src/test/ui/consts/fn_trait_refs.rs | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/src/test/ui/consts/fn_trait_refs.rs b/src/test/ui/consts/fn_trait_refs.rs deleted file mode 100644 index b50749297..000000000 --- a/src/test/ui/consts/fn_trait_refs.rs +++ /dev/null @@ -1,77 +0,0 @@ -// check-pass - -#![feature(const_fn_trait_ref_impls)] -#![feature(fn_traits)] -#![feature(unboxed_closures)] -#![feature(const_trait_impl)] -#![feature(const_mut_refs)] -#![feature(const_cmp)] -#![feature(const_refs_to_cell)] - -use std::marker::Destruct; - -const fn tester_fn<T>(f: T) -> T::Output -where - T: ~const Fn<()> + ~const Destruct, -{ - f() -} - -const fn tester_fn_mut<T>(mut f: T) -> T::Output -where - T: ~const FnMut<()> + ~const Destruct, -{ - f() -} - -const fn tester_fn_once<T>(f: T) -> T::Output -where - T: ~const FnOnce<()>, -{ - f() -} - -const fn test_fn<T>(mut f: T) -> (T::Output, T::Output, T::Output) -where - T: ~const Fn<()> + ~const Destruct, -{ - ( - // impl<A: Tuple, F: ~const Fn + ?Sized> const Fn<A> for &F - tester_fn(&f), - // impl<A: Tuple, F: ~const Fn + ?Sized> const FnMut<A> for &F - tester_fn_mut(&f), - // impl<A: Tuple, F: ~const Fn + ?Sized> const FnOnce<A> for &F - tester_fn_once(&f), - ) -} - -const fn test_fn_mut<T>(mut f: T) -> (T::Output, T::Output) -where - T: ~const FnMut<()> + ~const Destruct, -{ - ( - // impl<A: Tuple, F: ~const FnMut + ?Sized> const FnMut<A> for &mut F - tester_fn_mut(&mut f), - // impl<A: Tuple, F: ~const FnMut + ?Sized> const FnOnce<A> for &mut F - tester_fn_once(&mut f), - ) -} -const fn test(i: i32) -> i32 { - i + 1 -} - -fn main() { - const fn one() -> i32 { - 1 - }; - const fn two() -> i32 { - 2 - }; - const _: () = { - let test_one = test_fn(one); - assert!(test_one == (1, 1, 1)); - - let test_two = test_fn_mut(two); - assert!(test_two == (2, 2)); - }; -} |