]> git.lizzy.rs Git - rust.git/blob - library/core/tests/ops/control_flow.rs
Merge commit '61667dedf55e3e5aa584f7ae2bd0471336b92ce9' into sync_cg_clif-2021-09-19
[rust.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 }