Skip to content

Commit d4bd794

Browse files
authored
Rollup merge of #103084 - inquisitivecrystal:control-flow, r=scottmcm
Derive `Eq` and `Hash` for `ControlFlow` There's really no reason for `ControlFlow` not to derive these traits. This is the part of #96416 that no one objected to, but that PR seems stale. The `Eq` derive was also [requested](https://rust-lang.zulipchat.com/#narrow/stream/219381-t-libs/topic/.60ControlFlow.3A.20Eq.60/near/303610659) by `@lcnr` on Zulip to allow for pattern matching. This change requires an FCP because it's insta-stable. Closes #96416.
2 parents 3aae004 + 4a92cf6 commit d4bd794

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

library/core/src/ops/control_flow.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,9 @@ use crate::{convert, ops};
7979
/// [`Break`]: ControlFlow::Break
8080
/// [`Continue`]: ControlFlow::Continue
8181
#[stable(feature = "control_flow_enum_type", since = "1.55.0")]
82-
#[derive(Debug, Clone, Copy, PartialEq)]
82+
// ControlFlow should not implement PartialOrd or Ord, per RFC 3058:
83+
// https://rust-lang.github.io/rfcs/3058-try-trait-v2.html#traits-for-controlflow
84+
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
8385
pub enum ControlFlow<B, C = ()> {
8486
/// Move on to the next phase of the operation as normal.
8587
#[stable(feature = "control_flow_enum_type", since = "1.55.0")]

0 commit comments

Comments
 (0)