5 // Structural impls for the structs in `traits`.
7 impl<'tcx
, N
: fmt
::Debug
> fmt
::Debug
for traits
::ImplSource
<'tcx
, N
> {
8 fn fmt(&self, f
: &mut fmt
::Formatter
<'_
>) -> fmt
::Result
{
10 super::ImplSource
::UserDefined(ref v
) => write
!(f
, "{:?}", v
),
12 super::ImplSource
::AutoImpl(ref t
) => write
!(f
, "{:?}", t
),
14 super::ImplSource
::Closure(ref d
) => write
!(f
, "{:?}", d
),
16 super::ImplSource
::Generator(ref d
) => write
!(f
, "{:?}", d
),
18 super::ImplSource
::FnPointer(ref d
) => write
!(f
, "({:?})", d
),
20 super::ImplSource
::DiscriminantKind(ref d
) => write
!(f
, "{:?}", d
),
22 super::ImplSource
::Pointee(ref d
) => write
!(f
, "{:?}", d
),
24 super::ImplSource
::Object(ref d
) => write
!(f
, "{:?}", d
),
26 super::ImplSource
::Param(ref n
, ct
) => {
27 write
!(f
, "ImplSourceParamData({:?}, {:?})", n
, ct
)
30 super::ImplSource
::Builtin(ref d
) => write
!(f
, "{:?}", d
),
32 super::ImplSource
::TraitAlias(ref d
) => write
!(f
, "{:?}", d
),
34 super::ImplSource
::TraitUpcasting(ref d
) => write
!(f
, "{:?}", d
),
36 super::ImplSource
::ConstDrop(ref d
) => write
!(f
, "{:?}", d
),
41 impl<'tcx
, N
: fmt
::Debug
> fmt
::Debug
for traits
::ImplSourceUserDefinedData
<'tcx
, N
> {
42 fn fmt(&self, f
: &mut fmt
::Formatter
<'_
>) -> fmt
::Result
{
45 "ImplSourceUserDefinedData(impl_def_id={:?}, substs={:?}, nested={:?})",
46 self.impl_def_id
, self.substs
, self.nested
51 impl<'tcx
, N
: fmt
::Debug
> fmt
::Debug
for traits
::ImplSourceGeneratorData
<'tcx
, N
> {
52 fn fmt(&self, f
: &mut fmt
::Formatter
<'_
>) -> fmt
::Result
{
55 "ImplSourceGeneratorData(generator_def_id={:?}, substs={:?}, nested={:?})",
56 self.generator_def_id
, self.substs
, self.nested
61 impl<'tcx
, N
: fmt
::Debug
> fmt
::Debug
for traits
::ImplSourceClosureData
<'tcx
, N
> {
62 fn fmt(&self, f
: &mut fmt
::Formatter
<'_
>) -> fmt
::Result
{
65 "ImplSourceClosureData(closure_def_id={:?}, substs={:?}, nested={:?})",
66 self.closure_def_id
, self.substs
, self.nested
71 impl<N
: fmt
::Debug
> fmt
::Debug
for traits
::ImplSourceBuiltinData
<N
> {
72 fn fmt(&self, f
: &mut fmt
::Formatter
<'_
>) -> fmt
::Result
{
73 write
!(f
, "ImplSourceBuiltinData(nested={:?})", self.nested
)
77 impl<'tcx
, N
: fmt
::Debug
> fmt
::Debug
for traits
::ImplSourceTraitUpcastingData
<'tcx
, N
> {
78 fn fmt(&self, f
: &mut fmt
::Formatter
<'_
>) -> fmt
::Result
{
81 "ImplSourceTraitUpcastingData(upcast={:?}, vtable_vptr_slot={:?}, nested={:?})",
82 self.upcast_trait_ref
, self.vtable_vptr_slot
, self.nested
87 impl<N
: fmt
::Debug
> fmt
::Debug
for traits
::ImplSourceAutoImplData
<N
> {
88 fn fmt(&self, f
: &mut fmt
::Formatter
<'_
>) -> fmt
::Result
{
91 "ImplSourceAutoImplData(trait_def_id={:?}, nested={:?})",
92 self.trait_def_id
, self.nested
97 impl<'tcx
, N
: fmt
::Debug
> fmt
::Debug
for traits
::ImplSourceObjectData
<'tcx
, N
> {
98 fn fmt(&self, f
: &mut fmt
::Formatter
<'_
>) -> fmt
::Result
{
101 "ImplSourceObjectData(upcast={:?}, vtable_base={}, nested={:?})",
102 self.upcast_trait_ref
, self.vtable_base
, self.nested
107 impl<'tcx
, N
: fmt
::Debug
> fmt
::Debug
for traits
::ImplSourceFnPointerData
<'tcx
, N
> {
108 fn fmt(&self, f
: &mut fmt
::Formatter
<'_
>) -> fmt
::Result
{
109 write
!(f
, "ImplSourceFnPointerData(fn_ty={:?}, nested={:?})", self.fn_ty
, self.nested
)
113 impl<'tcx
, N
: fmt
::Debug
> fmt
::Debug
for traits
::ImplSourceTraitAliasData
<'tcx
, N
> {
114 fn fmt(&self, f
: &mut fmt
::Formatter
<'_
>) -> fmt
::Result
{
117 "ImplSourceTraitAliasData(alias_def_id={:?}, substs={:?}, nested={:?})",
118 self.alias_def_id
, self.substs
, self.nested
123 ///////////////////////////////////////////////////////////////////////////
124 // Lift implementations
126 TrivialTypeFoldableAndLiftImpls
! {
127 super::IfExpressionCause
,
128 super::ImplSourceDiscriminantKindData
,
129 super::ImplSourcePointeeData
,
130 super::ImplSourceConstDropData
,