diff options
| author | Camelid <camelidcamel@gmail.com> | 2020-11-05 17:11:29 -0800 |
|---|---|---|
| committer | Camelid <camelidcamel@gmail.com> | 2020-11-05 17:12:35 -0800 |
| commit | b813c727235c48e9142726699dae2e0423fd57d9 (patch) | |
| tree | 5411b7f46411a50f49c37302a0f49921c679588f | |
| parent | f2bbdd0a3257cc980c934a92c5bf9808cf31728c (diff) | |
| download | rust-b813c727235c48e9142726699dae2e0423fd57d9.tar.gz rust-b813c727235c48e9142726699dae2e0423fd57d9.zip | |
Clean up `StructuralEq` docs
| -rw-r--r-- | library/core/src/marker.rs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/library/core/src/marker.rs b/library/core/src/marker.rs index cdf742057b7..29364d0ce9b 100644 --- a/library/core/src/marker.rs +++ b/library/core/src/marker.rs @@ -156,18 +156,18 @@ pub trait StructuralPartialEq { /// Required trait for constants used in pattern matches. /// /// Any type that derives `Eq` automatically implements this trait, *regardless* -/// of whether its type-parameters implement `Eq`. +/// of whether its type parameters implement `Eq`. /// -/// This is a hack to workaround a limitation in our type-system. +/// This is a hack to work around a limitation in our type system. /// -/// Background: +/// # Background /// /// We want to require that types of consts used in pattern matches /// have the attribute `#[derive(PartialEq, Eq)]`. /// /// In a more ideal world, we could check that requirement by just checking that -/// the given type implements both (1.) the `StructuralPartialEq` trait *and* -/// (2.) the `Eq` trait. However, you can have ADTs that *do* `derive(PartialEq, Eq)`, +/// the given type implements both the `StructuralPartialEq` trait *and* +/// the `Eq` trait. However, you can have ADTs that *do* `derive(PartialEq, Eq)`, /// and be a case that we want the compiler to accept, and yet the constant's /// type fails to implement `Eq`. /// @@ -176,8 +176,11 @@ pub trait StructuralPartialEq { /// ```rust /// #[derive(PartialEq, Eq)] /// struct Wrap<X>(X); +/// /// fn higher_order(_: &()) { } +/// /// const CFN: Wrap<fn(&())> = Wrap(higher_order); +/// /// fn main() { /// match CFN { /// CFN => {} |
