2 #![warn(clippy::assertions_on_result_states)]
4 use std::result::Result;
11 #[derive(Copy, Clone, Debug)]
14 macro_rules! get_ok_macro {
16 Ok::<_, DebugFoo>(Foo)
22 let r: Result<Foo, DebugFoo> = Ok(Foo);
23 debug_assert!(r.is_ok());
26 // test ok with non-debug error type
27 let r: Result<Foo, Foo> = Ok(Foo);
31 fn get_ok() -> Result<Foo, DebugFoo> {
34 assert!(get_ok().is_ok());
37 assert!(get_ok_macro!().is_ok());
39 // test ok that shouldn't be moved
40 let r: Result<CopyFoo, DebugFoo> = Ok(CopyFoo);
41 fn test_ref_unmoveable_ok(r: &Result<CopyFoo, DebugFoo>) {
44 test_ref_unmoveable_ok(&r);
48 // test ok that is copied
49 let r: Result<CopyFoo, CopyFoo> = Ok(CopyFoo);
53 // test reference to ok
54 let r: Result<CopyFoo, CopyFoo> = Ok(CopyFoo);
55 fn test_ref_copy_ok(r: &Result<CopyFoo, CopyFoo>) {
62 let r: Result<DebugFoo, Foo> = Err(Foo);
63 debug_assert!(r.is_err());
66 // test err with non-debug value type
67 let r: Result<Foo, Foo> = Err(Foo);