Mark unreachable match clause as unreachable! (#620)

* Mark unreachable match clause as unreachable!

* Fix indentation
This commit is contained in:
Wei Tang
2019-11-27 18:03:45 +01:00
committed by Bastian Köcher
parent 311d2a271d
commit c7743cd86b
+10 -7
View File
@@ -835,7 +835,13 @@ impl<C, TxApi> futures03::Future for CreateProposal<C, TxApi> where
data
},
CreateProposalState::Switching => return Poll::Pending,
CreateProposalState::Switching =>
unreachable!(
"State Switching are only created on call, \
and immediately swapped out; \
the data being read is from state; \
thus Switching will never be reachable here; qed"
),
CreateProposalState::Fired(mut future) => {
let ret = Pin::new(&mut future).poll(cx);
self.state = CreateProposalState::Fired(future);
@@ -844,17 +850,14 @@ impl<C, TxApi> futures03::Future for CreateProposal<C, TxApi> where
};
// 2. propose
let future = tokio_executor::blocking::run(move || {
let mut future = tokio_executor::blocking::run(move || {
let proposed_candidates = data.table.proposed_set();
data.propose_with(proposed_candidates)
});
let polled = Pin::new(&mut future).poll(cx);
self.state = CreateProposalState::Fired(future);
match &mut self.state {
CreateProposalState::Fired(future) => Pin::new(future).poll(cx),
CreateProposalState::Switching | CreateProposalState::Pending(_) =>
Poll::Pending,
}
polled
}
}