// Regression test for issue #74918 // Tests that we don't ICE after emitting an error struct ChunkingIterator> { source: S, } impl> Iterator for ChunkingIterator { type Item = IteratorChunk; //~ ERROR missing lifetime fn next(&mut self) -> Option> { //~^ ERROR `impl` item signature doesn't match `trait` item signature todo!() } } struct IteratorChunk<'a, T, S: Iterator> { source: &'a mut S, } impl> Iterator for IteratorChunk<'_, T, S> { type Item = T; fn next(&mut self) -> Option { todo!() } } fn main() {}