diff --git a/macros/src/trans.rs b/macros/src/trans.rs index 39c9c6f5c2..6554dc9fde 100644 --- a/macros/src/trans.rs +++ b/macros/src/trans.rs @@ -28,6 +28,9 @@ pub fn app(app: &App, ownerships: &Ownerships) -> Tokens { quote!(#(#root)*) } +// Checks that the resource types are valid +// Sadly we can't do this test at expansion time. Instead we'll generate some +// code that won't compile if the types don't meet the requirements fn check(app: &App, main: &mut Vec) { if !app.resources.is_empty() { main.push(quote! { @@ -95,8 +98,9 @@ fn idle( pub #name: &'static mut #ty, }); + let _name = Ident::new(format!("_{}", name.as_ref())); rexprs.push(quote! { - #name: &mut #super_::#name, + #name: &mut #super_::#_name, }); } else { rfields.push(quote! {