summaryrefslogtreecommitdiffstats
path: root/src/test/ui/consts/fn_trait_refs.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
commit218caa410aa38c29984be31a5229b9fa717560ee (patch)
treec54bd55eeb6e4c508940a30e94c0032fbd45d677 /src/test/ui/consts/fn_trait_refs.rs
parentReleasing progress-linux version 1.67.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-218caa410aa38c29984be31a5229b9fa717560ee.tar.xz
rustc-218caa410aa38c29984be31a5229b9fa717560ee.zip
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/ui/consts/fn_trait_refs.rs')
-rw-r--r--src/test/ui/consts/fn_trait_refs.rs77
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));
- };
-}