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