Skip to main content

rustc_ty_utils/
lib.rs

1//! Various checks
2//!
3//! # Note
4//!
5//! This API is completely unstable and subject to change.
6
7// tidy-alphabetical-start
8#![feature(assert_matches)]
9#![feature(associated_type_defaults)]
10#![feature(box_patterns)]
11#![feature(if_let_guard)]
12#![feature(iterator_try_collect)]
13#![feature(never_type)]
14// tidy-alphabetical-end
15
16use rustc_middle::query::Providers;
17
18mod abi;
19mod assoc;
20mod common_traits;
21mod consts;
22mod errors;
23mod implied_bounds;
24mod instance;
25mod layout;
26mod needs_drop;
27mod nested_bodies;
28mod opaque_types;
29mod representability;
30pub mod sig_types;
31mod structural_match;
32mod ty;
33
34#[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 `ty_utils_address_and_deref_not_supported` from `ty_utils`"]
    pub const ty_utils_address_and_deref_not_supported:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ty_utils_address_and_deref_not_supported"),
            None);
    #[doc =
    "Constant referring to Fluent message `ty_utils_adt_not_supported` from `ty_utils`"]
    pub const ty_utils_adt_not_supported: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ty_utils_adt_not_supported"),
            None);
    #[doc =
    "Constant referring to Fluent message `ty_utils_array_not_supported` from `ty_utils`"]
    pub const ty_utils_array_not_supported: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ty_utils_array_not_supported"),
            None);
    #[doc =
    "Constant referring to Fluent message `ty_utils_assign_not_supported` from `ty_utils`"]
    pub const ty_utils_assign_not_supported: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ty_utils_assign_not_supported"),
            None);
    #[doc =
    "Constant referring to Fluent message `ty_utils_binary_not_supported` from `ty_utils`"]
    pub const ty_utils_binary_not_supported: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ty_utils_binary_not_supported"),
            None);
    #[doc =
    "Constant referring to Fluent message `ty_utils_block_not_supported` from `ty_utils`"]
    pub const ty_utils_block_not_supported: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ty_utils_block_not_supported"),
            None);
    #[doc =
    "Constant referring to Fluent message `ty_utils_borrow_not_supported` from `ty_utils`"]
    pub const ty_utils_borrow_not_supported: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ty_utils_borrow_not_supported"),
            None);
    #[doc =
    "Constant referring to Fluent message `ty_utils_box_not_supported` from `ty_utils`"]
    pub const ty_utils_box_not_supported: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ty_utils_box_not_supported"),
            None);
    #[doc =
    "Constant referring to Fluent message `ty_utils_by_use_not_supported` from `ty_utils`"]
    pub const ty_utils_by_use_not_supported: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ty_utils_by_use_not_supported"),
            None);
    #[doc =
    "Constant referring to Fluent message `ty_utils_closure_and_return_not_supported` from `ty_utils`"]
    pub const ty_utils_closure_and_return_not_supported:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ty_utils_closure_and_return_not_supported"),
            None);
    #[doc =
    "Constant referring to Fluent message `ty_utils_const_block_not_supported` from `ty_utils`"]
    pub const ty_utils_const_block_not_supported: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ty_utils_const_block_not_supported"),
            None);
    #[doc =
    "Constant referring to Fluent message `ty_utils_control_flow_not_supported` from `ty_utils`"]
    pub const ty_utils_control_flow_not_supported: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ty_utils_control_flow_not_supported"),
            None);
    #[doc =
    "Constant referring to Fluent message `ty_utils_field_not_supported` from `ty_utils`"]
    pub const ty_utils_field_not_supported: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ty_utils_field_not_supported"),
            None);
    #[doc =
    "Constant referring to Fluent message `ty_utils_generic_constant_too_complex` from `ty_utils`"]
    pub const ty_utils_generic_constant_too_complex: rustc_errors::DiagMessage
        =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ty_utils_generic_constant_too_complex"),
            None);
    #[doc =
    "Constant referring to Fluent message `ty_utils_generic_constant_too_complex.help` from `ty_utils`"]
    pub const ty_utils_help: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("help"));
    #[doc =
    "Constant referring to Fluent message `ty_utils_generic_constant_too_complex.maybe_supported` from `ty_utils`"]
    pub const ty_utils_maybe_supported: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("maybe_supported"));
    #[doc =
    "Constant referring to Fluent message `ty_utils_impl_trait_duplicate_arg` from `ty_utils`"]
    pub const ty_utils_impl_trait_duplicate_arg: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ty_utils_impl_trait_duplicate_arg"),
            None);
    #[doc =
    "Constant referring to Fluent message `ty_utils_impl_trait_duplicate_arg.label` from `ty_utils`"]
    pub const ty_utils_label: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("label"));
    #[doc =
    "Constant referring to Fluent message `ty_utils_impl_trait_duplicate_arg.note` from `ty_utils`"]
    pub const ty_utils_note: rustc_errors::SubdiagMessage =
        rustc_errors::SubdiagMessage::FluentAttr(std::borrow::Cow::Borrowed("note"));
    #[doc =
    "Constant referring to Fluent message `ty_utils_impl_trait_not_param` from `ty_utils`"]
    pub const ty_utils_impl_trait_not_param: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ty_utils_impl_trait_not_param"),
            None);
    #[doc =
    "Constant referring to Fluent message `ty_utils_index_not_supported` from `ty_utils`"]
    pub const ty_utils_index_not_supported: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ty_utils_index_not_supported"),
            None);
    #[doc =
    "Constant referring to Fluent message `ty_utils_inline_asm_not_supported` from `ty_utils`"]
    pub const ty_utils_inline_asm_not_supported: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ty_utils_inline_asm_not_supported"),
            None);
    #[doc =
    "Constant referring to Fluent message `ty_utils_logical_op_not_supported` from `ty_utils`"]
    pub const ty_utils_logical_op_not_supported: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ty_utils_logical_op_not_supported"),
            None);
    #[doc =
    "Constant referring to Fluent message `ty_utils_loop_not_supported` from `ty_utils`"]
    pub const ty_utils_loop_not_supported: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ty_utils_loop_not_supported"),
            None);
    #[doc =
    "Constant referring to Fluent message `ty_utils_needs_drop_overflow` from `ty_utils`"]
    pub const ty_utils_needs_drop_overflow: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ty_utils_needs_drop_overflow"),
            None);
    #[doc =
    "Constant referring to Fluent message `ty_utils_never_to_any_not_supported` from `ty_utils`"]
    pub const ty_utils_never_to_any_not_supported: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ty_utils_never_to_any_not_supported"),
            None);
    #[doc =
    "Constant referring to Fluent message `ty_utils_non_primitive_simd_type` from `ty_utils`"]
    pub const ty_utils_non_primitive_simd_type: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ty_utils_non_primitive_simd_type"),
            None);
    #[doc =
    "Constant referring to Fluent message `ty_utils_operation_not_supported` from `ty_utils`"]
    pub const ty_utils_operation_not_supported: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ty_utils_operation_not_supported"),
            None);
    #[doc =
    "Constant referring to Fluent message `ty_utils_pointer_not_supported` from `ty_utils`"]
    pub const ty_utils_pointer_not_supported: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ty_utils_pointer_not_supported"),
            None);
    #[doc =
    "Constant referring to Fluent message `ty_utils_tuple_not_supported` from `ty_utils`"]
    pub const ty_utils_tuple_not_supported: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ty_utils_tuple_not_supported"),
            None);
    #[doc =
    "Constant referring to Fluent message `ty_utils_unexpected_fnptr_associated_item` from `ty_utils`"]
    pub const ty_utils_unexpected_fnptr_associated_item:
        rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ty_utils_unexpected_fnptr_associated_item"),
            None);
    #[doc =
    "Constant referring to Fluent message `ty_utils_yield_not_supported` from `ty_utils`"]
    pub const ty_utils_yield_not_supported: rustc_errors::DiagMessage =
        rustc_errors::DiagMessage::FluentIdentifier(std::borrow::Cow::Borrowed("ty_utils_yield_not_supported"),
            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" }
35
36pub fn provide(providers: &mut Providers) {
37    abi::provide(providers);
38    assoc::provide(providers);
39    common_traits::provide(providers);
40    consts::provide(providers);
41    implied_bounds::provide(providers);
42    layout::provide(providers);
43    needs_drop::provide(providers);
44    opaque_types::provide(providers);
45    representability::provide(providers);
46    ty::provide(providers);
47    instance::provide(providers);
48    structural_match::provide(providers);
49    nested_bodies::provide(providers);
50}