From 6a07345135802344616a09584c94e2f4bbceb466 Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Tue, 17 Dec 2024 19:13:28 -0800 Subject: [PATCH] Add regression test for issue 398 error[E0425]: cannot find value `_0` in this scope --> tests/test_display.rs:308:17 | 308 | #[error("{0}")] | ^^^^^ not found in this scope error[E0425]: cannot find value `__display_x` in this scope --> tests/test_display.rs:310:17 | 310 | #[error("{x}")] | ^^^^^ not found in this scope --- tests/test_display.rs | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/tests/test_display.rs b/tests/test_display.rs index 5ee6e36..71c4a4a 100644 --- a/tests/test_display.rs +++ b/tests/test_display.rs @@ -266,7 +266,7 @@ fn test_pointer() { } #[test] -fn test_macro_rules() { +fn test_macro_rules_variant_from_call_site() { // Regression test for https://github.com/dtolnay/thiserror/issues/86 macro_rules! decl_error { @@ -291,6 +291,30 @@ fn test_macro_rules() { assert("0", Error1::Repro(0)); } +#[test] +fn test_macro_rules_message_from_call_site() { + // Regression test for https://github.com/dtolnay/thiserror/issues/398 + + macro_rules! decl_error { + ($($errors:tt)*) => { + #[derive(Error, Debug)] + pub enum Error { + $($errors)* + } + }; + } + + decl_error! { + #[error("{0}")] + Unnamed(u8), + #[error("{x}")] + Named { x: u8 }, + } + + assert("0", Error::Unnamed(0)); + assert("0", Error::Named { x: 0 }); +} + #[test] fn test_raw() { #[derive(Error, Debug)]