rustc_mir_build/
lib.rs

1//! Construction of MIR from HIR.
2
3// tidy-alphabetical-start
4#![allow(rustc::diagnostic_outside_of_impl)]
5#![allow(rustc::untranslatable_diagnostic)]
6#![feature(assert_matches)]
7#![feature(box_patterns)]
8#![feature(if_let_guard)]
9#![feature(try_blocks)]
10// tidy-alphabetical-end
11
12// The `builder` module used to be named `build`, but that was causing GitHub's
13// "Go to file" feature to silently ignore all files in the module, probably
14// because it assumes that "build" is a build-output directory. See #134365.
15mod builder;
16mod check_tail_calls;
17mod check_unsafety;
18mod errors;
19pub mod thir;
20
21use rustc_middle::util::Providers;
22
23#[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_build_adt_defined_here` from `mir_build`"]
    pub const mir_build_adt_defined_here: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_adt_defined_here"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_already_borrowed` from `mir_build`"]
    pub const mir_build_already_borrowed: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_already_borrowed"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_already_mut_borrowed` from `mir_build`"]
    pub const mir_build_already_mut_borrowed: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_already_mut_borrowed"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_bindings_with_variant_name` from `mir_build`"]
    pub const mir_build_bindings_with_variant_name: rustc_errors::DiagMessage
        =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_bindings_with_variant_name"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_bindings_with_variant_name.suggestion` from `mir_build`"]
    pub const mir_build_suggestion: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("suggestion"));
    #[doc =
    "Constant referring to Fluent message `mir_build_borrow` from `mir_build`"]
    pub const mir_build_borrow: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_borrow"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_borrow_of_layout_constrained_field_requires_unsafe` from `mir_build`"]
    pub const mir_build_borrow_of_layout_constrained_field_requires_unsafe:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_borrow_of_layout_constrained_field_requires_unsafe"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_borrow_of_layout_constrained_field_requires_unsafe.note` from `mir_build`"]
    pub const mir_build_note: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("note"));
    #[doc =
    "Constant referring to Fluent message `mir_build_borrow_of_layout_constrained_field_requires_unsafe.label` from `mir_build`"]
    pub const mir_build_label: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("label"));
    #[doc =
    "Constant referring to Fluent message `mir_build_borrow_of_layout_constrained_field_requires_unsafe_unsafe_op_in_unsafe_fn_allowed` from `mir_build`"]
    pub const
        mir_build_borrow_of_layout_constrained_field_requires_unsafe_unsafe_op_in_unsafe_fn_allowed:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_borrow_of_layout_constrained_field_requires_unsafe_unsafe_op_in_unsafe_fn_allowed"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_borrow_of_moved_value` from `mir_build`"]
    pub const mir_build_borrow_of_moved_value: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_borrow_of_moved_value"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_borrow_of_moved_value.occurs_because_label` from `mir_build`"]
    pub const mir_build_occurs_because_label: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("occurs_because_label"));
    #[doc =
    "Constant referring to Fluent message `mir_build_borrow_of_moved_value.value_borrowed_label` from `mir_build`"]
    pub const mir_build_value_borrowed_label: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("value_borrowed_label"));
    #[doc =
    "Constant referring to Fluent message `mir_build_call_to_deprecated_safe_fn_requires_unsafe` from `mir_build`"]
    pub const mir_build_call_to_deprecated_safe_fn_requires_unsafe:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_call_to_deprecated_safe_fn_requires_unsafe"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_call_to_fn_with_requires_unsafe` from `mir_build`"]
    pub const mir_build_call_to_fn_with_requires_unsafe:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_call_to_fn_with_requires_unsafe"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_call_to_fn_with_requires_unsafe.help` from `mir_build`"]
    pub const mir_build_help: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("help"));
    #[doc =
    "Constant referring to Fluent message `mir_build_call_to_fn_with_requires_unsafe_unsafe_op_in_unsafe_fn_allowed` from `mir_build`"]
    pub const
        mir_build_call_to_fn_with_requires_unsafe_unsafe_op_in_unsafe_fn_allowed:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_call_to_fn_with_requires_unsafe_unsafe_op_in_unsafe_fn_allowed"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_call_to_unsafe_fn_requires_unsafe` from `mir_build`"]
    pub const mir_build_call_to_unsafe_fn_requires_unsafe:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_call_to_unsafe_fn_requires_unsafe"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_call_to_unsafe_fn_requires_unsafe_nameless` from `mir_build`"]
    pub const mir_build_call_to_unsafe_fn_requires_unsafe_nameless:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_call_to_unsafe_fn_requires_unsafe_nameless"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_call_to_unsafe_fn_requires_unsafe_nameless_unsafe_op_in_unsafe_fn_allowed` from `mir_build`"]
    pub const
        mir_build_call_to_unsafe_fn_requires_unsafe_nameless_unsafe_op_in_unsafe_fn_allowed:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_call_to_unsafe_fn_requires_unsafe_nameless_unsafe_op_in_unsafe_fn_allowed"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_call_to_unsafe_fn_requires_unsafe_unsafe_op_in_unsafe_fn_allowed` from `mir_build`"]
    pub const
        mir_build_call_to_unsafe_fn_requires_unsafe_unsafe_op_in_unsafe_fn_allowed:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_call_to_unsafe_fn_requires_unsafe_unsafe_op_in_unsafe_fn_allowed"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_confused` from `mir_build`"]
    pub const mir_build_confused: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_confused"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_const_continue_bad_const` from `mir_build`"]
    pub const mir_build_const_continue_bad_const: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_const_continue_bad_const"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_const_continue_missing_label_or_value` from `mir_build`"]
    pub const mir_build_const_continue_missing_label_or_value:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_const_continue_missing_label_or_value"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_const_continue_not_const` from `mir_build`"]
    pub const mir_build_const_continue_not_const: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_const_continue_not_const"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_const_continue_not_const_const_block` from `mir_build`"]
    pub const mir_build_const_continue_not_const_const_block:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_const_continue_not_const_const_block"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_const_continue_not_const_const_other` from `mir_build`"]
    pub const mir_build_const_continue_not_const_const_other:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_const_continue_not_const_const_other"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_const_continue_not_const_constant_parameter` from `mir_build`"]
    pub const mir_build_const_continue_not_const_constant_parameter:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_const_continue_not_const_constant_parameter"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_const_continue_unknown_jump_target` from `mir_build`"]
    pub const mir_build_const_continue_unknown_jump_target:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_const_continue_unknown_jump_target"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_const_defined_here` from `mir_build`"]
    pub const mir_build_const_defined_here: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_const_defined_here"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_const_param_in_pattern` from `mir_build`"]
    pub const mir_build_const_param_in_pattern: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_const_param_in_pattern"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_const_param_in_pattern_def` from `mir_build`"]
    pub const mir_build_const_param_in_pattern_def: rustc_errors::DiagMessage
        =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_const_param_in_pattern_def"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_const_pattern_depends_on_generic_parameter` from `mir_build`"]
    pub const mir_build_const_pattern_depends_on_generic_parameter:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_const_pattern_depends_on_generic_parameter"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_could_not_eval_const_pattern` from `mir_build`"]
    pub const mir_build_could_not_eval_const_pattern:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_could_not_eval_const_pattern"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_deref_raw_pointer_requires_unsafe` from `mir_build`"]
    pub const mir_build_deref_raw_pointer_requires_unsafe:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_deref_raw_pointer_requires_unsafe"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_deref_raw_pointer_requires_unsafe_unsafe_op_in_unsafe_fn_allowed` from `mir_build`"]
    pub const
        mir_build_deref_raw_pointer_requires_unsafe_unsafe_op_in_unsafe_fn_allowed:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_deref_raw_pointer_requires_unsafe_unsafe_op_in_unsafe_fn_allowed"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_extern_static_requires_unsafe` from `mir_build`"]
    pub const mir_build_extern_static_requires_unsafe:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_extern_static_requires_unsafe"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_extern_static_requires_unsafe_unsafe_op_in_unsafe_fn_allowed` from `mir_build`"]
    pub const
        mir_build_extern_static_requires_unsafe_unsafe_op_in_unsafe_fn_allowed:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_extern_static_requires_unsafe_unsafe_op_in_unsafe_fn_allowed"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_inform_irrefutable` from `mir_build`"]
    pub const mir_build_inform_irrefutable: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_inform_irrefutable"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_initializing_type_with_requires_unsafe` from `mir_build`"]
    pub const mir_build_initializing_type_with_requires_unsafe:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_initializing_type_with_requires_unsafe"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_initializing_type_with_requires_unsafe_unsafe_op_in_unsafe_fn_allowed` from `mir_build`"]
    pub const
        mir_build_initializing_type_with_requires_unsafe_unsafe_op_in_unsafe_fn_allowed:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_initializing_type_with_requires_unsafe_unsafe_op_in_unsafe_fn_allowed"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_initializing_type_with_unsafe_field_requires_unsafe` from `mir_build`"]
    pub const mir_build_initializing_type_with_unsafe_field_requires_unsafe:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_initializing_type_with_unsafe_field_requires_unsafe"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_initializing_type_with_unsafe_field_requires_unsafe_unsafe_op_in_unsafe_fn_allowed` from `mir_build`"]
    pub const
        mir_build_initializing_type_with_unsafe_field_requires_unsafe_unsafe_op_in_unsafe_fn_allowed:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_initializing_type_with_unsafe_field_requires_unsafe_unsafe_op_in_unsafe_fn_allowed"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_inline_assembly_requires_unsafe` from `mir_build`"]
    pub const mir_build_inline_assembly_requires_unsafe:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_inline_assembly_requires_unsafe"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_inline_assembly_requires_unsafe_unsafe_op_in_unsafe_fn_allowed` from `mir_build`"]
    pub const
        mir_build_inline_assembly_requires_unsafe_unsafe_op_in_unsafe_fn_allowed:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_inline_assembly_requires_unsafe_unsafe_op_in_unsafe_fn_allowed"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_interpreted_as_const` from `mir_build`"]
    pub const mir_build_interpreted_as_const: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_interpreted_as_const"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_invalid_pattern` from `mir_build`"]
    pub const mir_build_invalid_pattern: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_invalid_pattern"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_irrefutable_let_patterns_if_let` from `mir_build`"]
    pub const mir_build_irrefutable_let_patterns_if_let:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_irrefutable_let_patterns_if_let"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_irrefutable_let_patterns_if_let_guard` from `mir_build`"]
    pub const mir_build_irrefutable_let_patterns_if_let_guard:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_irrefutable_let_patterns_if_let_guard"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_irrefutable_let_patterns_let_else` from `mir_build`"]
    pub const mir_build_irrefutable_let_patterns_let_else:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_irrefutable_let_patterns_let_else"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_irrefutable_let_patterns_while_let` from `mir_build`"]
    pub const mir_build_irrefutable_let_patterns_while_let:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_irrefutable_let_patterns_while_let"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_leading_irrefutable_let_patterns` from `mir_build`"]
    pub const mir_build_leading_irrefutable_let_patterns:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_leading_irrefutable_let_patterns"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_literal_in_range_out_of_bounds` from `mir_build`"]
    pub const mir_build_literal_in_range_out_of_bounds:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_literal_in_range_out_of_bounds"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_loop_match_arm_with_guard` from `mir_build`"]
    pub const mir_build_loop_match_arm_with_guard: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_loop_match_arm_with_guard"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_loop_match_bad_rhs` from `mir_build`"]
    pub const mir_build_loop_match_bad_rhs: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_loop_match_bad_rhs"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_loop_match_bad_statements` from `mir_build`"]
    pub const mir_build_loop_match_bad_statements: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_loop_match_bad_statements"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_loop_match_invalid_match` from `mir_build`"]
    pub const mir_build_loop_match_invalid_match: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_loop_match_invalid_match"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_loop_match_invalid_update` from `mir_build`"]
    pub const mir_build_loop_match_invalid_update: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_loop_match_invalid_update"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_loop_match_missing_assignment` from `mir_build`"]
    pub const mir_build_loop_match_missing_assignment:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_loop_match_missing_assignment"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_loop_match_unsupported_type` from `mir_build`"]
    pub const mir_build_loop_match_unsupported_type: rustc_errors::DiagMessage
        =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_loop_match_unsupported_type"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_lower_range_bound_must_be_less_than_or_equal_to_upper` from `mir_build`"]
    pub const mir_build_lower_range_bound_must_be_less_than_or_equal_to_upper:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_lower_range_bound_must_be_less_than_or_equal_to_upper"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_lower_range_bound_must_be_less_than_or_equal_to_upper.teach_note` from `mir_build`"]
    pub const mir_build_teach_note: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("teach_note"));
    #[doc =
    "Constant referring to Fluent message `mir_build_lower_range_bound_must_be_less_than_upper` from `mir_build`"]
    pub const mir_build_lower_range_bound_must_be_less_than_upper:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_lower_range_bound_must_be_less_than_upper"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_more_information` from `mir_build`"]
    pub const mir_build_more_information: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_more_information"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_moved` from `mir_build`"]
    pub const mir_build_moved: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_moved"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_moved_while_borrowed` from `mir_build`"]
    pub const mir_build_moved_while_borrowed: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_moved_while_borrowed"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_multiple_mut_borrows` from `mir_build`"]
    pub const mir_build_multiple_mut_borrows: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_multiple_mut_borrows"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_mutable_borrow` from `mir_build`"]
    pub const mir_build_mutable_borrow: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_mutable_borrow"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_mutable_static_requires_unsafe` from `mir_build`"]
    pub const mir_build_mutable_static_requires_unsafe:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_mutable_static_requires_unsafe"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_mutable_static_requires_unsafe_unsafe_op_in_unsafe_fn_allowed` from `mir_build`"]
    pub const
        mir_build_mutable_static_requires_unsafe_unsafe_op_in_unsafe_fn_allowed:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_mutable_static_requires_unsafe_unsafe_op_in_unsafe_fn_allowed"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_mutation_of_layout_constrained_field_requires_unsafe` from `mir_build`"]
    pub const mir_build_mutation_of_layout_constrained_field_requires_unsafe:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_mutation_of_layout_constrained_field_requires_unsafe"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_mutation_of_layout_constrained_field_requires_unsafe_unsafe_op_in_unsafe_fn_allowed` from `mir_build`"]
    pub const
        mir_build_mutation_of_layout_constrained_field_requires_unsafe_unsafe_op_in_unsafe_fn_allowed:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_mutation_of_layout_constrained_field_requires_unsafe_unsafe_op_in_unsafe_fn_allowed"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_nan_pattern` from `mir_build`"]
    pub const mir_build_nan_pattern: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_nan_pattern"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_non_const_path` from `mir_build`"]
    pub const mir_build_non_const_path: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_non_const_path"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_non_empty_never_pattern` from `mir_build`"]
    pub const mir_build_non_empty_never_pattern: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_non_empty_never_pattern"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_non_exhaustive_match_all_arms_guarded` from `mir_build`"]
    pub const mir_build_non_exhaustive_match_all_arms_guarded:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_non_exhaustive_match_all_arms_guarded"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_non_exhaustive_patterns_type_not_empty` from `mir_build`"]
    pub const mir_build_non_exhaustive_patterns_type_not_empty:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_non_exhaustive_patterns_type_not_empty"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_non_exhaustive_patterns_type_not_empty.def_note` from `mir_build`"]
    pub const mir_build_def_note: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("def_note"));
    #[doc =
    "Constant referring to Fluent message `mir_build_non_exhaustive_patterns_type_not_empty.type_note` from `mir_build`"]
    pub const mir_build_type_note: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("type_note"));
    #[doc =
    "Constant referring to Fluent message `mir_build_non_exhaustive_patterns_type_not_empty.non_exhaustive_type_note` from `mir_build`"]
    pub const mir_build_non_exhaustive_type_note: rustc_errors::SubdiagMessage
        =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("non_exhaustive_type_note"));
    #[doc =
    "Constant referring to Fluent message `mir_build_non_exhaustive_patterns_type_not_empty.reference_note` from `mir_build`"]
    pub const mir_build_reference_note: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("reference_note"));
    #[doc =
    "Constant referring to Fluent message `mir_build_non_partial_eq_match` from `mir_build`"]
    pub const mir_build_non_partial_eq_match: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_non_partial_eq_match"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_pattern_not_covered` from `mir_build`"]
    pub const mir_build_pattern_not_covered: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_pattern_not_covered"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_pattern_not_covered.pattern_ty` from `mir_build`"]
    pub const mir_build_pattern_ty: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("pattern_ty"));
    #[doc =
    "Constant referring to Fluent message `mir_build_pointer_pattern` from `mir_build`"]
    pub const mir_build_pointer_pattern: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_pointer_pattern"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_privately_uninhabited` from `mir_build`"]
    pub const mir_build_privately_uninhabited: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_privately_uninhabited"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_static_in_pattern` from `mir_build`"]
    pub const mir_build_static_in_pattern: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_static_in_pattern"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_static_in_pattern_def` from `mir_build`"]
    pub const mir_build_static_in_pattern_def: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_static_in_pattern_def"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_suggest_attempted_int_lit` from `mir_build`"]
    pub const mir_build_suggest_attempted_int_lit: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_suggest_attempted_int_lit"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_suggest_if_let` from `mir_build`"]
    pub const mir_build_suggest_if_let: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_suggest_if_let"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_suggest_let_else` from `mir_build`"]
    pub const mir_build_suggest_let_else: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_suggest_let_else"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_trailing_irrefutable_let_patterns` from `mir_build`"]
    pub const mir_build_trailing_irrefutable_let_patterns:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_trailing_irrefutable_let_patterns"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_type_not_structural` from `mir_build`"]
    pub const mir_build_type_not_structural: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_type_not_structural"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_type_not_structural_def` from `mir_build`"]
    pub const mir_build_type_not_structural_def: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_type_not_structural_def"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_type_not_structural_more_info` from `mir_build`"]
    pub const mir_build_type_not_structural_more_info:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_type_not_structural_more_info"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_type_not_structural_tip` from `mir_build`"]
    pub const mir_build_type_not_structural_tip: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_type_not_structural_tip"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_union_field_requires_unsafe` from `mir_build`"]
    pub const mir_build_union_field_requires_unsafe: rustc_errors::DiagMessage
        =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_union_field_requires_unsafe"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_union_field_requires_unsafe_unsafe_op_in_unsafe_fn_allowed` from `mir_build`"]
    pub const
        mir_build_union_field_requires_unsafe_unsafe_op_in_unsafe_fn_allowed:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_union_field_requires_unsafe_unsafe_op_in_unsafe_fn_allowed"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_union_pattern` from `mir_build`"]
    pub const mir_build_union_pattern: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_union_pattern"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_unreachable_due_to_uninhabited` from `mir_build`"]
    pub const mir_build_unreachable_due_to_uninhabited:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_unreachable_due_to_uninhabited"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_unreachable_due_to_uninhabited.label_orig` from `mir_build`"]
    pub const mir_build_label_orig: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("label_orig"));
    #[doc =
    "Constant referring to Fluent message `mir_build_unreachable_making_this_unreachable` from `mir_build`"]
    pub const mir_build_unreachable_making_this_unreachable:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_unreachable_making_this_unreachable"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_unreachable_making_this_unreachable_n_more` from `mir_build`"]
    pub const mir_build_unreachable_making_this_unreachable_n_more:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_unreachable_making_this_unreachable_n_more"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_unreachable_matches_same_values` from `mir_build`"]
    pub const mir_build_unreachable_matches_same_values:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_unreachable_matches_same_values"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_unreachable_pattern` from `mir_build`"]
    pub const mir_build_unreachable_pattern: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_unreachable_pattern"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_unreachable_pattern.unreachable_matches_no_values` from `mir_build`"]
    pub const mir_build_unreachable_matches_no_values:
        rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("unreachable_matches_no_values"));
    #[doc =
    "Constant referring to Fluent message `mir_build_unreachable_pattern.unreachable_uninhabited_note` from `mir_build`"]
    pub const mir_build_unreachable_uninhabited_note:
        rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("unreachable_uninhabited_note"));
    #[doc =
    "Constant referring to Fluent message `mir_build_unreachable_pattern.unreachable_covered_by_catchall` from `mir_build`"]
    pub const mir_build_unreachable_covered_by_catchall:
        rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("unreachable_covered_by_catchall"));
    #[doc =
    "Constant referring to Fluent message `mir_build_unreachable_pattern.unreachable_covered_by_one` from `mir_build`"]
    pub const mir_build_unreachable_covered_by_one:
        rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("unreachable_covered_by_one"));
    #[doc =
    "Constant referring to Fluent message `mir_build_unreachable_pattern.unreachable_covered_by_many` from `mir_build`"]
    pub const mir_build_unreachable_covered_by_many:
        rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("unreachable_covered_by_many"));
    #[doc =
    "Constant referring to Fluent message `mir_build_unreachable_pattern.unreachable_pattern_const_reexport_accessible` from `mir_build`"]
    pub const mir_build_unreachable_pattern_const_reexport_accessible:
        rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("unreachable_pattern_const_reexport_accessible"));
    #[doc =
    "Constant referring to Fluent message `mir_build_unreachable_pattern.unreachable_pattern_wanted_const` from `mir_build`"]
    pub const mir_build_unreachable_pattern_wanted_const:
        rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("unreachable_pattern_wanted_const"));
    #[doc =
    "Constant referring to Fluent message `mir_build_unreachable_pattern.unreachable_pattern_const_inaccessible` from `mir_build`"]
    pub const mir_build_unreachable_pattern_const_inaccessible:
        rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("unreachable_pattern_const_inaccessible"));
    #[doc =
    "Constant referring to Fluent message `mir_build_unreachable_pattern.unreachable_pattern_let_binding` from `mir_build`"]
    pub const mir_build_unreachable_pattern_let_binding:
        rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("unreachable_pattern_let_binding"));
    #[doc =
    "Constant referring to Fluent message `mir_build_unsafe_binder_cast_requires_unsafe` from `mir_build`"]
    pub const mir_build_unsafe_binder_cast_requires_unsafe:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_unsafe_binder_cast_requires_unsafe"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_unsafe_binder_cast_requires_unsafe_unsafe_op_in_unsafe_fn_allowed` from `mir_build`"]
    pub const
        mir_build_unsafe_binder_cast_requires_unsafe_unsafe_op_in_unsafe_fn_allowed:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_unsafe_binder_cast_requires_unsafe_unsafe_op_in_unsafe_fn_allowed"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_unsafe_field_requires_unsafe` from `mir_build`"]
    pub const mir_build_unsafe_field_requires_unsafe:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_unsafe_field_requires_unsafe"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_unsafe_field_requires_unsafe_unsafe_op_in_unsafe_fn_allowed` from `mir_build`"]
    pub const
        mir_build_unsafe_field_requires_unsafe_unsafe_op_in_unsafe_fn_allowed:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_unsafe_field_requires_unsafe_unsafe_op_in_unsafe_fn_allowed"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_unsafe_fn_safe_body` from `mir_build`"]
    pub const mir_build_unsafe_fn_safe_body: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_unsafe_fn_safe_body"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_unsafe_not_inherited` from `mir_build`"]
    pub const mir_build_unsafe_not_inherited: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_unsafe_not_inherited"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_unsafe_op_in_unsafe_fn_borrow_of_layout_constrained_field_requires_unsafe` from `mir_build`"]
    pub const
        mir_build_unsafe_op_in_unsafe_fn_borrow_of_layout_constrained_field_requires_unsafe:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_unsafe_op_in_unsafe_fn_borrow_of_layout_constrained_field_requires_unsafe"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_unsafe_op_in_unsafe_fn_call_to_fn_with_requires_unsafe` from `mir_build`"]
    pub const
        mir_build_unsafe_op_in_unsafe_fn_call_to_fn_with_requires_unsafe:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_unsafe_op_in_unsafe_fn_call_to_fn_with_requires_unsafe"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_unsafe_op_in_unsafe_fn_call_to_unsafe_fn_requires_unsafe` from `mir_build`"]
    pub const
        mir_build_unsafe_op_in_unsafe_fn_call_to_unsafe_fn_requires_unsafe:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_unsafe_op_in_unsafe_fn_call_to_unsafe_fn_requires_unsafe"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_unsafe_op_in_unsafe_fn_call_to_unsafe_fn_requires_unsafe_nameless` from `mir_build`"]
    pub const
        mir_build_unsafe_op_in_unsafe_fn_call_to_unsafe_fn_requires_unsafe_nameless:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_unsafe_op_in_unsafe_fn_call_to_unsafe_fn_requires_unsafe_nameless"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_unsafe_op_in_unsafe_fn_deref_raw_pointer_requires_unsafe` from `mir_build`"]
    pub const
        mir_build_unsafe_op_in_unsafe_fn_deref_raw_pointer_requires_unsafe:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_unsafe_op_in_unsafe_fn_deref_raw_pointer_requires_unsafe"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_unsafe_op_in_unsafe_fn_extern_static_requires_unsafe` from `mir_build`"]
    pub const mir_build_unsafe_op_in_unsafe_fn_extern_static_requires_unsafe:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_unsafe_op_in_unsafe_fn_extern_static_requires_unsafe"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_unsafe_op_in_unsafe_fn_initializing_type_with_requires_unsafe` from `mir_build`"]
    pub const
        mir_build_unsafe_op_in_unsafe_fn_initializing_type_with_requires_unsafe:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_unsafe_op_in_unsafe_fn_initializing_type_with_requires_unsafe"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_unsafe_op_in_unsafe_fn_initializing_type_with_unsafe_field_requires_unsafe` from `mir_build`"]
    pub const
        mir_build_unsafe_op_in_unsafe_fn_initializing_type_with_unsafe_field_requires_unsafe:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_unsafe_op_in_unsafe_fn_initializing_type_with_unsafe_field_requires_unsafe"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_unsafe_op_in_unsafe_fn_inline_assembly_requires_unsafe` from `mir_build`"]
    pub const
        mir_build_unsafe_op_in_unsafe_fn_inline_assembly_requires_unsafe:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_unsafe_op_in_unsafe_fn_inline_assembly_requires_unsafe"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_unsafe_op_in_unsafe_fn_mutable_static_requires_unsafe` from `mir_build`"]
    pub const mir_build_unsafe_op_in_unsafe_fn_mutable_static_requires_unsafe:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_unsafe_op_in_unsafe_fn_mutable_static_requires_unsafe"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_unsafe_op_in_unsafe_fn_mutation_of_layout_constrained_field_requires_unsafe` from `mir_build`"]
    pub const
        mir_build_unsafe_op_in_unsafe_fn_mutation_of_layout_constrained_field_requires_unsafe:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_unsafe_op_in_unsafe_fn_mutation_of_layout_constrained_field_requires_unsafe"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_unsafe_op_in_unsafe_fn_union_field_requires_unsafe` from `mir_build`"]
    pub const mir_build_unsafe_op_in_unsafe_fn_union_field_requires_unsafe:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_unsafe_op_in_unsafe_fn_union_field_requires_unsafe"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_unsafe_op_in_unsafe_fn_unsafe_field_requires_unsafe` from `mir_build`"]
    pub const mir_build_unsafe_op_in_unsafe_fn_unsafe_field_requires_unsafe:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_unsafe_op_in_unsafe_fn_unsafe_field_requires_unsafe"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_unsized_pattern` from `mir_build`"]
    pub const mir_build_unsized_pattern: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_unsized_pattern"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_unused_unsafe` from `mir_build`"]
    pub const mir_build_unused_unsafe: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_unused_unsafe"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_unused_unsafe_enclosing_block_label` from `mir_build`"]
    pub const mir_build_unused_unsafe_enclosing_block_label:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_unused_unsafe_enclosing_block_label"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_upper_range_bound_cannot_be_min` from `mir_build`"]
    pub const mir_build_upper_range_bound_cannot_be_min:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_upper_range_bound_cannot_be_min"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_variant_defined_here` from `mir_build`"]
    pub const mir_build_variant_defined_here: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_variant_defined_here"),
            None);
    #[doc =
    "Constant referring to Fluent message `mir_build_wrap_suggestion` from `mir_build`"]
    pub const mir_build_wrap_suggestion: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("mir_build_wrap_suggestion"),
            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" }
24
25pub fn provide(providers: &mut Providers) {
26    providers.queries.check_match = thir::pattern::check_match;
27    providers.queries.lit_to_const = thir::constant::lit_to_const;
28    providers.queries.closure_saved_names_of_captured_variables =
29        builder::closure_saved_names_of_captured_variables;
30    providers.queries.check_unsafety = check_unsafety::check_unsafety;
31    providers.queries.check_tail_calls = check_tail_calls::check_tail_calls;
32    providers.queries.thir_body = thir::cx::thir_body;
33    providers.hooks.build_mir_inner_impl = builder::build_mir_inner_impl;
34}