diff options
| author | Dario Nieuwenhuis <[email protected]> | 2023-03-08 02:03:39 +0100 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2023-03-08 02:03:39 +0100 |
| commit | e7a19a97259a5d3055db7164bc162ad7c7035420 (patch) | |
| tree | 4682d602165b645fffbee2bca2d3dff1531bcb98 /embassy-macros | |
| parent | a614e697d0ab8f45c59e136ad5015cfdedac50c3 (diff) | |
macros/main: copy fn return to task.
This prevents this bad code from compiling.
```rust
async fn main(_spawner: Spawner) -> ! {
// not really noreturn!
}
```
Diffstat (limited to 'embassy-macros')
| -rw-r--r-- | embassy-macros/src/macros/main.rs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/embassy-macros/src/macros/main.rs b/embassy-macros/src/macros/main.rs index 7af4ef836..6ae77398d 100644 --- a/embassy-macros/src/macros/main.rs +++ b/embassy-macros/src/macros/main.rs | |||
| @@ -105,10 +105,11 @@ pub fn run(args: syn::AttributeArgs, f: syn::ItemFn, main: TokenStream) -> Resul | |||
| 105 | ctxt.check()?; | 105 | ctxt.check()?; |
| 106 | 106 | ||
| 107 | let f_body = f.block; | 107 | let f_body = f.block; |
| 108 | let out = &f.sig.output; | ||
| 108 | 109 | ||
| 109 | let result = quote! { | 110 | let result = quote! { |
| 110 | #[::embassy_executor::task()] | 111 | #[::embassy_executor::task()] |
| 111 | async fn __embassy_main(#fargs) { | 112 | async fn __embassy_main(#fargs) #out { |
| 112 | #f_body | 113 | #f_body |
| 113 | } | 114 | } |
| 114 | 115 | ||
