mirror of
https://github.com/tokio-rs/tokio.git
synced 2026-09-03 00:00:05 +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 {
|
match branch {
|
||||||
$(
|
$(
|
||||||
|
#[allow(unreachable_code)]
|
||||||
$crate::count!( $($skip)* ) => {
|
$crate::count!( $($skip)* ) => {
|
||||||
// First, if the future has previously been
|
// First, if the future has previously been
|
||||||
// disabled, do not poll it again. This is done
|
// disabled, do not poll it again. This is done
|
||||||
|
|||||||
@@ -440,9 +440,25 @@ async fn many_branches() {
|
|||||||
assert_eq!(1, num);
|
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 {
|
async fn one() -> usize {
|
||||||
1
|
1
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn require_mutable(_: &mut i32) {}
|
async fn require_mutable(_: &mut i32) {}
|
||||||
async fn async_noop() {}
|
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