@@ -37,68 +37,31 @@ impl_stable_hash_for!(struct mir::BasicBlockData<'tcx> { statements, terminator,
3737impl_stable_hash_for ! ( struct mir:: UnsafetyViolation { source_info, description, details, kind } ) ;
3838impl_stable_hash_for ! ( struct mir:: UnsafetyCheckResult { violations, unsafe_blocks } ) ;
3939
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+ } ) ;
7646
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+ } ) ;
8053
8154impl_stable_hash_for ! ( struct mir:: Terminator <' tcx> {
8255 kind,
8356 source_info
8457} ) ;
8558
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) ,
10063 }
101- }
64+ ) ;
10265
10366impl < ' a > HashStable < StableHashingContext < ' a > > for mir:: Local {
10467 #[ inline]
0 commit comments