Skip to content

Commit 355cfcd

Browse files
Use unified dataflow framework in check_consts
1 parent 7d58857 commit 355cfcd

File tree

2 files changed

+12
-10
lines changed

2 files changed

+12
-10
lines changed

src/librustc_mir/transform/check_consts/resolver.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ impl<Q> old_dataflow::BottomValue for FlowSensitiveAnalysis<'_, '_, '_, Q> {
158158
const BOTTOM_VALUE: bool = false;
159159
}
160160

161-
impl<Q> dataflow::Analysis<'tcx> for FlowSensitiveAnalysis<'_, '_, 'tcx, Q>
161+
impl<Q> dataflow::AnalysisDomain<'tcx> for FlowSensitiveAnalysis<'_, '_, 'tcx, Q>
162162
where
163163
Q: Qualif,
164164
{
@@ -173,7 +173,12 @@ where
173173
fn initialize_start_block(&self, _body: &mir::Body<'tcx>, state: &mut BitSet<Self::Idx>) {
174174
self.transfer_function(state).initialize_state();
175175
}
176+
}
176177

178+
impl<Q> dataflow::Analysis<'tcx> for FlowSensitiveAnalysis<'_, '_, 'tcx, Q>
179+
where
180+
Q: Qualif,
181+
{
177182
fn apply_statement_effect(
178183
&self,
179184
state: &mut BitSet<Self::Idx>,

src/librustc_mir/transform/check_consts/validation.rs

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,10 @@ struct QualifCursor<'a, 'mir, 'tcx, Q: Qualif> {
3333
}
3434

3535
impl<Q: Qualif> QualifCursor<'a, 'mir, 'tcx, Q> {
36-
pub fn new(q: Q, item: &'a Item<'mir, 'tcx>, dead_unwinds: &BitSet<BasicBlock>) -> Self {
36+
pub fn new(q: Q, item: &'a Item<'mir, 'tcx>) -> Self {
3737
let analysis = FlowSensitiveAnalysis::new(q, item);
38-
let results =
39-
dataflow::Engine::new(item.tcx, &item.body, item.def_id, dead_unwinds, analysis)
40-
.iterate_to_fixpoint();
38+
let results = dataflow::Engine::new_generic(item.tcx, &item.body, item.def_id, analysis)
39+
.iterate_to_fixpoint();
4140
let cursor = dataflow::ResultsCursor::new(*item.body, results);
4241

4342
let mut in_any_value_of_ty = BitSet::new_empty(item.body.local_decls.len());
@@ -146,12 +145,10 @@ impl Deref for Validator<'_, 'mir, 'tcx> {
146145

147146
impl Validator<'a, 'mir, 'tcx> {
148147
pub fn new(item: &'a Item<'mir, 'tcx>) -> Self {
149-
let dead_unwinds = BitSet::new_empty(item.body.basic_blocks().len());
150-
151-
let needs_drop = QualifCursor::new(NeedsDrop, item, &dead_unwinds);
152-
153-
let has_mut_interior = QualifCursor::new(HasMutInterior, item, &dead_unwinds);
148+
let needs_drop = QualifCursor::new(NeedsDrop, item);
149+
let has_mut_interior = QualifCursor::new(HasMutInterior, item);
154150

151+
let dead_unwinds = BitSet::new_empty(item.body.basic_blocks().len());
155152
let indirectly_mutable = old_dataflow::do_dataflow(
156153
item.tcx,
157154
&*item.body,

0 commit comments

Comments
 (0)