]>
Commit | Line | Data |
---|---|---|
9fa01778 XL |
1 | use crate::ich::StableHashingContext; |
2 | use crate::hir::HirId; | |
3 | use crate::util::nodemap::FxHashSet; | |
abe05a73 XL |
4 | |
5 | use rustc_data_structures::stable_hasher::{HashStable, StableHasher, | |
6 | StableHasherResult}; | |
7 | ||
8faf50e0 XL |
8 | #[derive(Copy, Clone, Debug, RustcEncodable, RustcDecodable)] |
9 | pub enum SignalledError { SawSomeError, NoErrorsSeen } | |
10 | ||
a1dfa0c6 XL |
11 | impl Default for SignalledError { |
12 | fn default() -> SignalledError { | |
13 | SignalledError::NoErrorsSeen | |
14 | } | |
15 | } | |
16 | ||
8faf50e0 XL |
17 | impl_stable_hash_for!(enum self::SignalledError { SawSomeError, NoErrorsSeen }); |
18 | ||
a1dfa0c6 | 19 | #[derive(Debug, Default, RustcEncodable, RustcDecodable)] |
abe05a73 XL |
20 | pub struct BorrowCheckResult { |
21 | pub used_mut_nodes: FxHashSet<HirId>, | |
8faf50e0 | 22 | pub signalled_any_error: SignalledError, |
abe05a73 XL |
23 | } |
24 | ||
0531ce1d | 25 | impl<'a> HashStable<StableHashingContext<'a>> for BorrowCheckResult { |
abe05a73 | 26 | fn hash_stable<W: StableHasherResult>(&self, |
0531ce1d | 27 | hcx: &mut StableHashingContext<'a>, |
abe05a73 XL |
28 | hasher: &mut StableHasher<W>) { |
29 | let BorrowCheckResult { | |
30 | ref used_mut_nodes, | |
8faf50e0 | 31 | ref signalled_any_error, |
abe05a73 XL |
32 | } = *self; |
33 | used_mut_nodes.hash_stable(hcx, hasher); | |
8faf50e0 | 34 | signalled_any_error.hash_stable(hcx, hasher); |
abe05a73 XL |
35 | } |
36 | } |