diff --git a/quinn-proto/src/connection/streams/recv.rs b/quinn-proto/src/connection/streams/recv.rs index d3c0a2e27..0ca830094 100644 --- a/quinn-proto/src/connection/streams/recv.rs +++ b/quinn-proto/src/connection/streams/recv.rs @@ -246,8 +246,8 @@ impl<'a> Chunks<'a> { self.state = ChunksState::Error(e.clone(), st); return Err(e); } - ChunksState::Finished(st) => { - self.state = ChunksState::Finished(st); + ChunksState::Finished => { + self.state = ChunksState::Finished; return Ok(None); } ChunksState::Finalized => panic!("must not call next() after finalize()"), @@ -284,7 +284,7 @@ impl<'a> Chunks<'a> { ShouldTransmit(false), max_streams_dirty, ); - self.state = ChunksState::Finished(ShouldTransmit(true)); + self.state = ChunksState::Finished; Ok(None) } else { let should_transmit = @@ -312,7 +312,11 @@ impl<'a> Chunks<'a> { self.streams.recv.insert(self.id, rs); should_transmit } - ChunksState::Finished(should_transmit) | ChunksState::Error(_, should_transmit) => { + ChunksState::Finished => { + debug_assert!(!drop); + ShouldTransmit(true) + } + ChunksState::Error(_, should_transmit) => { debug_assert!(!drop); should_transmit } @@ -343,7 +347,7 @@ impl<'a> Drop for Chunks<'a> { enum ChunksState { Readable(Recv), Error(ReadError, ShouldTransmit), - Finished(ShouldTransmit), + Finished, Finalized, }