From 62d73b19a2106445d35d9567989675247f7601d8 Mon Sep 17 00:00:00 2001 From: sofia Date: Sun, 20 Jul 2025 21:51:18 +0300 Subject: [PATCH] Improve error messages for typerefs a bit --- reid/src/mir/display.rs | 10 ++++++++++ reid/src/mir/mod.rs | 9 +++------ 2 files changed, 13 insertions(+), 6 deletions(-) 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), }