From f58f37b2b9a292a0e0d0be7d8afbe4df651c3432 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Tj=C3=A4der?= Date: Wed, 8 Apr 2020 14:43:47 +0000 Subject: Retain cfg-attributes on resources --- examples/t-cfg-resources.rs | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 examples/t-cfg-resources.rs (limited to 'examples') diff --git a/examples/t-cfg-resources.rs b/examples/t-cfg-resources.rs new file mode 100644 index 0000000..86b5ea2 --- /dev/null +++ b/examples/t-cfg-resources.rs @@ -0,0 +1,40 @@ +//! [compile-pass] check that `#[cfg]` attributes applied on resources work +//! +#![no_main] +#![no_std] + +use panic_halt as _; + +#[cfg(rustc_is_nightly)] +mod example { + + #[rtfm::app(device = lm3s6965)] + const APP: () = { + struct Resources { + // A resource + #[init(0)] + shared: u32, + + // A conditionally compiled resource behind feature_x + #[cfg(feature = "feature_x")] + x: u32, + + dummy: (), + } + + #[init] + fn init(_: init::Context) -> init::LateResources { + init::LateResources { + // The feature needs to be applied everywhere x is defined or used + #[cfg(feature = "feature_x")] + x: 0, + dummy: () // dummy such that we have at least one late resource + } + } + + #[idle] + fn idle(_cx: idle::Context) -> ! { + loop {} + } + }; +} -- cgit v1.2.3