diff --git a/examples/late-resources.rs b/examples/late-resources.rs index b5dba1467e..b60c7740f6 100644 --- a/examples/late-resources.rs +++ b/examples/late-resources.rs @@ -32,6 +32,11 @@ app! { static PORT: u16; }, + idle: { + // Test that late resources can be used in idle + resources: [IP_ADDRESS], + } + tasks: { SYS_TICK: { priority: 1, diff --git a/macros/src/trans.rs b/macros/src/trans.rs index 45841e7300..96ff770b64 100644 --- a/macros/src/trans.rs +++ b/macros/src/trans.rs @@ -74,8 +74,14 @@ fn idle( }); let _name = Ident::new(format!("_{}", name.as_ref())); - rexprs.push(quote! { - #name: &mut #super_::#_name, + rexprs.push(if resource.expr.is_some() { + quote! { + #name: &mut #super_::#_name, + } + } else { + quote! { + #name: #super_::#_name.as_mut(), + } }); } else { rfields.push(quote! {