mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-27 10:27:59 +00:00
Detect conflicting module names in construct_runtime! (#7968)
This commit is contained in:
@@ -62,6 +62,7 @@ impl Module {
|
||||
fn complete_modules(decl: impl Iterator<Item = ModuleDeclaration>) -> syn::Result<Vec<Module>> {
|
||||
let mut indices = HashMap::new();
|
||||
let mut last_index: Option<u8> = None;
|
||||
let mut names = HashMap::new();
|
||||
|
||||
decl
|
||||
.map(|module| {
|
||||
@@ -88,6 +89,14 @@ fn complete_modules(decl: impl Iterator<Item = ModuleDeclaration>) -> syn::Resul
|
||||
return Err(err);
|
||||
}
|
||||
|
||||
if let Some(used_module) = names.insert(module.name.clone(), module.name.span()) {
|
||||
let msg = "Two modules with the same name!";
|
||||
|
||||
let mut err = syn::Error::new(used_module, &msg);
|
||||
err.combine(syn::Error::new(module.name.span(), &msg));
|
||||
return Err(err);
|
||||
}
|
||||
|
||||
Ok(Module {
|
||||
name: module.name,
|
||||
index: final_index,
|
||||
|
||||
Reference in New Issue
Block a user