]> git.proxmox.com Git - rustc.git/blob - library/core/tests/ops/control_flow.rs
New upstream version 1.52.0~beta.3+dfsg1
[rustc.git] / library / core / tests / ops / control_flow.rs
1 use core::intrinsics::discriminant_value;
2 use core::ops::ControlFlow;
3
4 #[test]
5 fn control_flow_discriminants_match_result() {
6 // This isn't stable surface area, but helps keep `?` cheap between them,
7 // even if LLVM can't always take advantage of it right now.
8 // (Sadly Result and Option are inconsistent, so ControlFlow can't match both.)
9
10 assert_eq!(
11 discriminant_value(&ControlFlow::<i32, i32>::Break(3)),
12 discriminant_value(&Result::<i32, i32>::Err(3)),
13 );
14 assert_eq!(
15 discriminant_value(&ControlFlow::<i32, i32>::Continue(3)),
16 discriminant_value(&Result::<i32, i32>::Ok(3)),
17 );
18 }