]> git.lizzy.rs Git - rust.git/blob - library/core/tests/ops/control_flow.rs
Rollup merge of #106570 - Xaeroxe:div-duration-tests, r=JohnTitor
[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 }