rustc_mir_dataflow/
lib.rs

1// tidy-alphabetical-start
2#![feature(assert_matches)]
3#![feature(associated_type_defaults)]
4#![feature(box_patterns)]
5#![feature(exact_size_is_empty)]
6#![feature(file_buffered)]
7#![feature(never_type)]
8#![feature(try_blocks)]
9// tidy-alphabetical-end
10
11use rustc_middle::ty;
12
13// Please change the public `use` directives cautiously, as they might be used by external tools.
14// See issue #120130.
15pub use self::drop_flag_effects::{
16    DropFlagState, drop_flag_effects_for_function_entry, drop_flag_effects_for_location,
17    move_path_children_matching, on_all_children_bits, on_lookup_result_bits,
18};
19pub use self::framework::{
20    Analysis, Backward, Direction, EntryStates, Forward, GenKill, JoinSemiLattice, MaybeReachable,
21    Results, ResultsCursor, ResultsVisitor, fmt, graphviz, lattice, visit_reachable_results,
22    visit_results,
23};
24use self::move_paths::MoveData;
25
26pub mod debuginfo;
27mod drop_flag_effects;
28mod errors;
29mod framework;
30pub mod impls;
31pub mod move_paths;
32pub mod points;
33pub mod rustc_peek;
34mod un_derefer;
35pub mod value_analysis;
36
37#[allow(non_upper_case_globals)]
#[doc(hidden)]
#[doc =
r" Auto-generated constants for type-checked references to Fluent messages."]
pub(crate) mod fluent_generated {
    #[doc =
    "Constant referring to Fluent message `mir_dataflow_duplicate_values_for` from `mir_dataflow`"]
    pub const mir_dataflow_duplicate_values_for: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_dataflow_duplicate_values_for"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_dataflow_path_must_end_in_filename` from `mir_dataflow`"]
    pub const mir_dataflow_path_must_end_in_filename:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_dataflow_path_must_end_in_filename"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_dataflow_peek_argument_not_a_local` from `mir_dataflow`"]
    pub const mir_dataflow_peek_argument_not_a_local:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_dataflow_peek_argument_not_a_local"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_dataflow_peek_argument_untracked` from `mir_dataflow`"]
    pub const mir_dataflow_peek_argument_untracked: rustc_errors::DiagMessage
        =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_dataflow_peek_argument_untracked"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_dataflow_peek_bit_not_set` from `mir_dataflow`"]
    pub const mir_dataflow_peek_bit_not_set: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_dataflow_peek_bit_not_set"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_dataflow_peek_must_be_not_temporary` from `mir_dataflow`"]
    pub const mir_dataflow_peek_must_be_not_temporary:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_dataflow_peek_must_be_not_temporary"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_dataflow_peek_must_be_place_or_ref_place` from `mir_dataflow`"]
    pub const mir_dataflow_peek_must_be_place_or_ref_place:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_dataflow_peek_must_be_place_or_ref_place"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_dataflow_requires_an_argument` from `mir_dataflow`"]
    pub const mir_dataflow_requires_an_argument: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_dataflow_requires_an_argument"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_dataflow_stop_after_dataflow_ended_compilation` from `mir_dataflow`"]
    pub const mir_dataflow_stop_after_dataflow_ended_compilation:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_dataflow_stop_after_dataflow_ended_compilation"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_dataflow_unknown_formatter` from `mir_dataflow`"]
    pub const mir_dataflow_unknown_formatter: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_dataflow_unknown_formatter"),
            None);
    #[doc =
    r" Constants expected to exist by the diagnostic derive macros to use as default Fluent"]
    #[doc = r" identifiers for different subdiagnostic kinds."]
    pub mod _subdiag {
        #[doc = r" Default for `#[help]`"]
        pub const help: rustc_errors::SubdiagMessage =
            rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("help"));
        #[doc = r" Default for `#[note]`"]
        pub const note: rustc_errors::SubdiagMessage =
            rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("note"));
        #[doc = r" Default for `#[warn]`"]
        pub const warn: rustc_errors::SubdiagMessage =
            rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("warn"));
        #[doc = r" Default for `#[label]`"]
        pub const label: rustc_errors::SubdiagMessage =
            rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("label"));
        #[doc = r" Default for `#[suggestion]`"]
        pub const suggestion: rustc_errors::SubdiagMessage =
            rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("suggestion"));
    }
}rustc_fluent_macro::fluent_messages! { "../messages.ftl" }
38
39pub struct MoveDataTypingEnv<'tcx> {
40    pub move_data: MoveData<'tcx>,
41    pub typing_env: ty::TypingEnv<'tcx>,
42}