mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 06:44:35 +00:00
Remove ResultsCursor::contains
.
It's hardly worth it, and it needs to be removed so that `GenKillAnalysis` can be removed.
This commit is contained in:
parent
5ceb623a4a
commit
874b03ec28
@ -7,7 +7,6 @@ use rustc_index::bit_set::BitSet;
|
|||||||
use rustc_middle::mir::{self, BasicBlock, Location};
|
use rustc_middle::mir::{self, BasicBlock, Location};
|
||||||
|
|
||||||
use super::{Analysis, Direction, Effect, EffectIndex, Results};
|
use super::{Analysis, Direction, Effect, EffectIndex, Results};
|
||||||
use crate::framework::BitSetExt;
|
|
||||||
|
|
||||||
/// Allows random access inspection of the results of a dataflow analysis.
|
/// Allows random access inspection of the results of a dataflow analysis.
|
||||||
///
|
///
|
||||||
@ -221,16 +220,6 @@ where
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'mir, 'tcx, A> ResultsCursor<'mir, 'tcx, A>
|
|
||||||
where
|
|
||||||
A: crate::GenKillAnalysis<'tcx>,
|
|
||||||
A::Domain: BitSetExt<A::Idx>,
|
|
||||||
{
|
|
||||||
pub fn contains(&self, elem: A::Idx) -> bool {
|
|
||||||
self.get().contains(elem)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Clone, Copy, Debug)]
|
#[derive(Clone, Copy, Debug)]
|
||||||
struct CursorPosition {
|
struct CursorPosition {
|
||||||
block: BasicBlock,
|
block: BasicBlock,
|
||||||
|
@ -364,7 +364,7 @@ where
|
|||||||
fn visit_local(&mut self, local: Local, context: PlaceContext, loc: Location) {
|
fn visit_local(&mut self, local: Local, context: PlaceContext, loc: Location) {
|
||||||
if PlaceContext::NonMutatingUse(NonMutatingUseContext::Move) == context {
|
if PlaceContext::NonMutatingUse(NonMutatingUseContext::Move) == context {
|
||||||
self.borrowed_locals.seek_before_primary_effect(loc);
|
self.borrowed_locals.seek_before_primary_effect(loc);
|
||||||
if !self.borrowed_locals.contains(local) {
|
if !self.borrowed_locals.get().contains(local) {
|
||||||
self.trans.kill(local);
|
self.trans.kill(local);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -133,7 +133,7 @@ impl InitializationData<'_, '_> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn maybe_live_dead(&self, path: MovePathIndex) -> (bool, bool) {
|
fn maybe_live_dead(&self, path: MovePathIndex) -> (bool, bool) {
|
||||||
(self.inits.contains(path), self.uninits.contains(path))
|
(self.inits.get().contains(path), self.uninits.get().contains(path))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,7 +179,7 @@ fn compute_replacement<'tcx>(
|
|||||||
} else {
|
} else {
|
||||||
// This is a proper dereference. We can only allow it if `target` is live.
|
// This is a proper dereference. We can only allow it if `target` is live.
|
||||||
maybe_dead.seek_after_primary_effect(loc);
|
maybe_dead.seek_after_primary_effect(loc);
|
||||||
let maybe_dead = maybe_dead.contains(target.local);
|
let maybe_dead = maybe_dead.get().contains(target.local);
|
||||||
!maybe_dead
|
!maybe_dead
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -213,7 +213,7 @@ impl<'b, 'tcx> PossibleBorrowerMap<'b, 'tcx> {
|
|||||||
self.bitset.0.clear();
|
self.bitset.0.clear();
|
||||||
let maybe_live = &mut self.maybe_live;
|
let maybe_live = &mut self.maybe_live;
|
||||||
if let Some(bitset) = self.map.get(&borrowed) {
|
if let Some(bitset) = self.map.get(&borrowed) {
|
||||||
for b in bitset.iter().filter(move |b| maybe_live.contains(*b)) {
|
for b in bitset.iter().filter(move |b| maybe_live.get().contains(*b)) {
|
||||||
self.bitset.0.insert(b);
|
self.bitset.0.insert(b);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -238,6 +238,6 @@ impl<'b, 'tcx> PossibleBorrowerMap<'b, 'tcx> {
|
|||||||
|
|
||||||
pub fn local_is_alive_at(&mut self, local: mir::Local, at: mir::Location) -> bool {
|
pub fn local_is_alive_at(&mut self, local: mir::Local, at: mir::Location) -> bool {
|
||||||
self.maybe_live.seek_after_primary_effect(at);
|
self.maybe_live.seek_after_primary_effect(at);
|
||||||
self.maybe_live.contains(local)
|
self.maybe_live.get().contains(local)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user