Skip to content

Commit 1c1e62e

Browse files
committed
refactor(test_runner): use #![feature(let_else)]
1 parent 6ac382c commit 1c1e62e

File tree

2 files changed

+14
-27
lines changed

2 files changed

+14
-27
lines changed

src/r3_test_runner/src/main.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#![feature(exhaustive_patterns)]
22
#![feature(must_not_suspend)] // `must_not_suspend` lint
33
#![feature(decl_macro)] // `macro`
4+
#![feature(let_else)] // `let ... = ... else { ... }`
45
#![warn(must_not_suspend)]
56
use anyhow::Context;
67
use clap::Parser;

src/r3_test_runner/src/targets/probe_rs.rs

Lines changed: 13 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -353,16 +353,12 @@ impl AsyncBufRead for ReadRtt {
353353

354354
loop {
355355
match &mut this.st {
356-
ReadRttSt::Idle { pos, len, .. } => {
357-
if *pos == *len {
356+
&mut ReadRttSt::Idle { pos, len, .. } => {
357+
if pos == len {
358358
// Buffer is empty; start reading RTT channels
359-
let (mut buf, mut rtt, mut session) =
360-
match replace(&mut this.st, ReadRttSt::Invalid) {
361-
ReadRttSt::Idle {
362-
buf, rtt, session, ..
363-
} => (buf, rtt, session),
364-
_ => unreachable!(),
365-
};
359+
let ReadRttSt::Idle { mut buf, mut rtt, mut session, .. } =
360+
replace(&mut this.st, ReadRttSt::Invalid)
361+
else { unreachable!() };
366362

367363
let halt_on_access = this.options.halt_on_access;
368364

@@ -386,11 +382,8 @@ impl AsyncBufRead for ReadRtt {
386382
//
387383
// Borrow `this.st` again, this time using the full
388384
// lifetime of `self`.
389-
if let ReadRttSt::Idle { buf, pos, len, .. } = &this.st {
390-
return Poll::Ready(Ok(&buf[..*len][*pos..]));
391-
} else {
392-
unreachable!()
393-
}
385+
let ReadRttSt::Idle { buf, .. } = &this.st else { unreachable!() };
386+
return Poll::Ready(Ok(&buf[..len][pos..]));
394387
}
395388
}
396389

@@ -423,12 +416,9 @@ impl AsyncBufRead for ReadRtt {
423416
ReadRttSt::PollDelay { delay, .. } => {
424417
ready!(delay.as_mut().poll(cx));
425418

426-
let (buf, rtt, session) = match replace(&mut this.st, ReadRttSt::Invalid) {
427-
ReadRttSt::PollDelay {
428-
buf, rtt, session, ..
429-
} => (buf, rtt, session),
430-
_ => unreachable!(),
431-
};
419+
let ReadRttSt::PollDelay { buf, rtt, session, .. } =
420+
replace(&mut this.st, ReadRttSt::Invalid)
421+
else { unreachable!() };
432422

433423
this.st = ReadRttSt::Idle {
434424
buf,
@@ -445,13 +435,9 @@ impl AsyncBufRead for ReadRtt {
445435
}
446436

447437
fn consume(mut self: Pin<&mut Self>, amt: usize) {
448-
match &mut self.st {
449-
ReadRttSt::Idle { pos, len, .. } => {
450-
*pos += amt;
451-
assert!(*pos <= *len);
452-
}
453-
_ => unreachable!(),
454-
}
438+
let ReadRttSt::Idle { pos, len, .. } = &mut self.st else { unreachable!() };
439+
*pos += amt;
440+
assert!(*pos <= *len);
455441
}
456442
}
457443

0 commit comments

Comments
 (0)