Use EvalContext's TyCtx for the purpose of hashing the evaluation context
This commit is contained in:
parent
add9ee24db
commit
a26ceb3be4
2 changed files with 8 additions and 2 deletions
|
@ -227,12 +227,13 @@ impl<'a, 'mir, 'tcx, M> InfiniteLoopDetector<'a, 'mir, 'tcx, M>
|
||||||
|
|
||||||
pub fn observe_and_analyze(
|
pub fn observe_and_analyze(
|
||||||
&mut self,
|
&mut self,
|
||||||
|
tcx: &TyCtxt<'b, 'tcx, 'tcx>,
|
||||||
machine: &M,
|
machine: &M,
|
||||||
memory: &Memory<'a, 'mir, 'tcx, M>,
|
memory: &Memory<'a, 'mir, 'tcx, M>,
|
||||||
stack: &[Frame<'mir, 'tcx>],
|
stack: &[Frame<'mir, 'tcx>],
|
||||||
) -> EvalResult<'tcx, ()> {
|
) -> EvalResult<'tcx, ()> {
|
||||||
|
|
||||||
let mut hcx = memory.tcx.get_stable_hashing_context();
|
let mut hcx = tcx.get_stable_hashing_context();
|
||||||
let mut hasher = StableHasher::<u64>::new();
|
let mut hasher = StableHasher::<u64>::new();
|
||||||
(machine, stack).hash_stable(&mut hcx, &mut hasher);
|
(machine, stack).hash_stable(&mut hcx, &mut hasher);
|
||||||
let hash = hasher.finish();
|
let hash = hasher.finish();
|
||||||
|
|
|
@ -73,7 +73,12 @@ impl<'a, 'mir, 'tcx, M: Machine<'mir, 'tcx>> EvalContext<'a, 'mir, 'tcx, M> {
|
||||||
"Constant evaluating a complex constant, this might take some time");
|
"Constant evaluating a complex constant, this might take some time");
|
||||||
}
|
}
|
||||||
|
|
||||||
self.loop_detector.observe_and_analyze(&self.machine, &self.memory, &self.stack[..])
|
self.loop_detector.observe_and_analyze(
|
||||||
|
&self.tcx,
|
||||||
|
&self.machine,
|
||||||
|
&self.memory,
|
||||||
|
&self.stack[..],
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn run(&mut self) -> EvalResult<'tcx> {
|
pub fn run(&mut self) -> EvalResult<'tcx> {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue