]> git.lizzy.rs Git - rust.git/blob - compiler/rustc_middle/src/traits/structural_impls.rs
Rollup merge of #104780 - BoxyUwU:error_reported_not_be_bad, r=oli-obk
[rust.git] / compiler / rustc_middle / src / traits / structural_impls.rs
1 use crate::traits;
2
3 use std::fmt;
4
5 // Structural impls for the structs in `traits`.
6
7 impl<'tcx, N: fmt::Debug> fmt::Debug for traits::ImplSource<'tcx, N> {
8     fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9         match *self {
10             super::ImplSource::UserDefined(ref v) => write!(f, "{:?}", v),
11
12             super::ImplSource::AutoImpl(ref t) => write!(f, "{:?}", t),
13
14             super::ImplSource::Closure(ref d) => write!(f, "{:?}", d),
15
16             super::ImplSource::Generator(ref d) => write!(f, "{:?}", d),
17
18             super::ImplSource::Future(ref d) => write!(f, "{:?}", d),
19
20             super::ImplSource::FnPointer(ref d) => write!(f, "({:?})", d),
21
22             super::ImplSource::DiscriminantKind(ref d) => write!(f, "{:?}", d),
23
24             super::ImplSource::Pointee(ref d) => write!(f, "{:?}", d),
25
26             super::ImplSource::Object(ref d) => write!(f, "{:?}", d),
27
28             super::ImplSource::Param(ref n, ct) => {
29                 write!(f, "ImplSourceParamData({:?}, {:?})", n, ct)
30             }
31
32             super::ImplSource::Builtin(ref d) => write!(f, "{:?}", d),
33
34             super::ImplSource::TraitAlias(ref d) => write!(f, "{:?}", d),
35
36             super::ImplSource::TraitUpcasting(ref d) => write!(f, "{:?}", d),
37
38             super::ImplSource::ConstDestruct(ref d) => write!(f, "{:?}", d),
39         }
40     }
41 }
42
43 impl<'tcx, N: fmt::Debug> fmt::Debug for traits::ImplSourceUserDefinedData<'tcx, N> {
44     fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
45         write!(
46             f,
47             "ImplSourceUserDefinedData(impl_def_id={:?}, substs={:?}, nested={:?})",
48             self.impl_def_id, self.substs, self.nested
49         )
50     }
51 }
52
53 impl<'tcx, N: fmt::Debug> fmt::Debug for traits::ImplSourceGeneratorData<'tcx, N> {
54     fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
55         write!(
56             f,
57             "ImplSourceGeneratorData(generator_def_id={:?}, substs={:?}, nested={:?})",
58             self.generator_def_id, self.substs, self.nested
59         )
60     }
61 }
62
63 impl<'tcx, N: fmt::Debug> fmt::Debug for traits::ImplSourceFutureData<'tcx, N> {
64     fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
65         write!(
66             f,
67             "ImplSourceFutureData(generator_def_id={:?}, substs={:?}, nested={:?})",
68             self.generator_def_id, self.substs, self.nested
69         )
70     }
71 }
72
73 impl<'tcx, N: fmt::Debug> fmt::Debug for traits::ImplSourceClosureData<'tcx, N> {
74     fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
75         write!(
76             f,
77             "ImplSourceClosureData(closure_def_id={:?}, substs={:?}, nested={:?})",
78             self.closure_def_id, self.substs, self.nested
79         )
80     }
81 }
82
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)
86     }
87 }
88
89 impl<'tcx, N: fmt::Debug> fmt::Debug for traits::ImplSourceTraitUpcastingData<'tcx, N> {
90     fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
91         write!(
92             f,
93             "ImplSourceTraitUpcastingData(upcast={:?}, vtable_vptr_slot={:?}, nested={:?})",
94             self.upcast_trait_ref, self.vtable_vptr_slot, self.nested
95         )
96     }
97 }
98
99 impl<N: fmt::Debug> fmt::Debug for traits::ImplSourceAutoImplData<N> {
100     fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
101         write!(
102             f,
103             "ImplSourceAutoImplData(trait_def_id={:?}, nested={:?})",
104             self.trait_def_id, self.nested
105         )
106     }
107 }
108
109 impl<'tcx, N: fmt::Debug> fmt::Debug for traits::ImplSourceObjectData<'tcx, N> {
110     fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
111         write!(
112             f,
113             "ImplSourceObjectData(upcast={:?}, vtable_base={}, nested={:?})",
114             self.upcast_trait_ref, self.vtable_base, self.nested
115         )
116     }
117 }
118
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)
122     }
123 }
124
125 impl<'tcx, N: fmt::Debug> fmt::Debug for traits::ImplSourceTraitAliasData<'tcx, N> {
126     fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
127         write!(
128             f,
129             "ImplSourceTraitAliasData(alias_def_id={:?}, substs={:?}, nested={:?})",
130             self.alias_def_id, self.substs, self.nested
131         )
132     }
133 }
134
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)
138     }
139 }
140
141 ///////////////////////////////////////////////////////////////////////////
142 // Lift implementations
143
144 TrivialTypeTraversalAndLiftImpls! {
145     super::ImplSourceDiscriminantKindData,
146     super::ImplSourcePointeeData,
147 }