From 3f4f6a0db2c7f03a5ede3debe982c6361a204210 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Linus=20F=C3=A4rnstrand?= Date: Sun, 14 Jan 2018 13:57:56 +0100 Subject: [PATCH] Simplify CFArray test with new downcast method --- core-foundation/src/array.rs | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/core-foundation/src/array.rs b/core-foundation/src/array.rs index 1fa9c03..ced572c 100644 --- a/core-foundation/src/array.rs +++ b/core-foundation/src/array.rs @@ -207,27 +207,25 @@ mod tests { n4.as_CFTypeRef(), n5.as_CFTypeRef()]); - unsafe { - let mut sum = 0; + let mut sum = 0; - let mut iter = arr.iter(); - assert_eq!(iter.len(), 6); - assert!(iter.next().is_some()); - assert_eq!(iter.len(), 5); + let mut iter = arr.iter(); + assert_eq!(iter.len(), 6); + assert!(iter.next().is_some()); + assert_eq!(iter.len(), 5); - for elem in iter { - let number: CFNumber = TCFType::wrap_under_get_rule(mem::transmute(elem)); - sum += number.to_i64().unwrap() - } - - assert!(sum == 15); - - for elem in arr.iter() { - let number: CFNumber = TCFType::wrap_under_get_rule(mem::transmute(elem)); - sum += number.to_i64().unwrap() - } - - assert!(sum == 30); + for elem in iter { + let number: CFNumber = elem.downcast::<_, CFNumber>().unwrap(); + sum += number.to_i64().unwrap() } + + assert!(sum == 15); + + for elem in arr.iter() { + let number: CFNumber = elem.downcast::<_, CFNumber>().unwrap(); + sum += number.to_i64().unwrap() + } + + assert!(sum == 30); } }