diff --git a/reid/src/mir/display.rs b/reid/src/mir/display.rs index 0b4e2d7..bc64081 100644 --- a/reid/src/mir/display.rs +++ b/reid/src/mir/display.rs @@ -311,3 +311,13 @@ fn write_access(f: &mut std::fmt::Formatter<'_>, name: &String) -> std::fmt::Res f.write_char('.')?; Display::fmt(name, f) } + +impl std::fmt::Display for VagueType { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + VagueType::Unknown => write!(f, "Unknown"), + VagueType::Number => write!(f, "Number"), + VagueType::TypeRef(_) => write!(f, "{{unknown}}"), + } + } +} diff --git a/reid/src/mir/mod.rs b/reid/src/mir/mod.rs index ad81646..715d577 100644 --- a/reid/src/mir/mod.rs +++ b/reid/src/mir/mod.rs @@ -113,17 +113,14 @@ pub enum TypeKind { Borrow(Box), #[error("Ptr({0})")] Ptr(Box), - #[error(transparent)] - Vague(#[from] VagueType), + #[error("{0}")] + Vague(VagueType), } -#[derive(Debug, Clone, Copy, PartialEq, Eq, thiserror::Error, PartialOrd, Ord, Hash)] +#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] pub enum VagueType { - #[error("Unknown")] Unknown, - #[error("Number")] Number, - #[error("TypeRef({0})")] TypeRef(usize), }