diff --git a/src/ast.rs b/src/ast.rs index 99dc3b95..e10ecd91 100644 --- a/src/ast.rs +++ b/src/ast.rs @@ -1102,7 +1102,7 @@ pub struct OpAssignment { /// # Volatile Data Structure /// /// This type is volatile and may change. -#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash, Default)] +#[derive(Clone, Copy, Eq, PartialEq, Hash, Default)] pub struct FnHash { /// Pre-calculated hash for a script-defined function ([`None`] if native functions only). script: Option, @@ -1110,6 +1110,20 @@ pub struct FnHash { native: u64, } +impl fmt::Debug for FnHash { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + if let Some(script) = self.script { + if script == self.native { + write!(f, "({}=={})", script, self.native) + } else { + write!(f, "({}, {})", script, self.native) + } + } else { + write!(f, "{}", self.native) + } + } +} + impl FnHash { /// Create a [`FnHash`] with only the native Rust hash. #[inline(always)] diff --git a/src/module/mod.rs b/src/module/mod.rs index c79e2396..0727c8fb 100644 --- a/src/module/mod.rs +++ b/src/module/mod.rs @@ -2022,13 +2022,18 @@ pub struct NamespaceRef { impl fmt::Debug for NamespaceRef { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - fmt::Debug::fmt(&self.path, f)?; - if let Some(index) = self.index { - write!(f, " -> {}", index) - } else { - Ok(()) + write!(f, "{} -> ", index)?; } + + f.write_str( + &self + .path + .iter() + .map(|Ident { name, .. }| name.as_str()) + .collect::>() + .join("::"), + ) } }