fix: changed CodeGen sig is not reflected to callers

Note: TokenStream::extend accepts `Result`s, so be careful
This commit is contained in:
Wataru Otsubo 2025-02-01 19:54:34 +09:00
parent e147bc513d
commit a87e81ad5b

View file

@ -129,7 +129,8 @@ impl CodeGen for Module {
let child_mods = self let child_mods = self
.elements_other .elements_other
.into_iter() .into_iter()
.map(|e| e.generate_register_interface()); .map(|e| e.generate_register_interface())
.collect::<Result<Vec<_>, _>>()?;
for child in child_mods { for child in child_mods {
out.extend(child); out.extend(child);
} }
@ -172,15 +173,11 @@ impl CodeGen for Block {
out out
}; };
let child_mods = { let code_children = self
let mut out = TokenStream::new(); .elements
for child_mod in self.elements.into_iter() { .into_iter()
let module = child_mod.generate_register_interface(); .map(|e| e.generate_register_interface())
out.extend(module); .collect::<Result<Vec<_>, _>>()?;
}
out
};
Ok(quote! { Ok(quote! {
pub mod #snake_case_name { pub mod #snake_case_name {
@ -190,7 +187,7 @@ impl CodeGen for Block {
use super::RegisterInterface; use super::RegisterInterface;
#child_mods #(#code_children)*
const OFFSET: usize = #addr; const OFFSET: usize = #addr;
//pub(crate) const SIZE: usize = 0x4000; //pub(crate) const SIZE: usize = 0x4000;