error[E0308]: mismatched types --> $DIR/issue-13853.rs:24:9 | LL | fn nodes<'a, I: Iterator>(&self) -> I | - expected `I` because of return type ... LL | self.iter() //~ ERROR mismatched types | ^^^^^^^^^^^ expected type parameter, found struct `std::slice::Iter` | = note: expected type `I` found type `std::slice::Iter<'_, N>` error[E0599]: no method named `iter` found for type `&G` in the current scope --> $DIR/issue-13853.rs:37:23 | LL | for node in graph.iter() { //~ ERROR no method named `iter` found | ^^^^ error[E0308]: mismatched types --> $DIR/issue-13853.rs:47:13 | LL | iterate(graph); //~ ERROR mismatched types | ^^^^^ | | | expected reference, found struct `std::vec::Vec` | help: consider borrowing here: `&graph` | = note: expected type `&_` found type `std::vec::Vec` error: aborting due to 3 previous errors Some errors occurred: E0308, E0599. For more information about an error, try `rustc --explain E0308`.