@@ -349,7 +349,7 @@ impl AssertMessage {
349
349
}
350
350
}
351
351
352
- #[ derive( Copy , Clone , Debug , Eq , PartialEq , Serialize ) ]
352
+ #[ derive( Copy , Clone , Debug , Eq , PartialEq , Hash , Serialize ) ]
353
353
pub enum BinOp {
354
354
Add ,
355
355
AddUnchecked ,
@@ -384,7 +384,7 @@ impl BinOp {
384
384
}
385
385
}
386
386
387
- #[ derive( Copy , Clone , Debug , Eq , PartialEq , Serialize ) ]
387
+ #[ derive( Copy , Clone , Debug , Eq , PartialEq , Hash , Serialize ) ]
388
388
pub enum UnOp {
389
389
Not ,
390
390
Neg ,
@@ -490,7 +490,7 @@ pub enum StatementKind {
490
490
Nop ,
491
491
}
492
492
493
- #[ derive( Clone , Debug , Eq , PartialEq , Serialize ) ]
493
+ #[ derive( Clone , Debug , Eq , PartialEq , Hash , Serialize ) ]
494
494
pub enum Rvalue {
495
495
/// Creates a pointer with the indicated mutability to the place.
496
496
///
@@ -666,7 +666,7 @@ impl Rvalue {
666
666
}
667
667
}
668
668
669
- #[ derive( Clone , Debug , Eq , PartialEq , Serialize ) ]
669
+ #[ derive( Clone , Debug , Eq , PartialEq , Hash , Serialize ) ]
670
670
pub enum AggregateKind {
671
671
Array ( Ty ) ,
672
672
Tuple ,
@@ -677,14 +677,14 @@ pub enum AggregateKind {
677
677
RawPtr ( Ty , Mutability ) ,
678
678
}
679
679
680
- #[ derive( Clone , Debug , Eq , PartialEq , Serialize ) ]
680
+ #[ derive( Clone , Debug , Eq , PartialEq , Hash , Serialize ) ]
681
681
pub enum Operand {
682
682
Copy ( Place ) ,
683
683
Move ( Place ) ,
684
684
Constant ( ConstOperand ) ,
685
685
}
686
686
687
- #[ derive( Clone , Eq , PartialEq , Serialize ) ]
687
+ #[ derive( Clone , Eq , PartialEq , Hash , Serialize ) ]
688
688
pub struct Place {
689
689
pub local : Local ,
690
690
/// projection out of a place (access a field, deref a pointer, etc)
@@ -697,7 +697,7 @@ impl From<Local> for Place {
697
697
}
698
698
}
699
699
700
- #[ derive( Clone , Debug , Eq , PartialEq , Serialize ) ]
700
+ #[ derive( Clone , Debug , Eq , PartialEq , Hash , Serialize ) ]
701
701
pub struct ConstOperand {
702
702
pub span : Span ,
703
703
pub user_ty : Option < UserTypeAnnotationIndex > ,
@@ -770,7 +770,7 @@ pub enum VarDebugInfoContents {
770
770
// ProjectionElem<Local, Ty>) and user-provided type annotations (for which the projection elements
771
771
// are of type ProjectionElem<(), ()>).
772
772
// In rustc_public's IR we don't need this generality, so we just use ProjectionElem for Places.
773
- #[ derive( Clone , Debug , Eq , PartialEq , Serialize ) ]
773
+ #[ derive( Clone , Debug , Eq , PartialEq , Hash , Serialize ) ]
774
774
pub enum ProjectionElem {
775
775
/// Dereference projections (e.g. `*_1`) project to the address referenced by the base place.
776
776
Deref ,
@@ -913,7 +913,7 @@ impl SwitchTargets {
913
913
}
914
914
}
915
915
916
- #[ derive( Copy , Clone , Debug , Eq , PartialEq , Serialize ) ]
916
+ #[ derive( Copy , Clone , Debug , Eq , PartialEq , Hash , Serialize ) ]
917
917
pub enum BorrowKind {
918
918
/// Data must be immutable and is aliasable.
919
919
Shared ,
@@ -940,7 +940,7 @@ impl BorrowKind {
940
940
}
941
941
}
942
942
943
- #[ derive( Copy , Clone , Debug , Eq , PartialEq , Serialize ) ]
943
+ #[ derive( Copy , Clone , Debug , Eq , PartialEq , Hash , Serialize ) ]
944
944
pub enum RawPtrKind {
945
945
Mut ,
946
946
Const ,
@@ -958,14 +958,14 @@ impl RawPtrKind {
958
958
}
959
959
}
960
960
961
- #[ derive( Copy , Clone , Debug , Eq , PartialEq , Serialize ) ]
961
+ #[ derive( Copy , Clone , Debug , Eq , PartialEq , Hash , Serialize ) ]
962
962
pub enum MutBorrowKind {
963
963
Default ,
964
964
TwoPhaseBorrow ,
965
965
ClosureCapture ,
966
966
}
967
967
968
- #[ derive( Copy , Clone , Debug , Eq , PartialEq , Serialize ) ]
968
+ #[ derive( Copy , Clone , Debug , Eq , PartialEq , Hash , Serialize ) ]
969
969
pub enum FakeBorrowKind {
970
970
/// A shared (deep) borrow. Data must be immutable and is aliasable.
971
971
Deep ,
@@ -982,13 +982,13 @@ pub enum Mutability {
982
982
Mut ,
983
983
}
984
984
985
- #[ derive( Copy , Clone , Debug , Eq , PartialEq , Serialize ) ]
985
+ #[ derive( Copy , Clone , Debug , Eq , PartialEq , Hash , Serialize ) ]
986
986
pub enum Safety {
987
987
Safe ,
988
988
Unsafe ,
989
989
}
990
990
991
- #[ derive( Copy , Clone , Debug , Eq , PartialEq , Serialize ) ]
991
+ #[ derive( Copy , Clone , Debug , Eq , PartialEq , Hash , Serialize ) ]
992
992
pub enum PointerCoercion {
993
993
/// Go from a fn-item type to a fn-pointer type.
994
994
ReifyFnPointer ,
@@ -1015,7 +1015,7 @@ pub enum PointerCoercion {
1015
1015
Unsize ,
1016
1016
}
1017
1017
1018
- #[ derive( Copy , Clone , Debug , Eq , PartialEq , Serialize ) ]
1018
+ #[ derive( Copy , Clone , Debug , Eq , PartialEq , Hash , Serialize ) ]
1019
1019
pub enum CastKind {
1020
1020
// FIXME(smir-rename): rename this to PointerExposeProvenance
1021
1021
PointerExposeAddress ,
@@ -1030,7 +1030,7 @@ pub enum CastKind {
1030
1030
Transmute ,
1031
1031
}
1032
1032
1033
- #[ derive( Clone , Debug , Eq , PartialEq , Serialize ) ]
1033
+ #[ derive( Clone , Debug , Eq , PartialEq , Hash , Serialize ) ]
1034
1034
pub enum NullOp {
1035
1035
/// Returns the size of a value of that type.
1036
1036
SizeOf ,
0 commit comments