Stop ConstraintCategory
Ord
impl from relying on Ty
's Ord
impl.
This commit is contained in:
parent
1cf345e10a
commit
cda209bf43
5 changed files with 32 additions and 22 deletions
|
@ -284,8 +284,15 @@ rustc_data_structures::static_assert_size!(ConstraintCategory<'_>, 16);
|
|||
/// order of the category, thereby influencing diagnostic output.
|
||||
///
|
||||
/// See also `rustc_const_eval::borrow_check::constraints`.
|
||||
#[derive(Copy, Clone, Debug, Eq, PartialEq, PartialOrd, Ord, Hash)]
|
||||
#[derive(Copy, Clone, Debug, Eq, PartialEq, Hash)]
|
||||
#[derive(TyEncodable, TyDecodable, HashStable, TypeVisitable, TypeFoldable)]
|
||||
#[derive(derivative::Derivative)]
|
||||
#[derivative(
|
||||
PartialOrd,
|
||||
Ord,
|
||||
PartialOrd = "feature_allow_slow_enum",
|
||||
Ord = "feature_allow_slow_enum"
|
||||
)]
|
||||
pub enum ConstraintCategory<'tcx> {
|
||||
Return(ReturnConstraint),
|
||||
Yield,
|
||||
|
@ -295,6 +302,7 @@ pub enum ConstraintCategory<'tcx> {
|
|||
Cast {
|
||||
/// Whether this is an unsizing cast and if yes, this contains the target type.
|
||||
/// Region variables are erased to ReErased.
|
||||
#[derivative(PartialOrd = "ignore", Ord = "ignore")]
|
||||
unsize_to: Option<Ty<'tcx>>,
|
||||
},
|
||||
|
||||
|
@ -304,7 +312,7 @@ pub enum ConstraintCategory<'tcx> {
|
|||
ClosureBounds,
|
||||
|
||||
/// Contains the function type if available.
|
||||
CallArgument(Option<Ty<'tcx>>),
|
||||
CallArgument(#[derivative(PartialOrd = "ignore", Ord = "ignore")] Option<Ty<'tcx>>),
|
||||
CopyBound,
|
||||
SizedBound,
|
||||
Assignment,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue