about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/test/ui/mir/mir-inlining/ice-issue-77306-1.rs (renamed from src/test/ui/mir/mir-inlining/ice-issue-77306.rs)0
-rw-r--r--src/test/ui/mir/mir-inlining/ice-issue-77306-2.rs32
2 files changed, 32 insertions, 0 deletions
diff --git a/src/test/ui/mir/mir-inlining/ice-issue-77306.rs b/src/test/ui/mir/mir-inlining/ice-issue-77306-1.rs
index 4d083bf2321..4d083bf2321 100644
--- a/src/test/ui/mir/mir-inlining/ice-issue-77306.rs
+++ b/src/test/ui/mir/mir-inlining/ice-issue-77306-1.rs
diff --git a/src/test/ui/mir/mir-inlining/ice-issue-77306-2.rs b/src/test/ui/mir/mir-inlining/ice-issue-77306-2.rs
new file mode 100644
index 00000000000..a346d450586
--- /dev/null
+++ b/src/test/ui/mir/mir-inlining/ice-issue-77306-2.rs
@@ -0,0 +1,32 @@
+// run-pass
+// compile-flags:-Zmir-opt-level=2
+
+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();
+}