mirror of
https://github.com/tokio-rs/tokio.git
synced 2025-09-25 12:00:35 +00:00

When using #[tokio::main] on a function with generics, the generics are skipped. Simply using #vis #sig instead of #vis fn #name(#inputs) #ret fixes the problem. Fixes #2176
32 lines
532 B
Rust
32 lines
532 B
Rust
#![cfg(feature = "macros")]
|
|
|
|
#[tokio::main]
|
|
async fn basic_main() -> usize {
|
|
1
|
|
}
|
|
|
|
#[tokio::main]
|
|
async fn generic_fun<T: Default>() -> T {
|
|
T::default()
|
|
}
|
|
|
|
#[cfg(feature = "rt-core")]
|
|
mod spawn {
|
|
#[tokio::main]
|
|
async fn spawning() -> usize {
|
|
let join = tokio::spawn(async { 1 });
|
|
join.await.unwrap()
|
|
}
|
|
|
|
#[test]
|
|
fn main_with_spawn() {
|
|
assert_eq!(1, spawning());
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn shell() {
|
|
assert_eq!(1, basic_main());
|
|
assert_eq!(bool::default(), generic_fun::<bool>())
|
|
}
|