// check-pass #![allow(dead_code)] trait MatrixRow { fn dummy(&self) { }} struct Mat; impl<'a> MatrixRow for &'a Mat {} struct Rows<M: MatrixRow> { mat: M, } impl<'a> Iterator for Rows<&'a Mat> { type Item = (); fn next(&mut self) -> Option<()> { unimplemented!() } } fn main() {}