Removed dependency on the field-offset crate.
This commit is contained in:
parent
820bfffc25
commit
62bbaa8091
7 changed files with 20 additions and 35 deletions
|
@ -5,7 +5,6 @@ edition = "2021"
|
|||
|
||||
[dependencies]
|
||||
# tidy-alphabetical-start
|
||||
field-offset = "0.3.5"
|
||||
measureme = "11"
|
||||
rustc_data_structures = { path = "../rustc_data_structures" }
|
||||
rustc_errors = { path = "../rustc_errors" }
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
#![warn(unreachable_pub)]
|
||||
// tidy-alphabetical-end
|
||||
|
||||
use field_offset::offset_of;
|
||||
use rustc_data_structures::stable_hasher::HashStable;
|
||||
use rustc_data_structures::sync::AtomicU64;
|
||||
use rustc_middle::arena::Arena;
|
||||
|
@ -89,7 +88,13 @@ where
|
|||
where
|
||||
QueryCtxt<'tcx>: 'a,
|
||||
{
|
||||
self.dynamic.query_state.apply(&qcx.tcx.query_system.states)
|
||||
// Safety:
|
||||
// This is just manually doing the subfield referencing through pointer math.
|
||||
unsafe {
|
||||
&*(&qcx.tcx.query_system.states as *const QueryStates<'tcx>)
|
||||
.byte_add(self.dynamic.query_state)
|
||||
.cast::<QueryState<Self::Key>>()
|
||||
}
|
||||
}
|
||||
|
||||
#[inline(always)]
|
||||
|
@ -97,7 +102,13 @@ where
|
|||
where
|
||||
'tcx: 'a,
|
||||
{
|
||||
self.dynamic.query_cache.apply(&qcx.tcx.query_system.caches)
|
||||
// Safety:
|
||||
// This is just manually doing the subfield referencing through pointer math.
|
||||
unsafe {
|
||||
&*(&qcx.tcx.query_system.caches as *const QueryCaches<'tcx>)
|
||||
.byte_add(self.dynamic.query_cache)
|
||||
.cast::<Self::Cache>()
|
||||
}
|
||||
}
|
||||
|
||||
#[inline(always)]
|
||||
|
|
|
@ -605,8 +605,8 @@ macro_rules! define_queries {
|
|||
eval_always: is_eval_always!([$($modifiers)*]),
|
||||
dep_kind: dep_graph::dep_kinds::$name,
|
||||
handle_cycle_error: handle_cycle_error!([$($modifiers)*]),
|
||||
query_state: offset_of!(QueryStates<'tcx> => $name),
|
||||
query_cache: offset_of!(QueryCaches<'tcx> => $name),
|
||||
query_state: std::mem::offset_of!(QueryStates<'tcx>, $name),
|
||||
query_cache: std::mem::offset_of!(QueryCaches<'tcx>, $name),
|
||||
cache_on_disk: |tcx, key| ::rustc_middle::query::cached::$name(tcx, key),
|
||||
execute_query: |tcx, key| erase(tcx.$name(key)),
|
||||
compute: |tcx, key| {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue