From a4e926daeeaedc9178846711daf1f4cb6ce505fb Mon Sep 17 00:00:00 2001 From: Lzu Tao Date: Thu, 27 Aug 2020 13:45:01 +0000 Subject: std: move "mod tests/benches" to separate files Also doing fmt inplace as requested. --- library/std/src/error/tests.rs | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 library/std/src/error/tests.rs (limited to 'library/std/src/error') diff --git a/library/std/src/error/tests.rs b/library/std/src/error/tests.rs new file mode 100644 index 00000000000..66d6924f34d --- /dev/null +++ b/library/std/src/error/tests.rs @@ -0,0 +1,37 @@ +use super::Error; +use crate::fmt; + +#[derive(Debug, PartialEq)] +struct A; +#[derive(Debug, PartialEq)] +struct B; + +impl fmt::Display for A { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "A") + } +} +impl fmt::Display for B { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "B") + } +} + +impl Error for A {} +impl Error for B {} + +#[test] +fn downcasting() { + let mut a = A; + let a = &mut a as &mut (dyn Error + 'static); + assert_eq!(a.downcast_ref::(), Some(&A)); + assert_eq!(a.downcast_ref::(), None); + assert_eq!(a.downcast_mut::(), Some(&mut A)); + assert_eq!(a.downcast_mut::(), None); + + let a: Box = Box::new(A); + match a.downcast::() { + Ok(..) => panic!("expected error"), + Err(e) => assert_eq!(*e.downcast::().unwrap(), A), + } +} -- cgit 1.4.1-3-g733a5