diff options
| author | bors <bors@rust-lang.org> | 2014-03-23 08:36:51 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2014-03-23 08:36:51 -0700 |
| commit | 903e83889ade166bf62f1ee74df8bf8331ea17d1 (patch) | |
| tree | 2d2c838f7adc52628632948a8b37820c4f03ed75 /src/libstd/str.rs | |
| parent | cafb7ed6f671a0102c4df9abad43b747c00f5cdf (diff) | |
| parent | f6db0ef9464a17fa6e547e755b1b5dfa09af9499 (diff) | |
| download | rust-903e83889ade166bf62f1ee74df8bf8331ea17d1.tar.gz rust-903e83889ade166bf62f1ee74df8bf8331ea17d1.zip | |
auto merge of #13102 : huonw/rust/totaleq-deriving, r=thestinger
std: remove the `equals` method from `TotalEq`. `TotalEq` is now just an assertion about the `Eq` impl of a type (i.e. `==` is a total equality if a type implements `TotalEq`) so the extra method is just confusing. Also, a new method magically appeared as a hack to allow deriving to assert that the contents of a struct/enum are also TotalEq, because the deriving infrastructure makes it very hard to do anything but create a trait method. (You didn't hear about this horrible work-around from me :(.)
Diffstat (limited to 'src/libstd/str.rs')
| -rw-r--r-- | src/libstd/str.rs | 27 |
1 files changed, 5 insertions, 22 deletions
diff --git a/src/libstd/str.rs b/src/libstd/str.rs index 6a3b4485a24..4466439bcbd 100644 --- a/src/libstd/str.rs +++ b/src/libstd/str.rs @@ -1262,16 +1262,11 @@ impl<'a> IntoMaybeOwned<'a> for MaybeOwned<'a> { impl<'a> Eq for MaybeOwned<'a> { #[inline] fn eq(&self, other: &MaybeOwned) -> bool { - self.as_slice().equals(&other.as_slice()) + self.as_slice() == other.as_slice() } } -impl<'a> TotalEq for MaybeOwned<'a> { - #[inline] - fn equals(&self, other: &MaybeOwned) -> bool { - self.as_slice().equals(&other.as_slice()) - } -} +impl<'a> TotalEq for MaybeOwned<'a> {} impl<'a> Ord for MaybeOwned<'a> { #[inline] @@ -1290,7 +1285,7 @@ impl<'a> TotalOrd for MaybeOwned<'a> { impl<'a, S: Str> Equiv<S> for MaybeOwned<'a> { #[inline] fn equiv(&self, other: &S) -> bool { - self.as_slice().equals(&other.as_slice()) + self.as_slice() == other.as_slice() } } @@ -1577,19 +1572,9 @@ pub mod traits { } } - impl<'a> TotalEq for &'a str { - #[inline] - fn equals(&self, other: & &'a str) -> bool { - eq_slice((*self), (*other)) - } - } + impl<'a> TotalEq for &'a str {} - impl TotalEq for ~str { - #[inline] - fn equals(&self, other: &~str) -> bool { - eq_slice((*self), (*other)) - } - } + impl TotalEq for ~str {} impl<'a> Ord for &'a str { #[inline] @@ -4450,11 +4435,9 @@ mod tests { assert_eq!(Owned(~""), Default::default()); assert!(s.cmp(&o) == Equal); - assert!(s.equals(&o)); assert!(s.equiv(&o)); assert!(o.cmp(&s) == Equal); - assert!(o.equals(&s)); assert!(o.equiv(&s)); } |
