From 1df1fc664c4a4b12807a49ef2f1a0effda6ce064 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Tue, 23 Jun 2026 00:40:05 +0800 Subject: Add compile-time duplicate variant detection Add duplicate variant checks for chain, renderer, help, and completion registrations to produce a clear compile error instead of silently generating unreachable code --- mingling_macros/src/chain.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'mingling_macros/src/chain.rs') diff --git a/mingling_macros/src/chain.rs b/mingling_macros/src/chain.rs index eaf43fb..a678858 100644 --- a/mingling_macros/src/chain.rs +++ b/mingling_macros/src/chain.rs @@ -432,6 +432,20 @@ pub fn register_chain(input: TokenStream) -> TokenStream { let chain_entry_str = chain_entry.to_string(); let chain_exist_entry_str = chain_exist_entry.to_string(); + // Check for duplicate variant before inserting + let variant_name = previous_type + .path + .segments + .last() + .unwrap() + .ident + .to_string(); + if let Err(err) = + crate::check_duplicate_variant(&chains, &variant_name, "chain", previous_type.span()) + { + return err.into(); + } + chains.insert(chain_entry_str); chain_exist.insert(chain_exist_entry_str); -- cgit