rust/tests/ui/mir/mir-inlining/ice-issue-77306-2.rs

33 lines
682 B
Rust

//@ run-pass
//@ compile-flags:-Zmir-opt-level=3
struct Cursor {}
struct TokenTree {}
impl Iterator for Cursor {
type Item = TokenTree;
fn next(&mut self) -> Option<TokenTree> {
None
}
}
fn tokenstream_probably_equal_for_proc_macro() {
fn break_tokens(_tree: TokenTree) -> impl Iterator<Item = TokenTree> {
let token_trees: Vec<TokenTree> = vec![];
token_trees.into_iter()
}
let c1 = Cursor {};
let c2 = Cursor {};
let mut t1 = c1.flat_map(break_tokens);
let mut t2 = c2.flat_map(break_tokens);
for (_t1, _t2) in t1.by_ref().zip(t2.by_ref()) {}
}
fn main() {
tokenstream_probably_equal_for_proc_macro();
}