Rollup merge of #60727 - chpio:master, r=sfackler
add comment to `Rc`/`Arc`'s `Eq` specialization in addition to https://github.com/rust-lang/rust/pull/56550 https://github.com/rust-lang/rust/pull/42965#issuecomment-312702479
This commit is contained in:
commit
e19ad45107
@ -932,6 +932,11 @@ impl<T: ?Sized + PartialEq> RcEqIdent<T> for Rc<T> {
|
||||
}
|
||||
}
|
||||
|
||||
/// We're doing this specialization here, and not as a more general optimization on `&T`, because it
|
||||
/// would otherwise add a cost to all equality checks on refs. We assume that `Rc`s are used to
|
||||
/// store large values, that are slow to clone, but also heavy to check for equality, causing this
|
||||
/// cost to pay off more easily. It's also more likely to have two `Rc` clones, that point to
|
||||
/// the same value, than two `&T`s.
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
impl<T: ?Sized + Eq> RcEqIdent<T> for Rc<T> {
|
||||
#[inline]
|
||||
|
@ -1377,6 +1377,11 @@ impl<T: ?Sized + PartialEq> ArcEqIdent<T> for Arc<T> {
|
||||
}
|
||||
}
|
||||
|
||||
/// We're doing this specialization here, and not as a more general optimization on `&T`, because it
|
||||
/// would otherwise add a cost to all equality checks on refs. We assume that `Arc`s are used to
|
||||
/// store large values, that are slow to clone, but also heavy to check for equality, causing this
|
||||
/// cost to pay off more easily. It's also more likely to have two `Arc` clones, that point to
|
||||
/// the same value, than two `&T`s.
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
impl<T: ?Sized + Eq> ArcEqIdent<T> for Arc<T> {
|
||||
#[inline]
|
||||
|
Loading…
Reference in New Issue
Block a user