Fix ugly compiler errors
This commit is contained in:
parent
c72e2c5d10
commit
35b353ab94
@ -145,33 +145,39 @@ pub fn run(args: TokenStream, item: TokenStream) -> TokenStream {
|
||||
};
|
||||
#[cfg(not(feature = "nightly"))]
|
||||
let mut task_outer_body = quote! {
|
||||
const fn __task_pool_size<F, Args>(_: F) -> usize
|
||||
// We use Fut instead of F::Fut because F::Fut causes the compiler to generate some ugly
|
||||
// unrelated errors when the task has a compile error.
|
||||
const fn __task_pool_size<F, Args, Fut>(_: F) -> usize
|
||||
where
|
||||
F: #embassy_executor::_export::TaskFn<Args>,
|
||||
F: #embassy_executor::_export::TaskFn<Args, Fut = Fut>,
|
||||
Fut: ::core::future::Future + 'static,
|
||||
{
|
||||
::core::mem::size_of::<
|
||||
#embassy_executor::raw::TaskPool<F::Fut, POOL_SIZE>
|
||||
#embassy_executor::raw::TaskPool<Fut, POOL_SIZE>
|
||||
>()
|
||||
}
|
||||
const fn __task_pool_align<F, Args>(_: F) -> usize
|
||||
const fn __task_pool_align<F, Args, Fut>(_: F) -> usize
|
||||
where
|
||||
F: #embassy_executor::_export::TaskFn<Args>,
|
||||
F: #embassy_executor::_export::TaskFn<Args, Fut = Fut>,
|
||||
Fut: ::core::future::Future + 'static,
|
||||
{
|
||||
::core::mem::align_of::<
|
||||
#embassy_executor::raw::TaskPool<F::Fut, POOL_SIZE>
|
||||
#embassy_executor::raw::TaskPool<Fut, POOL_SIZE>
|
||||
>()
|
||||
}
|
||||
|
||||
const fn __task_pool_new<F, Args>(_: F) -> #embassy_executor::raw::TaskPool<F::Fut, POOL_SIZE>
|
||||
const fn __task_pool_new<F, Args, Fut>(_: F) -> #embassy_executor::raw::TaskPool<Fut, POOL_SIZE>
|
||||
where
|
||||
F: #embassy_executor::_export::TaskFn<Args>,
|
||||
F: #embassy_executor::_export::TaskFn<Args, Fut = Fut>,
|
||||
Fut: ::core::future::Future + 'static,
|
||||
{
|
||||
#embassy_executor::raw::TaskPool::new()
|
||||
}
|
||||
|
||||
const fn __task_pool_get<F, Args>(_: F) -> &'static #embassy_executor::raw::TaskPool<F::Fut, POOL_SIZE>
|
||||
const fn __task_pool_get<F, Args, Fut>(_: F) -> &'static #embassy_executor::raw::TaskPool<Fut, POOL_SIZE>
|
||||
where
|
||||
F: #embassy_executor::_export::TaskFn<Args>
|
||||
F: #embassy_executor::_export::TaskFn<Args, Fut = Fut>,
|
||||
Fut: ::core::future::Future + 'static,
|
||||
{
|
||||
unsafe { &*POOL.get().cast() }
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user