Do not use cfg_if for embedded-hal-async feature gates.
Old code used `cfg_if!` because rustc still parses code inside disabled cfg's, and Rust stable at that time couldn't parse the new GAT where-clause location. This is not the case anymore.
This commit is contained in:
		| @@ -469,10 +469,12 @@ mod eh1 { | ||||
|     } | ||||
| } | ||||
|  | ||||
| cfg_if::cfg_if! { | ||||
|     if #[cfg(all(feature = "unstable-traits", feature = "nightly"))] { | ||||
| #[cfg(all(feature = "unstable-traits", feature = "nightly"))] | ||||
| mod eha { | ||||
|     use futures::FutureExt; | ||||
|  | ||||
|     use super::*; | ||||
|  | ||||
|     impl<'d, T: GpioPin> embedded_hal_async::digital::Wait for Input<'d, T> { | ||||
|         type WaitForHighFuture<'a> = impl Future<Output = Result<(), Self::Error>> + 'a where Self: 'a; | ||||
|  | ||||
| @@ -537,4 +539,3 @@ cfg_if::cfg_if! { | ||||
|         } | ||||
|     } | ||||
| } | ||||
| } | ||||
|   | ||||
| @@ -475,10 +475,12 @@ mod eh1 { | ||||
|     } | ||||
| } | ||||
|  | ||||
| cfg_if::cfg_if! { | ||||
|     if #[cfg(all(feature = "unstable-traits", feature = "nightly"))] { | ||||
| #[cfg(all(feature = "unstable-traits", feature = "nightly"))] | ||||
| mod eha { | ||||
|     use core::future::Future; | ||||
|  | ||||
|     use super::*; | ||||
|  | ||||
|     impl<'d, T: Instance> embedded_hal_async::spi::SpiBusFlush for Spim<'d, T> { | ||||
|         type FlushFuture<'a> = impl Future<Output = Result<(), Self::Error>> + 'a where Self: 'a; | ||||
|  | ||||
| @@ -512,15 +514,11 @@ cfg_if::cfg_if! { | ||||
|  | ||||
|         type TransferInPlaceFuture<'a> = impl Future<Output = Result<(), Self::Error>> + 'a where Self: 'a; | ||||
|  | ||||
|             fn transfer_in_place<'a>( | ||||
|                 &'a mut self, | ||||
|                 words: &'a mut [u8], | ||||
|             ) -> Self::TransferInPlaceFuture<'a> { | ||||
|         fn transfer_in_place<'a>(&'a mut self, words: &'a mut [u8]) -> Self::TransferInPlaceFuture<'a> { | ||||
|             self.transfer_in_place(words) | ||||
|         } | ||||
|     } | ||||
| } | ||||
| } | ||||
|  | ||||
| impl<'d, T: Instance> SetConfig for Spim<'d, T> { | ||||
|     type Config = Config; | ||||
|   | ||||
| @@ -838,8 +838,9 @@ mod eh1 { | ||||
|     } | ||||
| } | ||||
|  | ||||
| cfg_if::cfg_if! { | ||||
|     if #[cfg(all(feature = "unstable-traits", feature = "nightly"))] { | ||||
| #[cfg(all(feature = "unstable-traits", feature = "nightly"))] | ||||
| mod eha { | ||||
|     use super::*; | ||||
|     impl<'d, T: Instance> embedded_hal_async::i2c::I2c for Twim<'d, T> { | ||||
|         type ReadFuture<'a> = impl Future<Output = Result<(), Self::Error>> + 'a where Self: 'a; | ||||
|  | ||||
| @@ -877,7 +878,6 @@ cfg_if::cfg_if! { | ||||
|         } | ||||
|     } | ||||
| } | ||||
| } | ||||
|  | ||||
| impl<'d, T: Instance> SetConfig for Twim<'d, T> { | ||||
|     type Config = Config; | ||||
|   | ||||
| @@ -1073,10 +1073,16 @@ mod eh1 { | ||||
|     } | ||||
| } | ||||
|  | ||||
| cfg_if::cfg_if! { | ||||
|     if #[cfg(all(feature = "unstable-traits", feature = "nightly", feature = "_todo_embedded_hal_serial"))] { | ||||
| #[cfg(all( | ||||
|     feature = "unstable-traits", | ||||
|     feature = "nightly", | ||||
|     feature = "_todo_embedded_hal_serial" | ||||
| ))] | ||||
| mod eha { | ||||
|     use core::future::Future; | ||||
|  | ||||
|     use super::*; | ||||
|  | ||||
|     impl<'d, T: Instance> embedded_hal_async::serial::Read for Uarte<'d, T> { | ||||
|         type ReadFuture<'a> = impl Future<Output = Result<(), Self::Error>> + 'a where Self: 'a; | ||||
|  | ||||
| @@ -1121,9 +1127,7 @@ cfg_if::cfg_if! { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|         impl<'d, U: Instance, T: TimerInstance> embedded_hal_async::serial::Read | ||||
|             for UarteWithIdle<'d, U, T> | ||||
|         { | ||||
|     impl<'d, U: Instance, T: TimerInstance> embedded_hal_async::serial::Read for UarteWithIdle<'d, U, T> { | ||||
|         type ReadFuture<'a> = impl Future<Output = Result<(), Self::Error>> + 'a where Self: 'a; | ||||
|  | ||||
|         fn read<'a>(&'a mut self, buffer: &'a mut [u8]) -> Self::ReadFuture<'a> { | ||||
| @@ -1131,9 +1135,7 @@ cfg_if::cfg_if! { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|         impl<'d, U: Instance, T: TimerInstance> embedded_hal_async::serial::Write | ||||
|             for UarteWithIdle<'d, U, T> | ||||
|         { | ||||
|     impl<'d, U: Instance, T: TimerInstance> embedded_hal_async::serial::Write for UarteWithIdle<'d, U, T> { | ||||
|         type WriteFuture<'a> = impl Future<Output = Result<(), Self::Error>> + 'a where Self: 'a; | ||||
|  | ||||
|         fn write<'a>(&'a mut self, buffer: &'a [u8]) -> Self::WriteFuture<'a> { | ||||
| @@ -1147,4 +1149,3 @@ cfg_if::cfg_if! { | ||||
|         } | ||||
|     } | ||||
| } | ||||
| } | ||||
|   | ||||
| @@ -477,12 +477,17 @@ mod eh1 { | ||||
|     } | ||||
| } | ||||
|  | ||||
| cfg_if::cfg_if! { | ||||
|     if #[cfg(all(feature = "unstable-traits", feature = "nightly", feature = "_todo_embedded_hal_serial"))] { | ||||
| #[cfg(all( | ||||
|     feature = "unstable-traits", | ||||
|     feature = "nightly", | ||||
|     feature = "_todo_embedded_hal_serial" | ||||
| ))] | ||||
| mod eha { | ||||
|     use core::future::Future; | ||||
|  | ||||
|         impl<'d, T: Instance, M: Mode> embedded_hal_async::serial::Write for UartTx<'d, T, M> | ||||
|         { | ||||
|     use super::*; | ||||
|  | ||||
|     impl<'d, T: Instance, M: Mode> embedded_hal_async::serial::Write for UartTx<'d, T, M> { | ||||
|         type WriteFuture<'a> = impl Future<Output = Result<(), Self::Error>> + 'a where Self: 'a; | ||||
|  | ||||
|         fn write<'a>(&'a mut self, buf: &'a [u8]) -> Self::WriteFuture<'a> { | ||||
| @@ -496,8 +501,7 @@ cfg_if::cfg_if! { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|         impl<'d, T: Instance, M: Mode> embedded_hal_async::serial::Read for UartRx<'d, T, M> | ||||
|         { | ||||
|     impl<'d, T: Instance, M: Mode> embedded_hal_async::serial::Read for UartRx<'d, T, M> { | ||||
|         type ReadFuture<'a> = impl Future<Output = Result<(), Self::Error>> + 'a where Self: 'a; | ||||
|  | ||||
|         fn read<'a>(&'a mut self, buf: &'a mut [u8]) -> Self::ReadFuture<'a> { | ||||
| @@ -505,8 +509,7 @@ cfg_if::cfg_if! { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|         impl<'d, T: Instance, M: Mode> embedded_hal_async::serial::Write for Uart<'d, T, M> | ||||
|         { | ||||
|     impl<'d, T: Instance, M: Mode> embedded_hal_async::serial::Write for Uart<'d, T, M> { | ||||
|         type WriteFuture<'a> = impl Future<Output = Result<(), Self::Error>> + 'a where Self: 'a; | ||||
|  | ||||
|         fn write<'a>(&'a mut self, buf: &'a [u8]) -> Self::WriteFuture<'a> { | ||||
| @@ -520,8 +523,7 @@ cfg_if::cfg_if! { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|         impl<'d, T: Instance, M: Mode> embedded_hal_async::serial::Read for Uart<'d, T, M> | ||||
|         { | ||||
|     impl<'d, T: Instance, M: Mode> embedded_hal_async::serial::Read for Uart<'d, T, M> { | ||||
|         type ReadFuture<'a> = impl Future<Output = Result<(), Self::Error>> + 'a where Self: 'a; | ||||
|  | ||||
|         fn read<'a>(&'a mut self, buf: &'a mut [u8]) -> Self::ReadFuture<'a> { | ||||
| @@ -529,7 +531,6 @@ cfg_if::cfg_if! { | ||||
|         } | ||||
|     } | ||||
| } | ||||
| } | ||||
|  | ||||
| mod sealed { | ||||
|     use super::*; | ||||
|   | ||||
| @@ -165,10 +165,12 @@ mod eh1 { | ||||
|         } | ||||
|     } | ||||
| } | ||||
| cfg_if::cfg_if! { | ||||
|     if #[cfg(all(feature = "unstable-traits", feature = "nightly"))] { | ||||
| #[cfg(all(feature = "unstable-traits", feature = "nightly"))] | ||||
| mod eha { | ||||
|     use futures::FutureExt; | ||||
|  | ||||
|     use super::*; | ||||
|  | ||||
|     impl<'d, T: GpioPin> embedded_hal_async::digital::Wait for ExtiInput<'d, T> { | ||||
|         type WaitForHighFuture<'a> = impl Future<Output = Result<(), Self::Error>> + 'a where Self: 'a; | ||||
|  | ||||
| @@ -201,7 +203,6 @@ cfg_if::cfg_if! { | ||||
|         } | ||||
|     } | ||||
| } | ||||
| } | ||||
|  | ||||
| struct ExtiInputFuture<'a> { | ||||
|     pin: u8, | ||||
|   | ||||
| @@ -927,14 +927,14 @@ mod eh1 { | ||||
|     } | ||||
| } | ||||
|  | ||||
| cfg_if::cfg_if! { | ||||
|     if #[cfg(all(feature = "unstable-traits", feature = "nightly"))] { | ||||
|         use super::{RxDma, TxDma}; | ||||
| #[cfg(all(feature = "unstable-traits", feature = "nightly"))] | ||||
| mod eha { | ||||
|     use core::future::Future; | ||||
|  | ||||
|         impl<'d, T: Instance, TXDMA: TxDma<T>, RXDMA: RxDma<T>> embedded_hal_async::i2c::I2c | ||||
|             for I2c<'d, T, TXDMA, RXDMA> | ||||
|         { | ||||
|     use super::super::{RxDma, TxDma}; | ||||
|     use super::*; | ||||
|  | ||||
|     impl<'d, T: Instance, TXDMA: TxDma<T>, RXDMA: RxDma<T>> embedded_hal_async::i2c::I2c for I2c<'d, T, TXDMA, RXDMA> { | ||||
|         type ReadFuture<'a> = impl Future<Output = Result<(), Self::Error>> + 'a where Self: 'a; | ||||
|  | ||||
|         fn read<'a>(&'a mut self, address: u8, buffer: &'a mut [u8]) -> Self::ReadFuture<'a> { | ||||
| @@ -969,7 +969,6 @@ cfg_if::cfg_if! { | ||||
|         } | ||||
|     } | ||||
| } | ||||
| } | ||||
|  | ||||
| impl<'d, T: Instance> SetConfig for I2c<'d, T> { | ||||
|     type Config = Hertz; | ||||
|   | ||||
| @@ -870,9 +870,11 @@ mod eh1 { | ||||
|     } | ||||
| } | ||||
|  | ||||
| cfg_if::cfg_if! { | ||||
|     if #[cfg(all(feature = "unstable-traits", feature = "nightly"))] { | ||||
| #[cfg(all(feature = "unstable-traits", feature = "nightly"))] | ||||
| mod eha { | ||||
|     use core::future::Future; | ||||
|  | ||||
|     use super::*; | ||||
|     impl<'d, T: Instance, Tx, Rx> embedded_hal_async::spi::SpiBusFlush for Spi<'d, T, Tx, Rx> { | ||||
|         type FlushFuture<'a> = impl Future<Output = Result<(), Self::Error>> + 'a where Self: 'a; | ||||
|  | ||||
| @@ -881,9 +883,7 @@ cfg_if::cfg_if! { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|         impl<'d, T: Instance, Tx: TxDma<T>, Rx, W: Word> embedded_hal_async::spi::SpiBusWrite<W> | ||||
|             for Spi<'d, T, Tx, Rx> | ||||
|         { | ||||
|     impl<'d, T: Instance, Tx: TxDma<T>, Rx, W: Word> embedded_hal_async::spi::SpiBusWrite<W> for Spi<'d, T, Tx, Rx> { | ||||
|         type WriteFuture<'a> = impl Future<Output = Result<(), Self::Error>> + 'a where Self: 'a; | ||||
|  | ||||
|         fn write<'a>(&'a mut self, data: &'a [W]) -> Self::WriteFuture<'a> { | ||||
| @@ -901,9 +901,7 @@ cfg_if::cfg_if! { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|         impl<'d, T: Instance, Tx: TxDma<T>, Rx: RxDma<T>, W: Word> embedded_hal_async::spi::SpiBus<W> | ||||
|             for Spi<'d, T, Tx, Rx> | ||||
|         { | ||||
|     impl<'d, T: Instance, Tx: TxDma<T>, Rx: RxDma<T>, W: Word> embedded_hal_async::spi::SpiBus<W> for Spi<'d, T, Tx, Rx> { | ||||
|         type TransferFuture<'a> = impl Future<Output = Result<(), Self::Error>> + 'a where Self: 'a; | ||||
|  | ||||
|         fn transfer<'a>(&'a mut self, rx: &'a mut [W], tx: &'a [W]) -> Self::TransferFuture<'a> { | ||||
| @@ -912,15 +910,11 @@ cfg_if::cfg_if! { | ||||
|  | ||||
|         type TransferInPlaceFuture<'a> = impl Future<Output = Result<(), Self::Error>> + 'a where Self: 'a; | ||||
|  | ||||
|             fn transfer_in_place<'a>( | ||||
|                 &'a mut self, | ||||
|                 words: &'a mut [W], | ||||
|             ) -> Self::TransferInPlaceFuture<'a> { | ||||
|         fn transfer_in_place<'a>(&'a mut self, words: &'a mut [W]) -> Self::TransferInPlaceFuture<'a> { | ||||
|             self.transfer_in_place(words) | ||||
|         } | ||||
|     } | ||||
| } | ||||
| } | ||||
|  | ||||
| pub(crate) mod sealed { | ||||
|     use super::*; | ||||
|   | ||||
| @@ -361,10 +361,16 @@ mod eh1 { | ||||
|     } | ||||
| } | ||||
|  | ||||
| cfg_if::cfg_if! { | ||||
|     if #[cfg(all(feature = "unstable-traits", feature = "nightly", feature = "_todo_embedded_hal_serial"))] { | ||||
| #[cfg(all( | ||||
|     feature = "unstable-traits", | ||||
|     feature = "nightly", | ||||
|     feature = "_todo_embedded_hal_serial" | ||||
| ))] | ||||
| mod eha { | ||||
|     use core::future::Future; | ||||
|  | ||||
|     use super::*; | ||||
|  | ||||
|     impl<'d, T: BasicInstance, TxDma> embedded_hal_async::serial::Write for UartTx<'d, T, TxDma> | ||||
|     where | ||||
|         TxDma: crate::usart::TxDma<T>, | ||||
| @@ -421,7 +427,6 @@ cfg_if::cfg_if! { | ||||
|         } | ||||
|     } | ||||
| } | ||||
| } | ||||
|  | ||||
| #[cfg(feature = "nightly")] | ||||
| pub use buffered::*; | ||||
|   | ||||
| @@ -31,12 +31,15 @@ mod eh1 { | ||||
|     } | ||||
| } | ||||
|  | ||||
| cfg_if::cfg_if! { | ||||
|     if #[cfg(all(feature = "unstable-traits", feature = "nightly"))] { | ||||
|         use crate::Timer; | ||||
| #[cfg(all(feature = "unstable-traits", feature = "nightly"))] | ||||
| mod eha { | ||||
|     use core::future::Future; | ||||
|  | ||||
|     use futures_util::FutureExt; | ||||
|  | ||||
|     use super::*; | ||||
|     use crate::Timer; | ||||
|  | ||||
|     impl embedded_hal_async::delay::DelayUs for Delay { | ||||
|         type Error = core::convert::Infallible; | ||||
|  | ||||
| @@ -53,7 +56,6 @@ cfg_if::cfg_if! { | ||||
|         } | ||||
|     } | ||||
| } | ||||
| } | ||||
|  | ||||
| mod eh02 { | ||||
|     use embedded_hal_02::blocking::delay::{DelayMs, DelayUs}; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user