diff options
| author | Camille GILLOT <gillot.camille@gmail.com> | 2022-04-09 19:05:43 +0200 |
|---|---|---|
| committer | Camille GILLOT <gillot.camille@gmail.com> | 2022-04-10 14:48:59 +0200 |
| commit | 42820daf910d1db6ff4b41bc0e4df9e2ff61b4d0 (patch) | |
| tree | 006bb7ad78edba7196e4720d32ddf9d10f570259 | |
| parent | ec7f80036d7191529ba4b1d2af29fed1c5ff5d48 (diff) | |
| download | rust-42820daf910d1db6ff4b41bc0e4df9e2ff61b4d0.tar.gz rust-42820daf910d1db6ff4b41bc0e4df9e2ff61b4d0.zip | |
Directly encode Defaultness in metadata.
| -rw-r--r-- | compiler/rustc_metadata/src/rmeta/encoder.rs | 2 | ||||
| -rw-r--r-- | compiler/rustc_metadata/src/rmeta/mod.rs | 2 | ||||
| -rw-r--r-- | compiler/rustc_metadata/src/rmeta/table.rs | 8 |
3 files changed, 10 insertions, 2 deletions
diff --git a/compiler/rustc_metadata/src/rmeta/encoder.rs b/compiler/rustc_metadata/src/rmeta/encoder.rs index 41bd63d68a5..c33001b9262 100644 --- a/compiler/rustc_metadata/src/rmeta/encoder.rs +++ b/compiler/rustc_metadata/src/rmeta/encoder.rs @@ -1450,7 +1450,7 @@ impl<'a, 'tcx> EncodeContext<'a, 'tcx> { })) } hir::ItemKind::Impl(hir::Impl { defaultness, constness, .. }) => { - record!(self.tables.impl_defaultness[def_id] <- defaultness); + self.tables.impl_defaultness.set(def_id.index, defaultness); self.tables.impl_constness.set(def_id.index, constness); let trait_ref = self.tcx.impl_trait_ref(def_id); diff --git a/compiler/rustc_metadata/src/rmeta/mod.rs b/compiler/rustc_metadata/src/rmeta/mod.rs index 4dd000eaefe..c112430ca18 100644 --- a/compiler/rustc_metadata/src/rmeta/mod.rs +++ b/compiler/rustc_metadata/src/rmeta/mod.rs @@ -312,7 +312,7 @@ define_tables! { impl_parent: Table<DefIndex, Lazy!(DefId)>, impl_polarity: Table<DefIndex, ty::ImplPolarity>, impl_constness: Table<DefIndex, hir::Constness>, - impl_defaultness: Table<DefIndex, Lazy!(hir::Defaultness)>, + impl_defaultness: Table<DefIndex, hir::Defaultness>, // FIXME(eddyb) perhaps compute this on the fly if cheap enough? coerce_unsized_info: Table<DefIndex, Lazy!(ty::adjustment::CoerceUnsizedInfo)>, mir_const_qualif: Table<DefIndex, Lazy!(mir::ConstQualifs)>, diff --git a/compiler/rustc_metadata/src/rmeta/table.rs b/compiler/rustc_metadata/src/rmeta/table.rs index 6bb07a34e0f..3f28a7ed421 100644 --- a/compiler/rustc_metadata/src/rmeta/table.rs +++ b/compiler/rustc_metadata/src/rmeta/table.rs @@ -120,6 +120,14 @@ fixed_size_enum! { } } +fixed_size_enum! { + hir::Defaultness { + ( Final ) + ( Default { has_value: false } ) + ( Default { has_value: true } ) + } +} + // NOTE(eddyb) there could be an impl for `usize`, which would enable a more // generic `Lazy<T>` impl, but in the general case we might not need / want to // fit every `usize` in `u32`. |
