diff options
| author | bors <bors@rust-lang.org> | 2022-04-09 02:31:24 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-04-09 02:31:24 +0000 |
| commit | e980c6295582792e4a7c2d67e33cece60c170115 (patch) | |
| tree | 0e52df53a2dba63646376b4f633f595652d05bd4 /compiler/rustc_trait_selection/src | |
| parent | 340f6491bed3525acfabbdbd1545b6aee2fca62b (diff) | |
| parent | 25d6f8e0f647f865775158f35408724278145c50 (diff) | |
Auto merge of #95524 - oli-obk:cached_stable_hash_cleanups, r=nnethercote
Cached stable hash cleanups r? `@nnethercote` Add a sanity assertion in debug mode to check that the cached hashes are actually the ones we get if we compute the hash each time. Add a new data structure that bundles all the hash-caching work to make it easier to re-use it for different interned data structures
Diffstat (limited to 'compiler/rustc_trait_selection/src')
| -rw-r--r-- | compiler/rustc_trait_selection/src/traits/const_evaluatable.rs | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/compiler/rustc_trait_selection/src/traits/const_evaluatable.rs b/compiler/rustc_trait_selection/src/traits/const_evaluatable.rs index 2b9cc75f1b7..302b8b79156 100644 --- a/compiler/rustc_trait_selection/src/traits/const_evaluatable.rs +++ b/compiler/rustc_trait_selection/src/traits/const_evaluatable.rs @@ -8,7 +8,6 @@ //! In this case we try to build an abstract representation of this constant using //! `thir_abstract_const` which can then be checked for structural equality with other //! generic constants mentioned in the `caller_bounds` of the current environment. -use rustc_data_structures::intern::Interned; use rustc_errors::ErrorGuaranteed; use rustc_hir::def::DefKind; use rustc_index::vec::IndexVec; @@ -414,14 +413,12 @@ impl<'a, 'tcx> AbstractConstBuilder<'a, 'tcx> { self.recurse_build(self.body_id)?; for n in self.nodes.iter() { - if let Node::Leaf(ty::Const(Interned( - ty::ConstS { val: ty::ConstKind::Unevaluated(ct), ty: _ }, - _, - ))) = n - { - // `AbstractConst`s should not contain any promoteds as they require references which - // are not allowed. - assert_eq!(ct.promoted, None); + if let Node::Leaf(ct) = n { + if let ty::ConstKind::Unevaluated(ct) = ct.val() { + // `AbstractConst`s should not contain any promoteds as they require references which + // are not allowed. + assert_eq!(ct.promoted, None); + } } } |
