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:
Blas Rodriguez Irizar
2020-07-28 13:10:07 -07:00
committed by GitHub
co-authored by Alice Ryhl
parent ff6130da65
commit 027351dd3a
2 changed files with 17 additions and 0 deletions
+1
View File
@@ -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
+16
View File
@@ -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;
}
}