mirror of
https://github.com/tokio-rs/tokio.git
synced 2026-08-17 00:00:11 +02:00
macros: silence unreachable_code warning in select! (#2678)
Solves #2665 by adding #[allow(unreachable_code)] inside a branch matching arm. Co-authored-by: Alice Ryhl <[email protected]>
This commit is contained in:
co-authored by
Alice Ryhl
parent
ff6130da65
commit
027351dd3a
@@ -366,6 +366,7 @@ macro_rules! select {
|
||||
}
|
||||
match branch {
|
||||
$(
|
||||
#[allow(unreachable_code)]
|
||||
$crate::count!( $($skip)* ) => {
|
||||
// First, if the future has previously been
|
||||
// disabled, do not poll it again. This is done
|
||||
|
||||
@@ -440,9 +440,25 @@ async fn many_branches() {
|
||||
assert_eq!(1, num);
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn never_branch_no_warnings() {
|
||||
let t = tokio::select! {
|
||||
_ = async_never() => 0,
|
||||
one_async_ready = one() => one_async_ready,
|
||||
};
|
||||
assert_eq!(t, 1);
|
||||
}
|
||||
|
||||
async fn one() -> usize {
|
||||
1
|
||||
}
|
||||
|
||||
async fn require_mutable(_: &mut i32) {}
|
||||
async fn async_noop() {}
|
||||
|
||||
async fn async_never() -> ! {
|
||||
use tokio::time::Duration;
|
||||
loop {
|
||||
tokio::time::delay_for(Duration::from_millis(10)).await;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user