Skip to content

Commit d30988e

Browse files
authored
Rollup merge of #71893 - ecstatic-morse:dataflow-impls-import, r=jonas-schievink
Use the `impls` module to import pre-existing dataflow analyses Currently, existing analyses live in the same module as the traits and types used to define new dataflow analyses. This muddles the [documentation for the `dataflow` module](https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/dataflow/index.html). After this PR, `dataflow::impls` will refer to concrete dataflow analyses, and `dataflow` to the generic interface.
2 parents 538a353 + 095d1fd commit d30988e

File tree

11 files changed

+20
-25
lines changed

11 files changed

+20
-25
lines changed

src/librustc_mir/borrow_check/mod.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,13 @@ use std::mem;
3232
use std::rc::Rc;
3333

3434
use crate::dataflow;
35+
use crate::dataflow::impls::{
36+
Borrows, EverInitializedPlaces, MaybeInitializedPlaces, MaybeUninitializedPlaces,
37+
};
3538
use crate::dataflow::indexes::{BorrowIndex, InitIndex, MoveOutIndex, MovePathIndex};
3639
use crate::dataflow::move_paths::{InitLocation, LookupResult, MoveData, MoveError};
37-
use crate::dataflow::Borrows;
38-
use crate::dataflow::EverInitializedPlaces;
3940
use crate::dataflow::MoveDataParamEnv;
4041
use crate::dataflow::{Analysis, BorrowckFlowState as Flows, BorrowckResults};
41-
use crate::dataflow::{MaybeInitializedPlaces, MaybeUninitializedPlaces};
4242
use crate::transform::MirSource;
4343

4444
use self::diagnostics::{AccessKind, RegionName};

src/librustc_mir/borrow_check/nll.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ use std::str::FromStr;
2121
use self::mir_util::PassWhere;
2222
use polonius_engine::{Algorithm, Output};
2323

24+
use crate::dataflow::impls::MaybeInitializedPlaces;
2425
use crate::dataflow::move_paths::{InitKind, InitLocation, MoveData};
25-
use crate::dataflow::MaybeInitializedPlaces;
2626
use crate::dataflow::ResultsCursor;
2727
use crate::transform::MirSource;
2828
use crate::util as mir_util;

src/librustc_mir/borrow_check/type_check/liveness/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ use rustc_middle::mir::{Body, Local};
33
use rustc_middle::ty::{RegionVid, TyCtxt};
44
use std::rc::Rc;
55

6+
use crate::dataflow::impls::MaybeInitializedPlaces;
67
use crate::dataflow::move_paths::MoveData;
7-
use crate::dataflow::MaybeInitializedPlaces;
88
use crate::dataflow::ResultsCursor;
99

