From a87e81ad5b4c4d78adb4d4d79385988a48a81ab2 Mon Sep 17 00:00:00 2001 From: Wataru Otsubo Date: Sat, 1 Feb 2025 19:54:34 +0900 Subject: [PATCH] fix: changed CodeGen sig is not reflected to callers Note: TokenStream::extend accepts `Result`s, so be careful --- src/generator.rs | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/generator.rs b/src/generator.rs index d5deb1d..4e4cfdd 100644 --- a/src/generator.rs +++ b/src/generator.rs @@ -129,7 +129,8 @@ impl CodeGen for Module { let child_mods = self .elements_other .into_iter() - .map(|e| e.generate_register_interface()); + .map(|e| e.generate_register_interface()) + .collect::, _>>()?; for child in child_mods { out.extend(child); } @@ -172,15 +173,11 @@ impl CodeGen for Block { out }; - let child_mods = { - let mut out = TokenStream::new(); - for child_mod in self.elements.into_iter() { - let module = child_mod.generate_register_interface(); - out.extend(module); - } - - out - }; + let code_children = self + .elements + .into_iter() + .map(|e| e.generate_register_interface()) + .collect::, _>>()?; Ok(quote! { pub mod #snake_case_name { @@ -190,7 +187,7 @@ impl CodeGen for Block { use super::RegisterInterface; - #child_mods + #(#code_children)* const OFFSET: usize = #addr; //pub(crate) const SIZE: usize = 0x4000;