From 5ad7e97e0586cd7dd6fbee184d514b4d097dab5d Mon Sep 17 00:00:00 2001 From: Jeong YunWon Date: Thu, 16 Jan 2025 00:52:16 +0900 Subject: [PATCH] Add better panic for abnormal downcast error --- vm/src/vm/vm_new.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/vm/src/vm/vm_new.rs b/vm/src/vm/vm_new.rs index ea8fa21c17..0585b7e290 100644 --- a/vm/src/vm/vm_new.rs +++ b/vm/src/vm/vm_new.rs @@ -365,7 +365,15 @@ impl VirtualMachine { let actual_class = obj.class(); let actual_type = &*actual_class.name(); let expected_type = &*class.name(); - let msg = format!("Expected {msg} '{expected_type}' but '{actual_type}' found"); + let msg = format!("Expected {msg} '{expected_type}' but '{actual_type}' found."); + #[cfg(debug_assertions)] + let msg = if class.get_id() == actual_class.get_id() { + let mut msg = msg; + msg += " Did you forget to add `#[pyclass(with(Constructor))]`?"; + msg + } else { + msg + }; self.new_exception_msg(error_type.to_owned(), msg) }