aboutsummaryrefslogtreecommitdiff
path: root/mingling_macros/src/completion.rs
diff options
context:
space:
mode:
Diffstat (limited to 'mingling_macros/src/completion.rs')
-rw-r--r--mingling_macros/src/completion.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/mingling_macros/src/completion.rs b/mingling_macros/src/completion.rs
index 452c418..c4870d9 100644
--- a/mingling_macros/src/completion.rs
+++ b/mingling_macros/src/completion.rs
@@ -153,6 +153,18 @@ pub fn completion_attr(attr: TokenStream, item: TokenStream) -> TokenStream {
let mut completions = get_global_set(&crate::COMPLETIONS).lock().unwrap();
let completion_str = completion_entry.to_string();
+
+ // Check for duplicate variant before inserting
+ let variant_name = previous_type_ident.to_string();
+ if let Err(err) = crate::check_duplicate_variant(
+ &completions,
+ &variant_name,
+ "completion",
+ previous_type_path.span(),
+ ) {
+ return err.into();
+ }
+
completions.insert(completion_str);
expanded.into()