1010
use crate::borrow_check::{

src/librustc_mir/borrow_check/type_check/liveness/trace.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ use rustc_trait_selection::traits::query::type_op::outlives::DropckOutlives;
88
use rustc_trait_selection::traits::query::type_op::TypeOp;
99
use std::rc::Rc;
1010

11+
use crate::dataflow::impls::MaybeInitializedPlaces;
1112
use crate::dataflow::indexes::MovePathIndex;
1213
use crate::dataflow::move_paths::{HasMoveData, MoveData};
13-
use crate::dataflow::MaybeInitializedPlaces;
1414
use crate::dataflow::ResultsCursor;
1515

1616
use crate::borrow_check::{

src/librustc_mir/borrow_check/type_check/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ use rustc_trait_selection::traits::query::type_op::custom::CustomTypeOp;
3939
use rustc_trait_selection::traits::query::{Fallible, NoSolution};
4040
use rustc_trait_selection::traits::{self, ObligationCause, PredicateObligations};
4141

42+
use crate::dataflow::impls::MaybeInitializedPlaces;
4243
use crate::dataflow::move_paths::MoveData;
43-
use crate::dataflow::MaybeInitializedPlaces;
4444
use crate::dataflow::ResultsCursor;
4545
use crate::transform::{
4646
check_consts::ConstCx,

src/librustc_mir/dataflow/impls/mod.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,14 @@ use super::on_lookup_result_bits;
2121
use crate::dataflow::drop_flag_effects;
2222

2323
mod borrowed_locals;
24+
pub(super) mod borrows;
2425
mod liveness;
2526
mod storage_liveness;
2627

27-
pub use self::borrowed_locals::*;
28+
pub use self::borrowed_locals::{MaybeBorrowedLocals, MaybeMutBorrowedLocals};
29+
pub use self::borrows::Borrows;
2830
pub use self::liveness::MaybeLiveLocals;
29-
pub use self::storage_liveness::*;
30-
31-
pub(super) mod borrows;
31+
pub use self::storage_liveness::{MaybeRequiresStorage, MaybeStorageLive};
3232

3333
/// `MaybeInitializedPlaces` tracks all places that might be
3434
/// initialized upon reaching a particular point in the control flow

src/librustc_mir/dataflow/mod.rs

+1-6
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,12 @@ pub use self::framework::{
88
BottomValue, Engine, Forward, GenKill, GenKillAnalysis, Results, ResultsCursor,
99
ResultsRefCursor, ResultsVisitor,
1010
};
11-
pub use self::impls::{
12-
borrows::Borrows, DefinitelyInitializedPlaces, EverInitializedPlaces, MaybeBorrowedLocals,
13-
MaybeInitializedPlaces, MaybeLiveLocals, MaybeMutBorrowedLocals, MaybeRequiresStorage,
14-
MaybeStorageLive, MaybeUninitializedPlaces,
15-
};
1611

1712
use self::move_paths::MoveData;
1813

1914
pub mod drop_flag_effects;
2015
mod framework;
21-
mod impls;
16+
pub mod impls;
2217
pub mod move_paths;
2318

2419
pub(crate) mod indexes {

src/librustc_mir/transform/check_consts/validation.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use super::qualifs::{self, CustomEq, HasMutInterior, NeedsDrop};
2020
use super::resolver::FlowSensitiveAnalysis;
2121
use super::{is_lang_panic_fn, ConstCx, ConstKind, Qualif};
2222
use crate::const_eval::{is_const_fn, is_unstable_const_fn};
23-
use crate::dataflow::MaybeMutBorrowedLocals;
23+
use crate::dataflow::impls::MaybeMutBorrowedLocals;
2424
use crate::dataflow::{self, Analysis};
2525

2626
// We are using `MaybeMutBorrowedLocals` as a proxy for whether an item may have been mutated

src/librustc_mir/transform/elaborate_drops.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
use crate::dataflow;
2+
use crate::dataflow::impls::{MaybeInitializedPlaces, MaybeUninitializedPlaces};
23
use crate::dataflow::move_paths::{LookupResult, MoveData, MovePathIndex};
34
use crate::dataflow::on_lookup_result_bits;
45
use crate::dataflow::MoveDataParamEnv;
56
use crate::dataflow::{on_all_children_bits, on_all_drop_children_bits};
67
use crate::dataflow::{Analysis, ResultsCursor};
7-
use crate::dataflow::{MaybeInitializedPlaces, MaybeUninitializedPlaces};
88
use crate::transform::{MirPass, MirSource};
99
use crate::util::elaborate_drops::{elaborate_drop, DropFlagState, Unwind};
1010
use crate::util::elaborate_drops::{DropElaborator, DropFlagMode, DropStyle};

src/librustc_mir/transform/generator.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,10 @@
4949
//! For generators with state 1 (returned) and state 2 (poisoned) it does nothing.
5050
//! Otherwise it drops all the values in scope at the last suspension point.
5151
52-
use crate::dataflow::{self, Analysis};
53-
use crate::dataflow::{
52+
use crate::dataflow::impls::{
5453
MaybeBorrowedLocals, MaybeLiveLocals, MaybeRequiresStorage, MaybeStorageLive,
5554
};
55+
use crate::dataflow::{self, Analysis};
5656
use crate::transform::no_landing_pads::no_landing_pads;
5757
use crate::transform::simplify;
5858
use crate::transform::{MirPass, MirSource};

src/librustc_mir/transform/rustc_peek.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@ use rustc_index::bit_set::BitSet;
99
use rustc_middle::mir::{self, Body, Local, Location};
1010
use rustc_middle::ty::{self, Ty, TyCtxt};
1111

12+
use crate::dataflow::impls::{
13+
DefinitelyInitializedPlaces, MaybeInitializedPlaces, MaybeLiveLocals, MaybeMutBorrowedLocals,
14+
MaybeUninitializedPlaces,
15+
};
1216
use crate::dataflow::move_paths::{HasMoveData, MoveData};
1317
use crate::dataflow::move_paths::{LookupResult, MovePathIndex};
14-
use crate::dataflow::MaybeMutBorrowedLocals;
1518
use crate::dataflow::MoveDataParamEnv;
1619
use crate::dataflow::{Analysis, Results, ResultsCursor};
17-
use crate::dataflow::{
18-
DefinitelyInitializedPlaces, MaybeInitializedPlaces, MaybeLiveLocals, MaybeUninitializedPlaces,
19-
};
2020

2121
pub struct SanityCheck;
2222

0 commit comments

Comments
 (0)