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"))]
|
#[cfg(not(feature = "nightly"))]
|
||||||
let mut task_outer_body = quote! {
|
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
|
where
|
||||||
F: #embassy_executor::_export::TaskFn<Args>,
|
F: #embassy_executor::_export::TaskFn<Args, Fut = Fut>,
|
||||||
|
Fut: ::core::future::Future + 'static,
|
||||||
{
|
{
|
||||||
::core::mem::size_of::<
|
::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
|
where
|
||||||
F: #embassy_executor::_export::TaskFn<Args>,
|
F: #embassy_executor::_export::TaskFn<Args, Fut = Fut>,
|
||||||
|
Fut: ::core::future::Future + 'static,
|
||||||
{
|
{
|
||||||
::core::mem::align_of::<
|
::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
|
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()
|
#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
|
where
|
||||||
F: #embassy_executor::_export::TaskFn<Args>
|
F: #embassy_executor::_export::TaskFn<Args, Fut = Fut>,
|
||||||
|
Fut: ::core::future::Future + 'static,
|
||||||
{
|
{
|
||||||
unsafe { &*POOL.get().cast() }
|
unsafe { &*POOL.get().cast() }
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user