Skip to main content

rustc_type_ir/
lang_items.rs

1/// Lang items used by the new trait solver. This can be mapped to whatever internal
2/// representation of `LangItem`s used in the underlying compiler implementation.
3#[derive(#[automatically_derived]
impl ::core::fmt::Debug for SolverProjectionLangItem {
    #[inline]
    fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
        static __NAMES: &str =
            "AsyncFnKindUpvarsAsyncFnOnceOutputCallOnceFutureCallRefFutureCoroutineReturnCoroutineYieldFieldBaseFieldTypeFutureOutputMetadata";
        static __OFFSET: [usize; 11] =
            [0usize, 17usize, 34usize, 48usize, 61usize, 76usize, 90usize,
                    99usize, 108usize, 120usize, 128usize];
        let __d = ::core::intrinsics::discriminant_value(self) as usize;
        ::core::fmt::Formatter::debug_c_like_enum_write_str(f, __NAMES,
            &__OFFSET, __d)
    }
}Debug, #[automatically_derived]
impl ::core::clone::Clone for SolverProjectionLangItem {
    #[inline]
    fn clone(&self) -> SolverProjectionLangItem { *self }
}Clone, #[automatically_derived]
impl ::core::marker::Copy for SolverProjectionLangItem { }Copy, #[automatically_derived]
impl ::core::cmp::PartialEq for SolverProjectionLangItem {
    #[inline]
    fn eq(&self, other: &SolverProjectionLangItem) -> bool {
        let __self_discr = ::core::intrinsics::discriminant_value(self);
        let __arg1_discr = ::core::intrinsics::discriminant_value(other);
        __self_discr == __arg1_discr
    }
}PartialEq, #[automatically_derived]
impl ::core::cmp::Eq for SolverProjectionLangItem {
    #[inline]
    #[doc(hidden)]
    #[coverage(off)]
    fn assert_fields_are_eq(&self) {}
}Eq, #[automatically_derived]
impl ::core::hash::Hash for SolverProjectionLangItem {
    #[inline]
    fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
        let __self_discr = ::core::intrinsics::discriminant_value(self);
        ::core::hash::Hash::hash(&__self_discr, state)
    }
}Hash)]
4pub enum SolverProjectionLangItem {
5    // tidy-alphabetical-start
6    AsyncFnKindUpvars,
7    AsyncFnOnceOutput,
8    CallOnceFuture,
9    CallRefFuture,
10    CoroutineReturn,
11    CoroutineYield,
12    FieldBase,
13    FieldType,
14    FutureOutput,
15    Metadata,
16    // tidy-alphabetical-end
17}
18
19#[derive(#[automatically_derived]
impl ::core::fmt::Debug for SolverAdtLangItem {
    #[inline]
    fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
        ::core::fmt::Formatter::write_str(f,
            match self {
                SolverAdtLangItem::DynMetadata => "DynMetadata",
                SolverAdtLangItem::Option => "Option",
                SolverAdtLangItem::OwnedBox => "OwnedBox",
                SolverAdtLangItem::Poll => "Poll",
            })
    }
}Debug, #[automatically_derived]
impl ::core::clone::Clone for SolverAdtLangItem {
    #[inline]
    fn clone(&self) -> SolverAdtLangItem { *self }
}Clone, #[automatically_derived]
impl ::core::marker::Copy for SolverAdtLangItem { }Copy, #[automatically_derived]
impl ::core::cmp::PartialEq for SolverAdtLangItem {
    #[inline]
    fn eq(&self, other: &SolverAdtLangItem) -> bool {
        let __self_discr = ::core::intrinsics::discriminant_value(self);
        let __arg1_discr = ::core::intrinsics::discriminant_value(other);
        __self_discr == __arg1_discr
    }
}PartialEq, #[automatically_derived]
impl ::core::cmp::Eq for SolverAdtLangItem {
    #[inline]
    #[doc(hidden)]
    #[coverage(off)]
    fn assert_fields_are_eq(&self) {}
}Eq, #[automatically_derived]
impl ::core::hash::Hash for SolverAdtLangItem {
    #[inline]
    fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
        let __self_discr = ::core::intrinsics::discriminant_value(self);
        ::core::hash::Hash::hash(&__self_discr, state)
    }
}Hash)]
20pub enum SolverAdtLangItem {
21    // tidy-alphabetical-start
22    DynMetadata,
23    Option,
24    OwnedBox,
25    Poll,
26    // tidy-alphabetical-end
27}
28
29#[derive(#[automatically_derived]
impl ::core::fmt::Debug for SolverTraitLangItem {
    #[inline]
    fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
        static __NAMES: &str =
            "AsyncFnAsyncFnKindHelperAsyncFnMutAsyncFnOnceAsyncIteratorBikeshedGuaranteedNoDropCloneCopyCoroutineDestructDiscriminantKindDropFieldFnFnMutFnOnceFnPtrTraitFusedIteratorFutureIteratorMetaSizedPointeeSizedPointeeTraitSizedTransmuteTraitTrivialCloneTryAsDynTupleUnpinUnsize";
        static __OFFSET: [usize; 31] =
            [0usize, 7usize, 24usize, 34usize, 45usize, 58usize, 82usize,
                    87usize, 91usize, 100usize, 108usize, 124usize, 128usize,
                    133usize, 135usize, 140usize, 146usize, 156usize, 169usize,
                    175usize, 183usize, 192usize, 204usize, 216usize, 221usize,
                    235usize, 247usize, 255usize, 260usize, 265usize, 271usize];
        let __d = ::core::intrinsics::discriminant_value(self) as usize;
        ::core::fmt::Formatter::debug_c_like_enum_write_str(f, __NAMES,
            &__OFFSET, __d)
    }
}Debug, #[automatically_derived]
impl ::core::clone::Clone for SolverTraitLangItem {
    #[inline]
    fn clone(&self) -> SolverTraitLangItem { *self }
}Clone, #[automatically_derived]
impl ::core::marker::Copy for SolverTraitLangItem { }Copy, #[automatically_derived]
impl ::core::cmp::PartialEq for SolverTraitLangItem {
    #[inline]
    fn eq(&self, other: &SolverTraitLangItem) -> bool {
        let __self_discr = ::core::intrinsics::discriminant_value(self);
        let __arg1_discr = ::core::intrinsics::discriminant_value(other);
        __self_discr == __arg1_discr
    }
}PartialEq, #[automatically_derived]
impl ::core::cmp::Eq for SolverTraitLangItem {
    #[inline]
    #[doc(hidden)]
    #[coverage(off)]
    fn assert_fields_are_eq(&self) {}
}Eq, #[automatically_derived]
impl ::core::hash::Hash for SolverTraitLangItem {
    #[inline]
    fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
        let __self_discr = ::core::intrinsics::discriminant_value(self);
        ::core::hash::Hash::hash(&__self_discr, state)
    }
}Hash)]
30pub enum SolverTraitLangItem {
31    // tidy-alphabetical-start
32    AsyncFn,
33    AsyncFnKindHelper,
34    AsyncFnMut,
35    AsyncFnOnce,
36    AsyncIterator,
37    BikeshedGuaranteedNoDrop,
38    Clone,
39    Copy,
40    Coroutine,
41    Destruct,
42    DiscriminantKind,
43    Drop,
44    Field,
45    Fn,
46    FnMut,
47    FnOnce,
48    FnPtrTrait,
49    FusedIterator,
50    Future,
51    Iterator,
52    MetaSized,
53    PointeeSized,
54    PointeeTrait,
55    Sized,
56    TransmuteTrait,
57    TrivialClone,
58    TryAsDyn,
59    Tuple,
60    Unpin,
61    Unsize,
62    // tidy-alphabetical-end
63}