Skip to main content

rustc_ast_passes/
lib.rs

1//! The `rustc_ast_passes` crate contains passes which validate the AST in `syntax`
2//! parsed by `rustc_parse` and then lowered, after the passes in this crate,
3//! by `rustc_ast_lowering`.
4
5// tidy-alphabetical-start
6#![feature(box_patterns)]
7#![feature(if_let_guard)]
8#![feature(iter_is_partitioned)]
9// tidy-alphabetical-end
10
11pub mod ast_validation;
12mod errors;
13pub mod feature_gate;
14
15#[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 `ast_passes_abi_cannot_be_coroutine` from `ast_passes`"]
    pub const ast_passes_abi_cannot_be_coroutine: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_abi_cannot_be_coroutine"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_abi_cannot_be_coroutine.suggestion` from `ast_passes`"]
    pub const ast_passes_suggestion: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("suggestion"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_abi_custom_safe_foreign_function` from `ast_passes`"]
    pub const ast_passes_abi_custom_safe_foreign_function:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_abi_custom_safe_foreign_function"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_abi_custom_safe_function` from `ast_passes`"]
    pub const ast_passes_abi_custom_safe_function: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_abi_custom_safe_function"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_abi_must_not_have_parameters_or_return_type` from `ast_passes`"]
    pub const ast_passes_abi_must_not_have_parameters_or_return_type:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_abi_must_not_have_parameters_or_return_type"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_abi_must_not_have_parameters_or_return_type.note` from `ast_passes`"]
    pub const ast_passes_note: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("note"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_abi_must_not_have_return_type` from `ast_passes`"]
    pub const ast_passes_abi_must_not_have_return_type:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_abi_must_not_have_return_type"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_abi_must_not_have_return_type.help` from `ast_passes`"]
    pub const ast_passes_help: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("help"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_abi_x86_interrupt` from `ast_passes`"]
    pub const ast_passes_abi_x86_interrupt: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_abi_x86_interrupt"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_assoc_const_without_body` from `ast_passes`"]
    pub const ast_passes_assoc_const_without_body: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_assoc_const_without_body"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_assoc_fn_without_body` from `ast_passes`"]
    pub const ast_passes_assoc_fn_without_body: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_assoc_fn_without_body"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_assoc_type_without_body` from `ast_passes`"]
    pub const ast_passes_assoc_type_without_body: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_assoc_type_without_body"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_async_fn_in_const_trait_or_trait_impl` from `ast_passes`"]
    pub const ast_passes_async_fn_in_const_trait_or_trait_impl:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_async_fn_in_const_trait_or_trait_impl"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_async_fn_in_const_trait_or_trait_impl.label` from `ast_passes`"]
    pub const ast_passes_label: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("label"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_at_least_one_trait` from `ast_passes`"]
    pub const ast_passes_at_least_one_trait: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_at_least_one_trait"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_auto_generic` from `ast_passes`"]
    pub const ast_passes_auto_generic: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_auto_generic"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_auto_items` from `ast_passes`"]
    pub const ast_passes_auto_items: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_auto_items"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_auto_super_lifetime` from `ast_passes`"]
    pub const ast_passes_auto_super_lifetime: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_auto_super_lifetime"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_body_in_extern` from `ast_passes`"]
    pub const ast_passes_body_in_extern: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_body_in_extern"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_body_in_extern.cannot_have` from `ast_passes`"]
    pub const ast_passes_cannot_have: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("cannot_have"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_body_in_extern.invalid` from `ast_passes`"]
    pub const ast_passes_invalid: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("invalid"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_body_in_extern.existing` from `ast_passes`"]
    pub const ast_passes_existing: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("existing"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_bound_in_context` from `ast_passes`"]
    pub const ast_passes_bound_in_context: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_bound_in_context"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_c_variadic_bad_extern` from `ast_passes`"]
    pub const ast_passes_c_variadic_bad_extern: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_c_variadic_bad_extern"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_c_variadic_bad_naked_extern` from `ast_passes`"]
    pub const ast_passes_c_variadic_bad_naked_extern:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_c_variadic_bad_naked_extern"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_c_variadic_must_be_unsafe` from `ast_passes`"]
    pub const ast_passes_c_variadic_must_be_unsafe: rustc_errors::DiagMessage
        =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_c_variadic_must_be_unsafe"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_c_variadic_no_extern` from `ast_passes`"]
    pub const ast_passes_c_variadic_no_extern: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_c_variadic_no_extern"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_c_variadic_not_supported` from `ast_passes`"]
    pub const ast_passes_c_variadic_not_supported: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_c_variadic_not_supported"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_const_and_c_variadic` from `ast_passes`"]
    pub const ast_passes_const_and_c_variadic: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_const_and_c_variadic"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_const_and_c_variadic.const` from `ast_passes`"]
    pub const ast_passes_const: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("const"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_const_and_c_variadic.variadic` from `ast_passes`"]
    pub const ast_passes_variadic: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("variadic"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_const_and_coroutine` from `ast_passes`"]
    pub const ast_passes_const_and_coroutine: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_const_and_coroutine"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_const_and_coroutine.coroutine` from `ast_passes`"]
    pub const ast_passes_coroutine: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("coroutine"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_const_auto_trait` from `ast_passes`"]
    pub const ast_passes_const_auto_trait: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_const_auto_trait"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_const_bound_trait_object` from `ast_passes`"]
    pub const ast_passes_const_bound_trait_object: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_const_bound_trait_object"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_const_without_body` from `ast_passes`"]
    pub const ast_passes_const_without_body: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_const_without_body"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_constraint_on_negative_bound` from `ast_passes`"]
    pub const ast_passes_constraint_on_negative_bound:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_constraint_on_negative_bound"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_coroutine_and_c_variadic` from `ast_passes`"]
    pub const ast_passes_coroutine_and_c_variadic: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_coroutine_and_c_variadic"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_equality_in_where` from `ast_passes`"]
    pub const ast_passes_equality_in_where: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_equality_in_where"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_equality_in_where.suggestion_path` from `ast_passes`"]
    pub const ast_passes_suggestion_path: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("suggestion_path"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_extern_block_suggestion` from `ast_passes`"]
    pub const ast_passes_extern_block_suggestion: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_extern_block_suggestion"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_extern_fn_qualifiers` from `ast_passes`"]
    pub const ast_passes_extern_fn_qualifiers: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_extern_fn_qualifiers"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_extern_invalid_safety` from `ast_passes`"]
    pub const ast_passes_extern_invalid_safety: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_extern_invalid_safety"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_extern_item_ascii` from `ast_passes`"]
    pub const ast_passes_extern_item_ascii: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_extern_item_ascii"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_extern_keyword_link` from `ast_passes`"]
    pub const ast_passes_extern_keyword_link: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_extern_keyword_link"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_extern_types_cannot` from `ast_passes`"]
    pub const ast_passes_extern_types_cannot: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_extern_types_cannot"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_extern_without_abi` from `ast_passes`"]
    pub const ast_passes_extern_without_abi: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_extern_without_abi"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_extern_without_abi_sugg` from `ast_passes`"]
    pub const ast_passes_extern_without_abi_sugg: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_extern_without_abi_sugg"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_feature_on_non_nightly` from `ast_passes`"]
    pub const ast_passes_feature_on_non_nightly: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_feature_on_non_nightly"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_feature_on_non_nightly.stable_since` from `ast_passes`"]
    pub const ast_passes_stable_since: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("stable_since"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_fieldless_union` from `ast_passes`"]
    pub const ast_passes_fieldless_union: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_fieldless_union"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_fn_body_extern` from `ast_passes`"]
    pub const ast_passes_fn_body_extern: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_fn_body_extern"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_fn_param_c_var_args_not_last` from `ast_passes`"]
    pub const ast_passes_fn_param_c_var_args_not_last:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_fn_param_c_var_args_not_last"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_fn_param_doc_comment` from `ast_passes`"]
    pub const ast_passes_fn_param_doc_comment: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_fn_param_doc_comment"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_fn_param_forbidden_attr` from `ast_passes`"]
    pub const ast_passes_fn_param_forbidden_attr: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_fn_param_forbidden_attr"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_fn_param_forbidden_self` from `ast_passes`"]
    pub const ast_passes_fn_param_forbidden_self: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_fn_param_forbidden_self"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_fn_param_too_many` from `ast_passes`"]
    pub const ast_passes_fn_param_too_many: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_fn_param_too_many"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_fn_ptr_invalid_safety` from `ast_passes`"]
    pub const ast_passes_fn_ptr_invalid_safety: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_fn_ptr_invalid_safety"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_fn_without_body` from `ast_passes`"]
    pub const ast_passes_fn_without_body: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_fn_without_body"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_forbidden_bound` from `ast_passes`"]
    pub const ast_passes_forbidden_bound: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_forbidden_bound"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_forbidden_const_param` from `ast_passes`"]
    pub const ast_passes_forbidden_const_param: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_forbidden_const_param"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_forbidden_default` from `ast_passes`"]
    pub const ast_passes_forbidden_default: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_forbidden_default"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_forbidden_non_lifetime_param` from `ast_passes`"]
    pub const ast_passes_forbidden_non_lifetime_param:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_forbidden_non_lifetime_param"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_generic_before_constraints` from `ast_passes`"]
    pub const ast_passes_generic_before_constraints: rustc_errors::DiagMessage
        =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_generic_before_constraints"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_generic_before_constraints.constraints` from `ast_passes`"]
    pub const ast_passes_constraints: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("constraints"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_generic_before_constraints.args` from `ast_passes`"]
    pub const ast_passes_args: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("args"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_generic_before_constraints.empty_string` from `ast_passes`"]
    pub const ast_passes_empty_string: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("empty_string"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_generic_default_trailing` from `ast_passes`"]
    pub const ast_passes_generic_default_trailing: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_generic_default_trailing"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_impl_fn_const` from `ast_passes`"]
    pub const ast_passes_impl_fn_const: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_impl_fn_const"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_impl_fn_const.parent_constness` from `ast_passes`"]
    pub const ast_passes_parent_constness: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("parent_constness"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_incompatible_features` from `ast_passes`"]
    pub const ast_passes_incompatible_features: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_incompatible_features"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_item_invalid_safety` from `ast_passes`"]
    pub const ast_passes_item_invalid_safety: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_item_invalid_safety"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_item_underscore` from `ast_passes`"]
    pub const ast_passes_item_underscore: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_item_underscore"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_match_arm_with_no_body` from `ast_passes`"]
    pub const ast_passes_match_arm_with_no_body: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_match_arm_with_no_body"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_missing_unsafe_on_extern` from `ast_passes`"]
    pub const ast_passes_missing_unsafe_on_extern: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_missing_unsafe_on_extern"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_missing_unsafe_on_extern_lint` from `ast_passes`"]
    pub const ast_passes_missing_unsafe_on_extern_lint:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_missing_unsafe_on_extern_lint"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_module_nonascii` from `ast_passes`"]
    pub const ast_passes_module_nonascii: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_module_nonascii"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_negative_bound_not_supported` from `ast_passes`"]
    pub const ast_passes_negative_bound_not_supported:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_negative_bound_not_supported"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_negative_bound_with_parenthetical_notation` from `ast_passes`"]
    pub const ast_passes_negative_bound_with_parenthetical_notation:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_negative_bound_with_parenthetical_notation"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_nested_impl_trait` from `ast_passes`"]
    pub const ast_passes_nested_impl_trait: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_nested_impl_trait"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_nested_impl_trait.outer` from `ast_passes`"]
    pub const ast_passes_outer: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("outer"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_nested_impl_trait.inner` from `ast_passes`"]
    pub const ast_passes_inner: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("inner"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_nested_lifetimes` from `ast_passes`"]
    pub const ast_passes_nested_lifetimes: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_nested_lifetimes"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_nomangle_ascii` from `ast_passes`"]
    pub const ast_passes_nomangle_ascii: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_nomangle_ascii"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_obsolete_auto` from `ast_passes`"]
    pub const ast_passes_obsolete_auto: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_obsolete_auto"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_out_of_order_params` from `ast_passes`"]
    pub const ast_passes_out_of_order_params: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_out_of_order_params"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_pattern_in_bodiless` from `ast_passes`"]
    pub const ast_passes_pattern_in_bodiless: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_pattern_in_bodiless"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_pattern_in_fn_pointer` from `ast_passes`"]
    pub const ast_passes_pattern_in_fn_pointer: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_pattern_in_fn_pointer"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_pattern_in_foreign` from `ast_passes`"]
    pub const ast_passes_pattern_in_foreign: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_pattern_in_foreign"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_precise_capturing_duplicated` from `ast_passes`"]
    pub const ast_passes_precise_capturing_duplicated:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_precise_capturing_duplicated"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_precise_capturing_not_allowed_here` from `ast_passes`"]
    pub const ast_passes_precise_capturing_not_allowed_here:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_precise_capturing_not_allowed_here"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_scalable_vector_not_tuple_struct` from `ast_passes`"]
    pub const ast_passes_scalable_vector_not_tuple_struct:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_scalable_vector_not_tuple_struct"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_static_without_body` from `ast_passes`"]
    pub const ast_passes_static_without_body: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_static_without_body"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_tilde_const_disallowed` from `ast_passes`"]
    pub const ast_passes_tilde_const_disallowed: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_tilde_const_disallowed"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_tilde_const_disallowed.closure` from `ast_passes`"]
    pub const ast_passes_closure: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("closure"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_tilde_const_disallowed.function` from `ast_passes`"]
    pub const ast_passes_function: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("function"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_tilde_const_disallowed.trait` from `ast_passes`"]
    pub const ast_passes_trait: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("trait"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_tilde_const_disallowed.trait_impl` from `ast_passes`"]
    pub const ast_passes_trait_impl: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("trait_impl"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_tilde_const_disallowed.impl` from `ast_passes`"]
    pub const ast_passes_impl: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("impl"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_tilde_const_disallowed.trait_assoc_ty` from `ast_passes`"]
    pub const ast_passes_trait_assoc_ty: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("trait_assoc_ty"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_tilde_const_disallowed.trait_impl_assoc_ty` from `ast_passes`"]
    pub const ast_passes_trait_impl_assoc_ty: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("trait_impl_assoc_ty"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_tilde_const_disallowed.inherent_assoc_ty` from `ast_passes`"]
    pub const ast_passes_inherent_assoc_ty: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("inherent_assoc_ty"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_tilde_const_disallowed.struct` from `ast_passes`"]
    pub const ast_passes_struct: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("struct"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_tilde_const_disallowed.enum` from `ast_passes`"]
    pub const ast_passes_enum: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("enum"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_tilde_const_disallowed.union` from `ast_passes`"]
    pub const ast_passes_union: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("union"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_tilde_const_disallowed.anon_const` from `ast_passes`"]
    pub const ast_passes_anon_const: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("anon_const"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_tilde_const_disallowed.object` from `ast_passes`"]
    pub const ast_passes_object: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("object"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_tilde_const_disallowed.item` from `ast_passes`"]
    pub const ast_passes_item: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("item"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_trait_fn_const` from `ast_passes`"]
    pub const ast_passes_trait_fn_const: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_trait_fn_const"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_trait_fn_const.const_context_label` from `ast_passes`"]
    pub const ast_passes_const_context_label: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("const_context_label"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_trait_fn_const.remove_const_sugg` from `ast_passes`"]
    pub const ast_passes_remove_const_sugg: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("remove_const_sugg"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_trait_fn_const.make_impl_const_sugg` from `ast_passes`"]
    pub const ast_passes_make_impl_const_sugg: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("make_impl_const_sugg"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_trait_fn_const.make_trait_const_sugg` from `ast_passes`"]
    pub const ast_passes_make_trait_const_sugg: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("make_trait_const_sugg"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_trait_object_single_bound` from `ast_passes`"]
    pub const ast_passes_trait_object_single_bound: rustc_errors::DiagMessage
        =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_trait_object_single_bound"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_ty_alias_without_body` from `ast_passes`"]
    pub const ast_passes_ty_alias_without_body: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_ty_alias_without_body"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_unsafe_item` from `ast_passes`"]
    pub const ast_passes_unsafe_item: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_unsafe_item"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_unsafe_negative_impl` from `ast_passes`"]
    pub const ast_passes_unsafe_negative_impl: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_unsafe_negative_impl"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_unsafe_negative_impl.negative` from `ast_passes`"]
    pub const ast_passes_negative: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("negative"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_unsafe_negative_impl.unsafe` from `ast_passes`"]
    pub const ast_passes_unsafe: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("unsafe"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_unsafe_static` from `ast_passes`"]
    pub const ast_passes_unsafe_static: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_unsafe_static"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_visibility_not_permitted` from `ast_passes`"]
    pub const ast_passes_visibility_not_permitted: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_visibility_not_permitted"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_visibility_not_permitted.enum_variant` from `ast_passes`"]
    pub const ast_passes_enum_variant: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("enum_variant"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_visibility_not_permitted.individual_impl_items` from `ast_passes`"]
    pub const ast_passes_individual_impl_items: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("individual_impl_items"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_visibility_not_permitted.individual_foreign_items` from `ast_passes`"]
    pub const ast_passes_individual_foreign_items:
        rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("individual_foreign_items"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_visibility_not_permitted.remove_qualifier_sugg` from `ast_passes`"]
    pub const ast_passes_remove_qualifier_sugg: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("remove_qualifier_sugg"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_where_clause_after_type_alias` from `ast_passes`"]
    pub const ast_passes_where_clause_after_type_alias:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_where_clause_after_type_alias"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_where_clause_before_type_alias` from `ast_passes`"]
    pub const ast_passes_where_clause_before_type_alias:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ast_passes_where_clause_before_type_alias"),
            None);
    #[doc =
    "Constant referring to Fluent message `ast_passes_where_clause_before_type_alias.remove_suggestion` from `ast_passes`"]
    pub const ast_passes_remove_suggestion: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("remove_suggestion"));
    #[doc =
    "Constant referring to Fluent message `ast_passes_where_clause_before_type_alias.move_suggestion` from `ast_passes`"]
    pub const ast_passes_move_suggestion: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("move_suggestion"));
    #[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" }