@@ -37,68 +37,31 @@ impl_stable_hash_for!(struct mir::BasicBlockData<'tcx> { statements, terminator,
37
37
impl_stable_hash_for ! ( struct mir:: UnsafetyViolation { source_info, description, details, kind } ) ;
38
38
impl_stable_hash_for ! ( struct mir:: UnsafetyCheckResult { violations, unsafe_blocks } ) ;
39
39
40
- impl < ' a > HashStable < StableHashingContext < ' a > >
41
- for mir:: BorrowKind {
42
- #[ inline]
43
- fn hash_stable < W : StableHasherResult > ( & self ,
44
- hcx : & mut StableHashingContext < ' a > ,
45
- hasher : & mut StableHasher < W > ) {
46
- mem:: discriminant ( self ) . hash_stable ( hcx, hasher) ;
47
-
48
- match * self {
49
- mir:: BorrowKind :: Shared |
50
- mir:: BorrowKind :: Shallow |
51
- mir:: BorrowKind :: Unique => { }
52
- mir:: BorrowKind :: Mut { allow_two_phase_borrow } => {
53
- allow_two_phase_borrow. hash_stable ( hcx, hasher) ;
54
- }
55
- }
56
- }
57
- }
58
-
59
-
60
- impl < ' a > HashStable < StableHashingContext < ' a > >
61
- for mir:: UnsafetyViolationKind {
62
- #[ inline]
63
- fn hash_stable < W : StableHasherResult > ( & self ,
64
- hcx : & mut StableHashingContext < ' a > ,
65
- hasher : & mut StableHasher < W > ) {
66
-
67
- mem:: discriminant ( self ) . hash_stable ( hcx, hasher) ;
68
-
69
- match * self {
70
- mir:: UnsafetyViolationKind :: General => { }
71
- mir:: UnsafetyViolationKind :: MinConstFn => { }
72
- mir:: UnsafetyViolationKind :: ExternStatic ( lint_node_id) |
73
- mir:: UnsafetyViolationKind :: BorrowPacked ( lint_node_id) => {
74
- lint_node_id. hash_stable ( hcx, hasher) ;
75
- }
40
+ impl_stable_hash_for ! ( enum mir:: BorrowKind {
41
+ Shared ,
42
+ Shallow ,
43
+ Unique ,
44
+ Mut { allow_two_phase_borrow } ,
45
+ } ) ;
76
46
77
- }
78
- }
79
- }
47
+ impl_stable_hash_for ! ( enum mir:: UnsafetyViolationKind {
48
+ General ,
49
+ MinConstFn ,
50
+ ExternStatic ( lint_node_id) ,
51
+ BorrowPacked ( lint_node_id) ,
52
+ } ) ;
80
53
81
54
impl_stable_hash_for ! ( struct mir:: Terminator <' tcx> {
82
55
kind,
83
56
source_info
84
57
} ) ;
85
58
86
- impl < ' a , ' gcx , T > HashStable < StableHashingContext < ' a > > for mir:: ClearCrossCrate < T >
87
- where T : HashStable < StableHashingContext < ' a > >
88
- {
89
- #[ inline]
90
- fn hash_stable < W : StableHasherResult > ( & self ,
91
- hcx : & mut StableHashingContext < ' a > ,
92
- hasher : & mut StableHasher < W > ) {
93
- mem:: discriminant ( self ) . hash_stable ( hcx, hasher) ;
94
- match * self {
95
- mir:: ClearCrossCrate :: Clear => { }
96
- mir:: ClearCrossCrate :: Set ( ref value) => {
97
- value. hash_stable ( hcx, hasher) ;
98
- }
99
- }
59
+ impl_stable_hash_for ! (
60
+ impl <T > for enum mir:: ClearCrossCrate <T > [ mir:: ClearCrossCrate ] {
61
+ Clear ,
62
+ Set ( value) ,
100
63
}
101
- }
64
+ ) ;
102
65
103
66
impl < ' a > HashStable < StableHashingContext < ' a > > for mir:: Local {
104
67
#[ inline]
0 commit comments