summaryrefslogtreecommitdiffstats
path: root/src/test/ui/array-slice-vec/vec-matching-fold.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/array-slice-vec/vec-matching-fold.rs')
-rw-r--r--src/test/ui/array-slice-vec/vec-matching-fold.rs46
1 files changed, 0 insertions, 46 deletions
diff --git a/src/test/ui/array-slice-vec/vec-matching-fold.rs b/src/test/ui/array-slice-vec/vec-matching-fold.rs
deleted file mode 100644
index 998899271..000000000
--- a/src/test/ui/array-slice-vec/vec-matching-fold.rs
+++ /dev/null
@@ -1,46 +0,0 @@
-// run-pass
-
-use std::fmt::Debug;
-
-fn foldl<T, U, F>(values: &[T],
- initial: U,
- mut function: F)
- -> U where
- U: Clone+Debug, T:Debug,
- F: FnMut(U, &T) -> U,
-{ match values {
- &[ref head, ref tail @ ..] =>
- foldl(tail, function(initial, head), function),
- &[] => {
- // FIXME: call guards
- let res = initial.clone(); res
- }
- }
-}
-
-fn foldr<T, U, F>(values: &[T],
- initial: U,
- mut function: F)
- -> U where
- U: Clone,
- F: FnMut(&T, U) -> U,
-{
- match values {
- &[ref head @ .., ref tail] =>
- foldr(head, function(tail, initial), function),
- &[] => {
- // FIXME: call guards
- let res = initial.clone(); res
- }
- }
-}
-
-pub fn main() {
- let x = &[1, 2, 3, 4, 5];
-
- let product = foldl(x, 1, |a, b| a * *b);
- assert_eq!(product, 120);
-
- let sum = foldr(x, 0, |a, b| *a + b);
- assert_eq!(sum, 15);
-}