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::Future(ref d) => write!(f, "{:?}", d),
20 super::ImplSource::FnPointer(ref d) => write!(f, "({:?})", d),
22 super::ImplSource::DiscriminantKind(ref d) => write!(f, "{:?}", d),
24 super::ImplSource::Pointee(ref d) => write!(f, "{:?}", d),
26 super::ImplSource::Object(ref d) => write!(f, "{:?}", d),
28 super::ImplSource::Param(ref n, ct) => {
29 write!(f, "ImplSourceParamData({:?}, {:?})", n, ct)
32 super::ImplSource::Builtin(ref d) => write!(f, "{:?}", d),
34 super::ImplSource::TraitAlias(ref d) => write!(f, "{:?}", d),
36 super::ImplSource::TraitUpcasting(ref d) => write!(f, "{:?}", d),
38 super::ImplSource::ConstDestruct(ref d) => write!(f, "{:?}", d),
43 impl<'tcx, N: fmt::Debug> fmt::Debug for traits::ImplSourceUserDefinedData<'tcx, N> {
44 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
47 "ImplSourceUserDefinedData(impl_def_id={:?}, substs={:?}, nested={:?})",
48 self.impl_def_id, self.substs, self.nested
53 impl<'tcx, N: fmt::Debug> fmt::Debug for traits::ImplSourceGeneratorData<'tcx, N> {
54 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
57 "ImplSourceGeneratorData(generator_def_id={:?}, substs={:?}, nested={:?})",
58 self.generator_def_id, self.substs, self.nested
63 impl<'tcx, N: fmt::Debug> fmt::Debug for traits::ImplSourceFutureData<'tcx, N> {
64 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
67 "ImplSourceFutureData(generator_def_id={:?}, substs={:?}, nested={:?})",
68 self.generator_def_id, self.substs, self.nested
73 impl<'tcx, N: fmt::Debug> fmt::Debug for traits::ImplSourceClosureData<'tcx, N> {
74 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
77 "ImplSourceClosureData(closure_def_id={:?}, substs={:?}, nested={:?})",
78 self.closure_def_id, self.substs, self.nested
83 impl<N: fmt::Debug> fmt::Debug for traits::ImplSourceBuiltinData<N> {
84 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
85 write!(f, "ImplSourceBuiltinData(nested={:?})", self.nested)
89 impl<'tcx, N: fmt::Debug> fmt::Debug for traits::ImplSourceTraitUpcastingData<'tcx, N> {
90 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
93 "ImplSourceTraitUpcastingData(upcast={:?}, vtable_vptr_slot={:?}, nested={:?})",
94 self.upcast_trait_ref, self.vtable_vptr_slot, self.nested
99 impl<N: fmt::Debug> fmt::Debug for traits::ImplSourceAutoImplData<N> {
100 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
103 "ImplSourceAutoImplData(trait_def_id={:?}, nested={:?})",
104 self.trait_def_id, self.nested
109 impl<'tcx, N: fmt::Debug> fmt::Debug for traits::ImplSourceObjectData<'tcx, N> {
110 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
113 "ImplSourceObjectData(upcast={:?}, vtable_base={}, nested={:?})",
114 self.upcast_trait_ref, self.vtable_base, self.nested
119 impl<'tcx, N: fmt::Debug> fmt::Debug for traits::ImplSourceFnPointerData<'tcx, N> {
120 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
121 write!(f, "ImplSourceFnPointerData(fn_ty={:?}, nested={:?})", self.fn_ty, self.nested)
125 impl<'tcx, N: fmt::Debug> fmt::Debug for traits::ImplSourceTraitAliasData<'tcx, N> {
126 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
129 "ImplSourceTraitAliasData(alias_def_id={:?}, substs={:?}, nested={:?})",
130 self.alias_def_id, self.substs, self.nested
135 impl<N: fmt::Debug> fmt::Debug for traits::ImplSourceConstDestructData<N> {
136 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
137 write!(f, "ImplSourceConstDestructData(nested={:?})", self.nested)
141 ///////////////////////////////////////////////////////////////////////////
142 // Lift implementations
144 TrivialTypeTraversalAndLiftImpls! {
145 super::ImplSourceDiscriminantKindData,
146 super::ImplSourcePointeeData,