diff options
Diffstat (limited to 'crates/ra_hir_ty/src/traits/chalk/tls.rs')
-rw-r--r-- | crates/ra_hir_ty/src/traits/chalk/tls.rs | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/crates/ra_hir_ty/src/traits/chalk/tls.rs b/crates/ra_hir_ty/src/traits/chalk/tls.rs index ebf402a07..d88828c7c 100644 --- a/crates/ra_hir_ty/src/traits/chalk/tls.rs +++ b/crates/ra_hir_ty/src/traits/chalk/tls.rs | |||
@@ -247,10 +247,24 @@ impl DebugContext<'_> { | |||
247 | 247 | ||
248 | pub fn debug_fn_def_id( | 248 | pub fn debug_fn_def_id( |
249 | &self, | 249 | &self, |
250 | _fn_def_id: chalk_ir::FnDefId<Interner>, | 250 | fn_def_id: chalk_ir::FnDefId<Interner>, |
251 | fmt: &mut fmt::Formatter<'_>, | 251 | fmt: &mut fmt::Formatter<'_>, |
252 | ) -> Result<(), fmt::Error> { | 252 | ) -> Result<(), fmt::Error> { |
253 | write!(fmt, "fn") | 253 | let def: CallableDef = from_chalk(self.0, fn_def_id); |
254 | let name = match def { | ||
255 | CallableDef::FunctionId(ff) => self.0.function_data(ff).name.clone(), | ||
256 | CallableDef::StructId(s) => self.0.struct_data(s).name.clone(), | ||
257 | CallableDef::EnumVariantId(e) => { | ||
258 | let enum_data = self.0.enum_data(e.parent); | ||
259 | enum_data.variants[e.local_id].name.clone() | ||
260 | } | ||
261 | }; | ||
262 | match def { | ||
263 | CallableDef::FunctionId(_) => write!(fmt, "{{fn {}}}", name), | ||
264 | CallableDef::StructId(_) | CallableDef::EnumVariantId(_) => { | ||
265 | write!(fmt, "{{ctor {}}}", name) | ||
266 | } | ||
267 | } | ||
254 | } | 268 | } |
255 | 269 | ||
256 | pub fn debug_const( | 270 | pub fn debug_const( |