Adjust spans into the for loops context before creating the pattern and into_iter call spans.

This commit is contained in:
Jason Newcomb 2025-11-03 14:21:35 -05:00
parent a7b3715826
commit 76067c446c
21 changed files with 267 additions and 171 deletions

View file

@ -1771,8 +1771,14 @@ impl<'hir> LoweringContext<'_, 'hir> {
let pat = self.lower_pat(pat);
let for_span =
self.mark_span_with_reason(DesugaringKind::ForLoop, self.lower_span(e.span), None);
let head_span = self.mark_span_with_reason(DesugaringKind::ForLoop, head.span, None);
let pat_span = self.mark_span_with_reason(DesugaringKind::ForLoop, pat.span, None);
let for_ctxt = for_span.ctxt();
// Try to point both the head and pat spans to their position in the for loop
// rather than inside a macro.
let head_span =
head.span.find_ancestor_in_same_ctxt(e.span).unwrap_or(head.span).with_ctxt(for_ctxt);
let pat_span =
pat.span.find_ancestor_in_same_ctxt(e.span).unwrap_or(pat.span).with_ctxt(for_ctxt);
let loop_hir_id = self.lower_node_id(e.id);
let label = self.lower_label(opt_label, e.id, loop_hir_id);

View file

@ -1,5 +1,5 @@
Function name: async_block::main
Raw bytes (41): 0x[01, 01, 01, 05, 01, 07, 01, 07, 01, 00, 0a, 02, 01, 09, 00, 0a, 05, 00, 0e, 00, 13, 02, 01, 0d, 00, 13, 02, 07, 09, 00, 1b, 02, 00, 1c, 00, 22, 01, 02, 01, 00, 02]
Raw bytes (41): 0x[01, 01, 01, 05, 01, 07, 01, 07, 01, 00, 0a, 02, 01, 09, 00, 0a, 01, 00, 0e, 00, 13, 02, 01, 0d, 00, 13, 02, 07, 09, 00, 1b, 02, 00, 1c, 00, 22, 01, 02, 01, 00, 02]
Number of files: 1
- file 0 => $DIR/async_block.rs
Number of expressions: 1
@ -8,7 +8,7 @@ Number of file 0 mappings: 7
- Code(Counter(0)) at (prev + 7, 1) to (start + 0, 10)
- Code(Expression(0, Sub)) at (prev + 1, 9) to (start + 0, 10)
= (c1 - c0)
- Code(Counter(1)) at (prev + 0, 14) to (start + 0, 19)
- Code(Counter(0)) at (prev + 0, 14) to (start + 0, 19)
- Code(Expression(0, Sub)) at (prev + 1, 13) to (start + 0, 19)
= (c1 - c0)
- Code(Expression(0, Sub)) at (prev + 7, 9) to (start + 0, 27)
@ -16,7 +16,7 @@ Number of file 0 mappings: 7
- Code(Expression(0, Sub)) at (prev + 0, 28) to (start + 0, 34)
= (c1 - c0)
- Code(Counter(0)) at (prev + 2, 1) to (start + 0, 2)
Highest counter ID seen: c1
Highest counter ID seen: c0
Function name: async_block::main::{closure#0}
Raw bytes (31): 0x[01, 01, 01, 01, 05, 05, 01, 09, 1c, 00, 1d, 01, 01, 10, 00, 17, 05, 00, 18, 02, 0e, 02, 02, 14, 02, 0e, 01, 03, 09, 00, 0a]

View file

@ -5,8 +5,8 @@
LL| |extern crate executor;
LL| |
LL| 1|fn main() {
LL| 17| for i in 0..16 {
^16
LL| 16| for i in 0..16 {
^1
LL| 16| let future = async {
LL| 16| if i >= 12 {
LL| 4| println!("big");

View file

@ -1,5 +1,5 @@
Function name: continue::main
Raw bytes (241): 0x[01, 01, 1a, 05, 01, 05, 13, 01, 09, 05, 13, 01, 09, 0d, 01, 0d, 27, 01, 11, 0d, 27, 01, 11, 15, 01, 15, 33, 01, 19, 1d, 01, 1d, 47, 01, 21, 1d, 47, 01, 21, 25, 01, 25, 53, 01, 29, 25, 01, 2d, 01, 63, 2d, 01, 31, 2d, 01, 25, 01, 03, 01, 00, 0a, 01, 01, 09, 00, 10, 01, 00, 13, 00, 2e, 01, 02, 09, 00, 0e, 01, 00, 11, 00, 12, 05, 01, 0e, 00, 13, 02, 01, 0f, 00, 16, 09, 02, 11, 00, 19, 0e, 02, 12, 02, 0e, 0e, 04, 09, 00, 0e, 0d, 02, 0e, 00, 13, 16, 01, 0f, 00, 16, 22, 01, 16, 02, 0e, 11, 04, 11, 00, 19, 22, 03, 09, 00, 0e, 15, 02, 0e, 00, 13, 2a, 01, 0f, 00, 16, 19, 01, 15, 02, 0e, 2e, 04, 11, 00, 19, 19, 03, 09, 00, 0e, 1d, 02, 0e, 00, 13, 36, 01, 0c, 00, 13, 21, 01, 0d, 00, 15, 42, 01, 09, 00, 0a, 42, 01, 09, 00, 0e, 25, 02, 0e, 00, 13, 56, 01, 0f, 00, 16, 4e, 01, 16, 02, 0e, 29, 03, 12, 02, 0e, 56, 04, 09, 00, 0e, 2d, 02, 0e, 00, 13, 31, 01, 0f, 00, 16, 66, 01, 16, 02, 0e, 5e, 04, 11, 00, 16, 66, 03, 09, 00, 0e, 01, 02, 0d, 00, 0e, 01, 01, 01, 00, 02]
Raw bytes (241): 0x[01, 01, 1a, 05, 01, 05, 13, 01, 09, 05, 13, 01, 09, 0d, 01, 0d, 27, 01, 11, 0d, 27, 01, 11, 15, 01, 15, 33, 01, 19, 1d, 01, 1d, 47, 01, 21, 1d, 47, 01, 21, 25, 01, 25, 53, 01, 29, 25, 01, 31, 01, 63, 31, 01, 2d, 31, 01, 25, 01, 03, 01, 00, 0a, 01, 01, 09, 00, 10, 01, 00, 13, 00, 2e, 01, 02, 09, 00, 0e, 01, 00, 11, 00, 12, 01, 01, 0e, 00, 13, 02, 01, 0f, 00, 16, 09, 02, 11, 00, 19, 0e, 02, 12, 02, 0e, 0e, 04, 09, 00, 0e, 01, 02, 0e, 00, 13, 16, 01, 0f, 00, 16, 22, 01, 16, 02, 0e, 11, 04, 11, 00, 19, 22, 03, 09, 00, 0e, 01, 02, 0e, 00, 13, 2a, 01, 0f, 00, 16, 19, 01, 15, 02, 0e, 2e, 04, 11, 00, 19, 19, 03, 09, 00, 0e, 01, 02, 0e, 00, 13, 36, 01, 0c, 00, 13, 21, 01, 0d, 00, 15, 42, 01, 09, 00, 0a, 42, 01, 09, 00, 0e, 01, 02, 0e, 00, 13, 56, 01, 0f, 00, 16, 4e, 01, 16, 02, 0e, 29, 03, 12, 02, 0e, 56, 04, 09, 00, 0e, 01, 02, 0e, 00, 13, 2d, 01, 0f, 00, 16, 66, 01, 16, 02, 0e, 5e, 04, 11, 00, 16, 66, 03, 09, 00, 0e, 01, 02, 0d, 00, 0e, 01, 01, 01, 00, 02]
Number of files: 1
- file 0 => $DIR/continue.rs
Number of expressions: 26
@ -25,17 +25,17 @@ Number of expressions: 26
- expression 19 operands: lhs = Counter(9), rhs = Expression(20, Add)
- expression 20 operands: lhs = Counter(0), rhs = Counter(10)
- expression 21 operands: lhs = Counter(9), rhs = Counter(0)
- expression 22 operands: lhs = Counter(11), rhs = Counter(0)
- expression 23 operands: lhs = Expression(24, Add), rhs = Counter(11)
- expression 24 operands: lhs = Counter(0), rhs = Counter(12)
- expression 25 operands: lhs = Counter(11), rhs = Counter(0)
- expression 22 operands: lhs = Counter(12), rhs = Counter(0)
- expression 23 operands: lhs = Expression(24, Add), rhs = Counter(12)
- expression 24 operands: lhs = Counter(0), rhs = Counter(11)
- expression 25 operands: lhs = Counter(12), rhs = Counter(0)
Number of file 0 mappings: 37
- Code(Counter(0)) at (prev + 3, 1) to (start + 0, 10)
- Code(Counter(0)) at (prev + 1, 9) to (start + 0, 16)
- Code(Counter(0)) at (prev + 0, 19) to (start + 0, 46)
- Code(Counter(0)) at (prev + 2, 9) to (start + 0, 14)
- Code(Counter(0)) at (prev + 0, 17) to (start + 0, 18)
- Code(Counter(1)) at (prev + 1, 14) to (start + 0, 19)
- Code(Counter(0)) at (prev + 1, 14) to (start + 0, 19)
- Code(Expression(0, Sub)) at (prev + 1, 15) to (start + 0, 22)
= (c1 - c0)
- Code(Counter(2)) at (prev + 2, 17) to (start + 0, 25)
@ -43,7 +43,7 @@ Number of file 0 mappings: 37
= (c1 - (c0 + c2))
- Code(Expression(3, Sub)) at (prev + 4, 9) to (start + 0, 14)
= (c1 - (c0 + c2))
- Code(Counter(3)) at (prev + 2, 14) to (start + 0, 19)
- Code(Counter(0)) at (prev + 2, 14) to (start + 0, 19)
- Code(Expression(5, Sub)) at (prev + 1, 15) to (start + 0, 22)
= (c3 - c0)
- Code(Expression(8, Sub)) at (prev + 1, 22) to (start + 2, 14)
@ -51,14 +51,14 @@ Number of file 0 mappings: 37
- Code(Counter(4)) at (prev + 4, 17) to (start + 0, 25)
- Code(Expression(8, Sub)) at (prev + 3, 9) to (start + 0, 14)
= (c3 - (c0 + c4))
- Code(Counter(5)) at (prev + 2, 14) to (start + 0, 19)
- Code(Counter(0)) at (prev + 2, 14) to (start + 0, 19)
- Code(Expression(10, Sub)) at (prev + 1, 15) to (start + 0, 22)
= (c5 - c0)
- Code(Counter(6)) at (prev + 1, 21) to (start + 2, 14)
- Code(Expression(11, Sub)) at (prev + 4, 17) to (start + 0, 25)
= (c5 - (c0 + c6))
- Code(Counter(6)) at (prev + 3, 9) to (start + 0, 14)
- Code(Counter(7)) at (prev + 2, 14) to (start + 0, 19)
- Code(Counter(0)) at (prev + 2, 14) to (start + 0, 19)
- Code(Expression(13, Sub)) at (prev + 1, 12) to (start + 0, 19)
= (c7 - c0)
- Code(Counter(8)) at (prev + 1, 13) to (start + 0, 21)
@ -66,7 +66,7 @@ Number of file 0 mappings: 37
= (c7 - (c0 + c8))
- Code(Expression(16, Sub)) at (prev + 1, 9) to (start + 0, 14)
= (c7 - (c0 + c8))
- Code(Counter(9)) at (prev + 2, 14) to (start + 0, 19)
- Code(Counter(0)) at (prev + 2, 14) to (start + 0, 19)
- Code(Expression(21, Sub)) at (prev + 1, 15) to (start + 0, 22)
= (c9 - c0)
- Code(Expression(19, Sub)) at (prev + 1, 22) to (start + 2, 14)
@ -74,15 +74,15 @@ Number of file 0 mappings: 37
- Code(Counter(10)) at (prev + 3, 18) to (start + 2, 14)
- Code(Expression(21, Sub)) at (prev + 4, 9) to (start + 0, 14)
= (c9 - c0)
- Code(Counter(11)) at (prev + 2, 14) to (start + 0, 19)
- Code(Counter(12)) at (prev + 1, 15) to (start + 0, 22)
- Code(Counter(0)) at (prev + 2, 14) to (start + 0, 19)
- Code(Counter(11)) at (prev + 1, 15) to (start + 0, 22)
- Code(Expression(25, Sub)) at (prev + 1, 22) to (start + 2, 14)
= (c11 - c0)
= (c12 - c0)
- Code(Expression(23, Sub)) at (prev + 4, 17) to (start + 0, 22)
= ((c0 + c12) - c11)
= ((c0 + c11) - c12)
- Code(Expression(25, Sub)) at (prev + 3, 9) to (start + 0, 14)
= (c11 - c0)
= (c12 - c0)
- Code(Counter(0)) at (prev + 2, 13) to (start + 0, 14)
- Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
Highest counter ID seen: c12
Highest counter ID seen: c11

View file

@ -4,7 +4,7 @@
LL| 1| let is_true = std::env::args().len() == 1;
LL| |
LL| 1| let mut x = 0;
LL| 11| for _ in 0..10 {
LL| 1| for _ in 0..10 {
LL| 10| match is_true {
LL| | true => {
LL| 10| continue;
@ -15,7 +15,7 @@
LL| | }
LL| 0| x = 3;
LL| | }
LL| 11| for _ in 0..10 {
LL| 1| for _ in 0..10 {
LL| 10| match is_true {
LL| 0| false => {
LL| 0| x = 1;
@ -26,7 +26,7 @@
LL| | }
LL| 0| x = 3;
LL| | }
LL| 11| for _ in 0..10 {
LL| 1| for _ in 0..10 {
LL| 10| match is_true {
LL| 10| true => {
LL| 10| x = 1;
@ -37,13 +37,13 @@
LL| | }
LL| 10| x = 3;
LL| | }
LL| 11| for _ in 0..10 {
LL| 1| for _ in 0..10 {
LL| 10| if is_true {
LL| 10| continue;
LL| 0| }
LL| 0| x = 3;
LL| | }
LL| 11| for _ in 0..10 {
LL| 1| for _ in 0..10 {
LL| 10| match is_true {
LL| 0| false => {
LL| 0| x = 1;

View file

@ -1,5 +1,5 @@
Function name: inline::display::<char>
Raw bytes (36): 0x[01, 01, 01, 05, 01, 06, 01, 29, 01, 00, 21, 02, 01, 09, 00, 0a, 05, 00, 0e, 00, 10, 02, 00, 11, 02, 06, 01, 03, 05, 00, 0d, 01, 01, 01, 00, 02]
Raw bytes (36): 0x[01, 01, 01, 05, 01, 06, 01, 29, 01, 00, 21, 02, 01, 09, 00, 0a, 01, 00, 0e, 00, 10, 02, 00, 11, 02, 06, 01, 03, 05, 00, 0d, 01, 01, 01, 00, 02]
Number of files: 1
- file 0 => $DIR/inline.rs
Number of expressions: 1
@ -8,12 +8,12 @@ Number of file 0 mappings: 6
- Code(Counter(0)) at (prev + 41, 1) to (start + 0, 33)
- Code(Expression(0, Sub)) at (prev + 1, 9) to (start + 0, 10)
= (c1 - c0)
- Code(Counter(1)) at (prev + 0, 14) to (start + 0, 16)
- Code(Counter(0)) at (prev + 0, 14) to (start + 0, 16)
- Code(Expression(0, Sub)) at (prev + 0, 17) to (start + 2, 6)
= (c1 - c0)
- Code(Counter(0)) at (prev + 3, 5) to (start + 0, 13)
- Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
Highest counter ID seen: c1
Highest counter ID seen: c0
Function name: inline::error
Raw bytes (14): 0x[01, 01, 00, 02, 01, 31, 01, 00, 0b, 01, 01, 05, 00, 0b]
@ -50,7 +50,7 @@ Number of file 0 mappings: 4
Highest counter ID seen: c0
Function name: inline::permutate::<char>
Raw bytes (142): 0x[01, 01, 0e, 01, 05, 0d, 09, 0d, 09, 0d, 09, 0d, 09, 0d, 09, 0d, 09, 0d, 09, 0d, 09, 0d, 09, 0d, 09, 0d, 09, 01, 37, 05, 09, 16, 01, 0f, 01, 00, 38, 01, 01, 09, 00, 0a, 01, 00, 0d, 00, 13, 01, 00, 14, 00, 16, 01, 01, 08, 00, 0e, 05, 00, 0f, 02, 06, 02, 02, 0f, 00, 14, 2e, 01, 0d, 00, 0e, 09, 00, 12, 00, 13, 09, 00, 15, 00, 16, 2e, 00, 17, 04, 0a, 2e, 01, 0d, 00, 11, 2e, 00, 12, 00, 14, 2e, 00, 16, 00, 17, 2e, 00, 19, 00, 1a, 2e, 01, 0d, 00, 16, 2e, 00, 17, 00, 19, 2e, 00, 1b, 00, 20, 2e, 01, 0d, 00, 11, 2e, 00, 12, 00, 14, 32, 02, 0c, 02, 06, 01, 03, 01, 00, 02]
Raw bytes (137): 0x[01, 01, 0e, 01, 05, 0d, 09, 0d, 09, 0d, 09, 0d, 09, 0d, 09, 0d, 09, 0d, 09, 0d, 09, 0d, 09, 0d, 09, 0d, 09, 01, 37, 05, 09, 15, 01, 0f, 01, 00, 38, 01, 01, 09, 00, 0a, 01, 00, 0d, 00, 13, 01, 00, 14, 00, 16, 01, 01, 08, 00, 0e, 05, 00, 0f, 02, 06, 02, 02, 0f, 00, 14, 2e, 01, 0d, 00, 0e, 09, 00, 12, 00, 16, 2e, 00, 17, 04, 0a, 2e, 01, 0d, 00, 11, 2e, 00, 12, 00, 14, 2e, 00, 16, 00, 17, 2e, 00, 19, 00, 1a, 2e, 01, 0d, 00, 16, 2e, 00, 17, 00, 19, 2e, 00, 1b, 00, 20, 2e, 01, 0d, 00, 11, 2e, 00, 12, 00, 14, 32, 02, 0c, 02, 06, 01, 03, 01, 00, 02]
Number of files: 1
- file 0 => $DIR/inline.rs
Number of expressions: 14
@ -68,7 +68,7 @@ Number of expressions: 14
- expression 11 operands: lhs = Counter(3), rhs = Counter(2)
- expression 12 operands: lhs = Counter(0), rhs = Expression(13, Add)
- expression 13 operands: lhs = Counter(1), rhs = Counter(2)
Number of file 0 mappings: 22
Number of file 0 mappings: 21
- Code(Counter(0)) at (prev + 15, 1) to (start + 0, 56)
- Code(Counter(0)) at (prev + 1, 9) to (start + 0, 10)
- Code(Counter(0)) at (prev + 0, 13) to (start + 0, 19)
@ -79,8 +79,7 @@ Number of file 0 mappings: 22
= (c0 - c1)
- Code(Expression(11, Sub)) at (prev + 1, 13) to (start + 0, 14)
= (c3 - c2)
- Code(Counter(2)) at (prev + 0, 18) to (start + 0, 19)
- Code(Counter(2)) at (prev + 0, 21) to (start + 0, 22)
- Code(Counter(2)) at (prev + 0, 18) to (start + 0, 22)
- Code(Expression(11, Sub)) at (prev + 0, 23) to (start + 4, 10)
= (c3 - c2)
- Code(Expression(11, Sub)) at (prev + 1, 13) to (start + 0, 17)

View file

@ -18,7 +18,7 @@
LL| 6| display(xs);
LL| 10| } else if k < n {
LL| 15| for i in k..n {
^10^10
^10
LL| 15| swap(xs, i, k);
LL| 15| permutate(xs, k + 1);
LL| 15| swap(xs, i, k);
@ -40,8 +40,8 @@
LL| 30|}
LL| |
LL| 6|fn display<T: Display>(xs: &[T]) {
LL| 24| for x in xs {
^18
LL| 18| for x in xs {
^6
LL| 18| print!("{}", x);
LL| 18| }
LL| 6| println!();

View file

@ -1,12 +1,13 @@
Function name: <loops_branches::DebugTest as core::fmt::Debug>::fmt
Raw bytes (137): 0x[01, 01, 04, 07, 0b, 01, 0d, 05, 09, 09, 0d, 19, 01, 09, 05, 00, 43, 01, 01, 0c, 00, 10, 01, 01, 10, 00, 15, 00, 01, 17, 00, 1b, 00, 00, 1c, 00, 1e, 01, 01, 0d, 00, 0e, 01, 01, 0d, 00, 13, 01, 00, 14, 00, 15, 01, 00, 17, 00, 1d, 05, 00, 1e, 00, 1f, 00, 01, 10, 01, 0a, 0d, 03, 0d, 00, 0e, 09, 00, 12, 00, 17, 0d, 01, 10, 00, 14, 0d, 01, 14, 00, 19, 00, 01, 1b, 00, 1f, 00, 00, 20, 00, 22, 0d, 01, 11, 00, 12, 0d, 01, 11, 00, 17, 0d, 00, 18, 00, 19, 0d, 00, 1b, 00, 21, 02, 00, 22, 00, 23, 00, 01, 14, 01, 0e, 0e, 03, 09, 00, 0f, 01, 01, 05, 00, 06]
Raw bytes (139): 0x[01, 01, 05, 01, 05, 0b, 0f, 01, 09, 05, 0d, 0d, 09, 19, 01, 09, 05, 00, 43, 01, 01, 0c, 00, 10, 01, 01, 10, 00, 15, 00, 01, 17, 00, 1b, 00, 00, 1c, 00, 1e, 01, 01, 0d, 00, 0e, 01, 01, 0d, 00, 13, 01, 00, 14, 00, 15, 01, 00, 17, 00, 1d, 05, 00, 1e, 00, 1f, 00, 01, 10, 01, 0a, 09, 03, 0d, 00, 0e, 02, 00, 12, 00, 17, 09, 01, 10, 00, 14, 09, 01, 14, 00, 19, 00, 01, 1b, 00, 1f, 00, 00, 20, 00, 22, 09, 01, 11, 00, 12, 09, 01, 11, 00, 17, 09, 00, 18, 00, 19, 09, 00, 1b, 00, 21, 06, 00, 22, 00, 23, 00, 01, 14, 01, 0e, 12, 03, 09, 00, 0f, 01, 01, 05, 00, 06]
Number of files: 1
- file 0 => $DIR/loops_branches.rs
Number of expressions: 4
- expression 0 operands: lhs = Expression(1, Add), rhs = Expression(2, Add)
- expression 1 operands: lhs = Counter(0), rhs = Counter(3)
- expression 2 operands: lhs = Counter(1), rhs = Counter(2)
- expression 3 operands: lhs = Counter(2), rhs = Counter(3)
Number of expressions: 5
- expression 0 operands: lhs = Counter(0), rhs = Counter(1)
- expression 1 operands: lhs = Expression(2, Add), rhs = Expression(3, Add)
- expression 2 operands: lhs = Counter(0), rhs = Counter(2)
- expression 3 operands: lhs = Counter(1), rhs = Counter(3)
- expression 4 operands: lhs = Counter(3), rhs = Counter(2)
Number of file 0 mappings: 25
- Code(Counter(0)) at (prev + 9, 5) to (start + 0, 67)
- Code(Counter(0)) at (prev + 1, 12) to (start + 0, 16)
@ -19,33 +20,35 @@ Number of file 0 mappings: 25
- Code(Counter(0)) at (prev + 0, 23) to (start + 0, 29)
- Code(Counter(1)) at (prev + 0, 30) to (start + 0, 31)
- Code(Zero) at (prev + 1, 16) to (start + 1, 10)
- Code(Counter(3)) at (prev + 3, 13) to (start + 0, 14)
- Code(Counter(2)) at (prev + 0, 18) to (start + 0, 23)
- Code(Counter(3)) at (prev + 1, 16) to (start + 0, 20)
- Code(Counter(3)) at (prev + 1, 20) to (start + 0, 25)
- Code(Counter(2)) at (prev + 3, 13) to (start + 0, 14)
- Code(Expression(0, Sub)) at (prev + 0, 18) to (start + 0, 23)
= (c0 - c1)
- Code(Counter(2)) at (prev + 1, 16) to (start + 0, 20)
- Code(Counter(2)) at (prev + 1, 20) to (start + 0, 25)
- Code(Zero) at (prev + 1, 27) to (start + 0, 31)
- Code(Zero) at (prev + 0, 32) to (start + 0, 34)
- Code(Counter(3)) at (prev + 1, 17) to (start + 0, 18)
- Code(Counter(3)) at (prev + 1, 17) to (start + 0, 23)
- Code(Counter(3)) at (prev + 0, 24) to (start + 0, 25)
- Code(Counter(3)) at (prev + 0, 27) to (start + 0, 33)
- Code(Expression(0, Sub)) at (prev + 0, 34) to (start + 0, 35)
= ((c0 + c3) - (c1 + c2))
- Code(Counter(2)) at (prev + 1, 17) to (start + 0, 18)
- Code(Counter(2)) at (prev + 1, 17) to (start + 0, 23)
- Code(Counter(2)) at (prev + 0, 24) to (start + 0, 25)
- Code(Counter(2)) at (prev + 0, 27) to (start + 0, 33)
- Code(Expression(1, Sub)) at (prev + 0, 34) to (start + 0, 35)
= ((c0 + c2) - (c1 + c3))
- Code(Zero) at (prev + 1, 20) to (start + 1, 14)
- Code(Expression(3, Sub)) at (prev + 3, 9) to (start + 0, 15)
= (c2 - c3)
- Code(Expression(4, Sub)) at (prev + 3, 9) to (start + 0, 15)
= (c3 - c2)
- Code(Counter(0)) at (prev + 1, 5) to (start + 0, 6)
Highest counter ID seen: c3
Highest counter ID seen: c2
Function name: <loops_branches::DisplayTest as core::fmt::Display>::fmt
Raw bytes (137): 0x[01, 01, 04, 07, 0b, 01, 09, 05, 0d, 05, 09, 19, 01, 22, 05, 00, 43, 01, 01, 0c, 00, 11, 00, 00, 12, 01, 0a, 01, 02, 10, 00, 15, 00, 01, 17, 00, 1b, 00, 00, 1c, 00, 1e, 01, 01, 0d, 00, 0e, 01, 01, 0d, 00, 13, 01, 00, 14, 00, 15, 01, 00, 17, 00, 1d, 0d, 00, 1e, 00, 1f, 09, 02, 0d, 00, 0e, 05, 00, 12, 00, 17, 09, 01, 10, 00, 15, 00, 00, 16, 01, 0e, 09, 02, 14, 00, 19, 00, 01, 1b, 00, 1f, 00, 00, 20, 00, 22, 09, 01, 11, 00, 12, 09, 01, 11, 00, 17, 09, 00, 18, 00, 19, 09, 00, 1b, 00, 21, 02, 00, 22, 00, 23, 0e, 03, 09, 00, 0f, 01, 01, 05, 00, 06]
Raw bytes (139): 0x[01, 01, 05, 01, 05, 0b, 0f, 01, 09, 0d, 05, 0d, 09, 19, 01, 22, 05, 00, 43, 01, 01, 0c, 00, 11, 00, 00, 12, 01, 0a, 01, 02, 10, 00, 15, 00, 01, 17, 00, 1b, 00, 00, 1c, 00, 1e, 01, 01, 0d, 00, 0e, 01, 01, 0d, 00, 13, 01, 00, 14, 00, 15, 01, 00, 17, 00, 1d, 05, 00, 1e, 00, 1f, 09, 02, 0d, 00, 0e, 02, 00, 12, 00, 17, 09, 01, 10, 00, 15, 00, 00, 16, 01, 0e, 09, 02, 14, 00, 19, 00, 01, 1b, 00, 1f, 00, 00, 20, 00, 22, 09, 01, 11, 00, 12, 09, 01, 11, 00, 17, 09, 00, 18, 00, 19, 09, 00, 1b, 00, 21, 06, 00, 22, 00, 23, 12, 03, 09, 00, 0f, 01, 01, 05, 00, 06]
Number of files: 1
- file 0 => $DIR/loops_branches.rs
Number of expressions: 4
- expression 0 operands: lhs = Expression(1, Add), rhs = Expression(2, Add)
- expression 1 operands: lhs = Counter(0), rhs = Counter(2)
- expression 2 operands: lhs = Counter(1), rhs = Counter(3)
- expression 3 operands: lhs = Counter(1), rhs = Counter(2)
Number of expressions: 5
- expression 0 operands: lhs = Counter(0), rhs = Counter(1)
- expression 1 operands: lhs = Expression(2, Add), rhs = Expression(3, Add)
- expression 2 operands: lhs = Counter(0), rhs = Counter(2)
- expression 3 operands: lhs = Counter(3), rhs = Counter(1)
- expression 4 operands: lhs = Counter(3), rhs = Counter(2)
Number of file 0 mappings: 25
- Code(Counter(0)) at (prev + 34, 5) to (start + 0, 67)
- Code(Counter(0)) at (prev + 1, 12) to (start + 0, 17)
@ -57,9 +60,10 @@ Number of file 0 mappings: 25
- Code(Counter(0)) at (prev + 1, 13) to (start + 0, 19)
- Code(Counter(0)) at (prev + 0, 20) to (start + 0, 21)
- Code(Counter(0)) at (prev + 0, 23) to (start + 0, 29)
- Code(Counter(3)) at (prev + 0, 30) to (start + 0, 31)
- Code(Counter(1)) at (prev + 0, 30) to (start + 0, 31)
- Code(Counter(2)) at (prev + 2, 13) to (start + 0, 14)
- Code(Counter(1)) at (prev + 0, 18) to (start + 0, 23)
- Code(Expression(0, Sub)) at (prev + 0, 18) to (start + 0, 23)
= (c0 - c1)
- Code(Counter(2)) at (prev + 1, 16) to (start + 0, 21)
- Code(Zero) at (prev + 0, 22) to (start + 1, 14)
- Code(Counter(2)) at (prev + 2, 20) to (start + 0, 25)
@ -69,12 +73,12 @@ Number of file 0 mappings: 25
- Code(Counter(2)) at (prev + 1, 17) to (start + 0, 23)
- Code(Counter(2)) at (prev + 0, 24) to (start + 0, 25)
- Code(Counter(2)) at (prev + 0, 27) to (start + 0, 33)
- Code(Expression(0, Sub)) at (prev + 0, 34) to (start + 0, 35)
= ((c0 + c2) - (c1 + c3))
- Code(Expression(3, Sub)) at (prev + 3, 9) to (start + 0, 15)
= (c1 - c2)
- Code(Expression(1, Sub)) at (prev + 0, 34) to (start + 0, 35)
= ((c0 + c2) - (c3 + c1))
- Code(Expression(4, Sub)) at (prev + 3, 9) to (start + 0, 15)
= (c3 - c2)
- Code(Counter(0)) at (prev + 1, 5) to (start + 0, 6)
Highest counter ID seen: c3
Highest counter ID seen: c2
Function name: loops_branches::main
Raw bytes (54): 0x[01, 01, 00, 0a, 01, 37, 01, 00, 0a, 01, 01, 09, 00, 13, 01, 00, 16, 00, 1f, 01, 01, 05, 00, 0d, 01, 00, 0e, 00, 14, 01, 01, 09, 00, 15, 01, 00, 18, 00, 23, 01, 01, 05, 00, 0d, 01, 00, 0e, 00, 12, 01, 01, 01, 00, 02]

View file

@ -16,8 +16,8 @@
LL| 0| } else {
LL| 0| }
LL| |
LL| 11| for i in 0..10 {
^10
LL| 10| for i in 0..10 {
^1
LL| 10| if true {
LL| 10| if false {
LL| 0| while true {}
@ -43,8 +43,8 @@
LL| 1| write!(f, "cool")?;
^0
LL| | }
LL| 11| for i in 0..10 {
^10
LL| 10| for i in 0..10 {
^1
LL| 10| if false {
LL| 0| } else {
LL| 10| if false {

View file

@ -1,26 +1,26 @@
Function name: nested_loops::main
Raw bytes (164): 0x[01, 01, 14, 07, 47, 05, 11, 01, 0d, 47, 05, 01, 0d, 47, 05, 01, 0d, 47, 05, 01, 0d, 47, 05, 01, 0d, 3f, 05, 01, 09, 4b, 3f, 05, 15, 01, 09, 47, 4b, 01, 0d, 05, 15, 05, 01, 18, 01, 01, 01, 00, 0a, 01, 01, 09, 00, 10, 01, 00, 13, 00, 2e, 01, 01, 09, 00, 16, 01, 00, 19, 00, 1b, 05, 02, 13, 00, 20, 09, 01, 0d, 00, 12, 09, 00, 15, 00, 18, 09, 01, 0d, 00, 12, 09, 00, 15, 00, 18, 0d, 01, 12, 00, 17, 11, 01, 10, 00, 16, 02, 01, 11, 00, 16, 26, 01, 0d, 00, 0e, 26, 01, 0d, 00, 13, 26, 01, 0d, 00, 13, 26, 01, 10, 00, 16, 15, 01, 11, 00, 18, 15, 01, 14, 00, 1b, 2e, 01, 15, 00, 21, 36, 01, 18, 02, 12, 42, 03, 0d, 00, 0e, 4e, 02, 09, 00, 17, 01, 02, 01, 00, 02]
Raw bytes (164): 0x[01, 01, 14, 07, 47, 05, 0d, 01, 11, 47, 05, 01, 11, 47, 05, 01, 11, 47, 05, 01, 11, 47, 05, 01, 11, 3f, 05, 01, 09, 4b, 3f, 05, 15, 01, 09, 47, 4b, 01, 11, 05, 15, 05, 01, 18, 01, 01, 01, 00, 0a, 01, 01, 09, 00, 10, 01, 00, 13, 00, 2e, 01, 01, 09, 00, 16, 01, 00, 19, 00, 1b, 05, 02, 13, 00, 20, 09, 01, 0d, 00, 12, 09, 00, 15, 00, 18, 09, 01, 0d, 00, 12, 09, 00, 15, 00, 18, 09, 01, 12, 00, 17, 0d, 01, 10, 00, 16, 02, 01, 11, 00, 16, 26, 01, 0d, 00, 0e, 26, 01, 0d, 00, 13, 26, 01, 0d, 00, 13, 26, 01, 10, 00, 16, 15, 01, 11, 00, 18, 15, 01, 14, 00, 1b, 2e, 01, 15, 00, 21, 36, 01, 18, 02, 12, 42, 03, 0d, 00, 0e, 4e, 02, 09, 00, 17, 01, 02, 01, 00, 02]
Number of files: 1
- file 0 => $DIR/nested_loops.rs
Number of expressions: 20
- expression 0 operands: lhs = Expression(1, Add), rhs = Expression(17, Add)
- expression 1 operands: lhs = Counter(1), rhs = Counter(4)
- expression 2 operands: lhs = Counter(0), rhs = Counter(3)
- expression 1 operands: lhs = Counter(1), rhs = Counter(3)
- expression 2 operands: lhs = Counter(0), rhs = Counter(4)
- expression 3 operands: lhs = Expression(17, Add), rhs = Counter(1)
- expression 4 operands: lhs = Counter(0), rhs = Counter(3)
- expression 4 operands: lhs = Counter(0), rhs = Counter(4)
- expression 5 operands: lhs = Expression(17, Add), rhs = Counter(1)
- expression 6 operands: lhs = Counter(0), rhs = Counter(3)
- expression 6 operands: lhs = Counter(0), rhs = Counter(4)
- expression 7 operands: lhs = Expression(17, Add), rhs = Counter(1)
- expression 8 operands: lhs = Counter(0), rhs = Counter(3)
- expression 8 operands: lhs = Counter(0), rhs = Counter(4)
- expression 9 operands: lhs = Expression(17, Add), rhs = Counter(1)
- expression 10 operands: lhs = Counter(0), rhs = Counter(3)
- expression 10 operands: lhs = Counter(0), rhs = Counter(4)
- expression 11 operands: lhs = Expression(15, Add), rhs = Counter(1)
- expression 12 operands: lhs = Counter(0), rhs = Counter(2)
- expression 13 operands: lhs = Expression(18, Add), rhs = Expression(15, Add)
- expression 14 operands: lhs = Counter(1), rhs = Counter(5)
- expression 15 operands: lhs = Counter(0), rhs = Counter(2)
- expression 16 operands: lhs = Expression(17, Add), rhs = Expression(18, Add)
- expression 17 operands: lhs = Counter(0), rhs = Counter(3)
- expression 17 operands: lhs = Counter(0), rhs = Counter(4)
- expression 18 operands: lhs = Counter(1), rhs = Counter(5)
- expression 19 operands: lhs = Counter(1), rhs = Counter(0)
Number of file 0 mappings: 24
@ -34,18 +34,18 @@ Number of file 0 mappings: 24
- Code(Counter(2)) at (prev + 0, 21) to (start + 0, 24)
- Code(Counter(2)) at (prev + 1, 13) to (start + 0, 18)
- Code(Counter(2)) at (prev + 0, 21) to (start + 0, 24)
- Code(Counter(3)) at (prev + 1, 18) to (start + 0, 23)
- Code(Counter(4)) at (prev + 1, 16) to (start + 0, 22)
- Code(Counter(2)) at (prev + 1, 18) to (start + 0, 23)
- Code(Counter(3)) at (prev + 1, 16) to (start + 0, 22)
- Code(Expression(0, Sub)) at (prev + 1, 17) to (start + 0, 22)
= ((c1 + c4) - (c0 + c3))
= ((c1 + c3) - (c0 + c4))
- Code(Expression(9, Sub)) at (prev + 1, 13) to (start + 0, 14)
= ((c0 + c3) - c1)
= ((c0 + c4) - c1)
- Code(Expression(9, Sub)) at (prev + 1, 13) to (start + 0, 19)
= ((c0 + c3) - c1)
= ((c0 + c4) - c1)
- Code(Expression(9, Sub)) at (prev + 1, 13) to (start + 0, 19)
= ((c0 + c3) - c1)
= ((c0 + c4) - c1)
- Code(Expression(9, Sub)) at (prev + 1, 16) to (start + 0, 22)
= ((c0 + c3) - c1)
= ((c0 + c4) - c1)
- Code(Counter(5)) at (prev + 1, 17) to (start + 0, 24)
- Code(Counter(5)) at (prev + 1, 20) to (start + 0, 27)
- Code(Expression(11, Sub)) at (prev + 1, 21) to (start + 0, 33)
@ -53,7 +53,7 @@ Number of file 0 mappings: 24
- Code(Expression(13, Sub)) at (prev + 1, 24) to (start + 2, 18)
= ((c1 + c5) - (c0 + c2))
- Code(Expression(16, Sub)) at (prev + 3, 13) to (start + 0, 14)
= ((c0 + c3) - (c1 + c5))
= ((c0 + c4) - (c1 + c5))
- Code(Expression(19, Sub)) at (prev + 2, 9) to (start + 0, 23)
= (c1 - c0)
- Code(Counter(0)) at (prev + 2, 1) to (start + 0, 2)

View file

@ -5,7 +5,7 @@
LL| 1| 'outer: while countdown > 0 {
LL| 1| let mut a = 100;
LL| 1| let mut b = 100;
LL| 3| for _ in 0..50 {
LL| 1| for _ in 0..50 {
LL| 3| if a < 30 {
LL| 0| break;
LL| 3| }

View file

@ -1,5 +1,5 @@
Function name: simple_match::main
Raw bytes (99): 0x[01, 01, 05, 01, 05, 09, 01, 09, 01, 09, 13, 01, 0d, 11, 01, 04, 01, 00, 0a, 01, 04, 09, 00, 10, 01, 00, 13, 00, 2e, 01, 02, 09, 00, 16, 01, 00, 19, 00, 1a, 01, 01, 08, 00, 0f, 05, 00, 10, 02, 06, 02, 02, 05, 00, 06, 09, 05, 09, 00, 0d, 0a, 05, 0d, 00, 16, 0d, 02, 0d, 00, 0e, 0a, 02, 11, 02, 12, 0d, 04, 0d, 07, 0e, 0d, 01, 11, 00, 1e, 0d, 02, 15, 00, 16, 0e, 07, 0d, 00, 0f, 01, 03, 01, 00, 02]
Raw bytes (99): 0x[01, 01, 05, 01, 05, 09, 01, 09, 01, 09, 13, 01, 0d, 11, 01, 04, 01, 00, 0a, 01, 04, 09, 00, 10, 01, 00, 13, 00, 2e, 01, 02, 09, 00, 16, 01, 00, 19, 00, 1a, 01, 01, 08, 00, 0f, 05, 00, 10, 02, 06, 02, 02, 05, 00, 06, 01, 05, 09, 00, 0d, 0a, 05, 0d, 00, 16, 0d, 02, 0d, 00, 0e, 0a, 02, 11, 02, 12, 0d, 04, 0d, 07, 0e, 0d, 01, 11, 00, 1e, 0d, 02, 15, 00, 16, 0e, 07, 0d, 00, 0f, 01, 03, 01, 00, 02]
Number of files: 1
- file 0 => $DIR/simple_match.rs
Number of expressions: 5
@ -18,7 +18,7 @@ Number of file 0 mappings: 17
- Code(Counter(1)) at (prev + 0, 16) to (start + 2, 6)
- Code(Expression(0, Sub)) at (prev + 2, 5) to (start + 0, 6)
= (c0 - c1)
- Code(Counter(2)) at (prev + 5, 9) to (start + 0, 13)
- Code(Counter(0)) at (prev + 5, 9) to (start + 0, 13)
- Code(Expression(2, Sub)) at (prev + 5, 13) to (start + 0, 22)
= (c2 - c0)
- Code(Counter(3)) at (prev + 2, 13) to (start + 0, 14)

View file

@ -16,7 +16,7 @@
LL| | for
LL| | _
LL| | in
LL| 3| 0..2
LL| 1| 0..2
LL| | {
LL| | let z
LL| | ;

View file

@ -62,77 +62,77 @@ Number of file 0 mappings: 8
Highest counter ID seen: c1
Function name: try_error_result::test1
Raw bytes (82): 0x[01, 01, 04, 07, 05, 01, 09, 05, 01, 05, 09, 0e, 01, 0d, 01, 00, 1d, 01, 01, 09, 01, 12, 01, 01, 15, 00, 17, 05, 05, 09, 00, 0e, 09, 02, 09, 01, 11, 09, 04, 0d, 00, 1a, 02, 02, 0d, 00, 11, 02, 00, 29, 00, 2a, 00, 01, 0d, 00, 11, 00, 00, 2a, 00, 2b, 0a, 04, 0d, 00, 11, 00, 00, 2a, 00, 2b, 0e, 03, 05, 00, 0b, 01, 01, 01, 00, 02]
Raw bytes (82): 0x[01, 01, 04, 07, 09, 01, 05, 09, 01, 09, 05, 0e, 01, 0d, 01, 00, 1d, 01, 01, 09, 01, 12, 01, 01, 15, 00, 17, 01, 05, 09, 00, 0e, 05, 02, 09, 01, 11, 05, 04, 0d, 00, 1a, 02, 02, 0d, 00, 11, 02, 00, 29, 00, 2a, 00, 01, 0d, 00, 11, 00, 00, 2a, 00, 2b, 0a, 04, 0d, 00, 11, 00, 00, 2a, 00, 2b, 0e, 03, 05, 00, 0b, 01, 01, 01, 00, 02]
Number of files: 1
- file 0 => $DIR/try_error_result.rs
Number of expressions: 4
- expression 0 operands: lhs = Expression(1, Add), rhs = Counter(1)
- expression 1 operands: lhs = Counter(0), rhs = Counter(2)
- expression 2 operands: lhs = Counter(1), rhs = Counter(0)
- expression 3 operands: lhs = Counter(1), rhs = Counter(2)
- expression 0 operands: lhs = Expression(1, Add), rhs = Counter(2)
- expression 1 operands: lhs = Counter(0), rhs = Counter(1)
- expression 2 operands: lhs = Counter(2), rhs = Counter(0)
- expression 3 operands: lhs = Counter(2), rhs = Counter(1)
Number of file 0 mappings: 14
- Code(Counter(0)) at (prev + 13, 1) to (start + 0, 29)
- Code(Counter(0)) at (prev + 1, 9) to (start + 1, 18)
- Code(Counter(0)) at (prev + 1, 21) to (start + 0, 23)
- Code(Counter(1)) at (prev + 5, 9) to (start + 0, 14)
- Code(Counter(2)) at (prev + 2, 9) to (start + 1, 17)
- Code(Counter(2)) at (prev + 4, 13) to (start + 0, 26)
- Code(Counter(0)) at (prev + 5, 9) to (start + 0, 14)
- Code(Counter(1)) at (prev + 2, 9) to (start + 1, 17)
- Code(Counter(1)) at (prev + 4, 13) to (start + 0, 26)
- Code(Expression(0, Sub)) at (prev + 2, 13) to (start + 0, 17)
= ((c0 + c2) - c1)
= ((c0 + c1) - c2)
- Code(Expression(0, Sub)) at (prev + 0, 41) to (start + 0, 42)
= ((c0 + c2) - c1)
= ((c0 + c1) - c2)
- Code(Zero) at (prev + 1, 13) to (start + 0, 17)
- Code(Zero) at (prev + 0, 42) to (start + 0, 43)
- Code(Expression(2, Sub)) at (prev + 4, 13) to (start + 0, 17)
= (c1 - c0)
= (c2 - c0)
- Code(Zero) at (prev + 0, 42) to (start + 0, 43)
- Code(Expression(3, Sub)) at (prev + 3, 5) to (start + 0, 11)
= (c1 - c2)
= (c2 - c1)
- Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
Highest counter ID seen: c2
Highest counter ID seen: c1
Function name: try_error_result::test2
Raw bytes (443): 0x[01, 01, 3d, 0d, 11, 0d, 57, 11, 15, 0d, 57, 11, 15, 0d, 57, 11, 15, 0d, 4f, 53, 1d, 57, 19, 11, 15, 0d, 57, 11, 15, 0d, 57, 11, 15, 0d, 53, 57, 19, 11, 15, 0d, 4f, 53, 1d, 57, 19, 11, 15, 41, 6b, 21, 25, 41, 21, 41, 6b, 21, 25, 09, 8f, 01, 93, 01, 2d, 0d, 29, 09, 0d, 09, 0d, 09, 93, 01, 0d, 29, 09, 8f, 01, 93, 01, 2d, 0d, 29, 45, a7, 01, 31, 35, 45, 31, 45, a7, 01, 31, 35, 49, bb, 01, 39, 3d, 49, 39, 49, bb, 01, 39, 3d, 05, 09, c7, 01, 09, cb, 01, 3d, cf, 01, 39, d3, 01, 35, d7, 01, 31, db, 01, 2d, df, 01, 29, e3, 01, 25, e7, 01, 21, eb, 01, 1d, ef, 01, 19, f3, 01, 15, 05, 11, 39, 01, 3d, 01, 00, 1d, 01, 01, 09, 00, 0f, 01, 00, 12, 00, 1a, 01, 01, 09, 01, 12, 01, 01, 15, 00, 17, 05, 05, 09, 00, 0e, 09, 02, 09, 01, 11, 09, 04, 0d, 00, 1a, 0d, 02, 0d, 00, 13, 0d, 00, 14, 00, 1f, 11, 00, 2f, 00, 30, 02, 00, 31, 00, 35, 02, 00, 45, 00, 4f, 02, 00, 50, 00, 62, 02, 01, 0d, 00, 13, 02, 02, 11, 00, 1c, 15, 01, 11, 00, 12, 36, 02, 11, 00, 15, 36, 02, 11, 00, 1b, 36, 01, 15, 00, 27, 4a, 02, 11, 00, 14, 36, 00, 17, 00, 1d, 36, 00, 1e, 00, 29, 19, 00, 41, 00, 42, 3e, 00, 43, 00, 47, 1d, 00, 5f, 00, 60, 4a, 01, 0d, 00, 17, 66, 01, 11, 00, 14, 41, 00, 17, 00, 1d, 41, 00, 1e, 00, 29, 21, 00, 41, 00, 42, 62, 00, 43, 00, 47, 25, 00, 60, 00, 61, 66, 01, 0d, 00, 17, 8a, 01, 04, 11, 00, 14, 7e, 00, 17, 00, 1d, 7e, 00, 1e, 00, 29, 29, 00, 42, 00, 43, 82, 01, 00, 44, 00, 48, 2d, 00, 61, 00, 62, 8a, 01, 01, 0d, 00, 17, a2, 01, 01, 11, 00, 14, 45, 00, 17, 00, 1d, 45, 01, 12, 00, 1d, 31, 00, 36, 00, 37, 9e, 01, 01, 12, 00, 16, 35, 00, 2f, 00, 30, a2, 01, 01, 0d, 00, 17, b6, 01, 01, 11, 00, 14, 49, 00, 17, 00, 1d, 49, 01, 12, 00, 1d, 39, 01, 11, 00, 12, b2, 01, 01, 12, 00, 16, 3d, 01, 11, 00, 12, b6, 01, 02, 0d, 00, 17, be, 01, 03, 05, 00, 0b, c2, 01, 01, 01, 00, 02]
Raw bytes (443): 0x[01, 01, 3d, 09, 0d, 09, 57, 0d, 15, 09, 57, 0d, 15, 09, 57, 0d, 15, 09, 4f, 53, 1d, 57, 19, 0d, 15, 09, 57, 0d, 15, 09, 57, 0d, 15, 09, 53, 57, 19, 0d, 15, 09, 4f, 53, 1d, 57, 19, 0d, 15, 41, 6b, 21, 25, 41, 21, 41, 6b, 21, 25, 05, 8f, 01, 93, 01, 2d, 09, 29, 05, 09, 05, 09, 05, 93, 01, 09, 29, 05, 8f, 01, 93, 01, 2d, 09, 29, 45, a7, 01, 31, 35, 45, 31, 45, a7, 01, 31, 35, 49, bb, 01, 39, 3d, 49, 39, 49, bb, 01, 39, 3d, 11, 05, c7, 01, 05, cb, 01, 3d, cf, 01, 39, d3, 01, 35, d7, 01, 31, db, 01, 2d, df, 01, 29, e3, 01, 25, e7, 01, 21, eb, 01, 1d, ef, 01, 19, f3, 01, 15, 11, 0d, 39, 01, 3d, 01, 00, 1d, 01, 01, 09, 00, 0f, 01, 00, 12, 00, 1a, 01, 01, 09, 01, 12, 01, 01, 15, 00, 17, 01, 05, 09, 00, 0e, 05, 02, 09, 01, 11, 05, 04, 0d, 00, 1a, 09, 02, 0d, 00, 13, 09, 00, 14, 00, 1f, 0d, 00, 2f, 00, 30, 02, 00, 31, 00, 35, 02, 00, 45, 00, 4f, 02, 00, 50, 00, 62, 02, 01, 0d, 00, 13, 02, 02, 11, 00, 1c, 15, 01, 11, 00, 12, 36, 02, 11, 00, 15, 36, 02, 11, 00, 1b, 36, 01, 15, 00, 27, 4a, 02, 11, 00, 14, 36, 00, 17, 00, 1d, 36, 00, 1e, 00, 29, 19, 00, 41, 00, 42, 3e, 00, 43, 00, 47, 1d, 00, 5f, 00, 60, 4a, 01, 0d, 00, 17, 66, 01, 11, 00, 14, 41, 00, 17, 00, 1d, 41, 00, 1e, 00, 29, 21, 00, 41, 00, 42, 62, 00, 43, 00, 47, 25, 00, 60, 00, 61, 66, 01, 0d, 00, 17, 8a, 01, 04, 11, 00, 14, 7e, 00, 17, 00, 1d, 7e, 00, 1e, 00, 29, 29, 00, 42, 00, 43, 82, 01, 00, 44, 00, 48, 2d, 00, 61, 00, 62, 8a, 01, 01, 0d, 00, 17, a2, 01, 01, 11, 00, 14, 45, 00, 17, 00, 1d, 45, 01, 12, 00, 1d, 31, 00, 36, 00, 37, 9e, 01, 01, 12, 00, 16, 35, 00, 2f, 00, 30, a2, 01, 01, 0d, 00, 17, b6, 01, 01, 11, 00, 14, 49, 00, 17, 00, 1d, 49, 01, 12, 00, 1d, 39, 01, 11, 00, 12, b2, 01, 01, 12, 00, 16, 3d, 01, 11, 00, 12, b6, 01, 02, 0d, 00, 17, be, 01, 03, 05, 00, 0b, c2, 01, 01, 01, 00, 02]
Number of files: 1
- file 0 => $DIR/try_error_result.rs
Number of expressions: 61
- expression 0 operands: lhs = Counter(3), rhs = Counter(4)
- expression 1 operands: lhs = Counter(3), rhs = Expression(21, Add)
- expression 2 operands: lhs = Counter(4), rhs = Counter(5)
- expression 3 operands: lhs = Counter(3), rhs = Expression(21, Add)
- expression 4 operands: lhs = Counter(4), rhs = Counter(5)
- expression 5 operands: lhs = Counter(3), rhs = Expression(21, Add)
- expression 6 operands: lhs = Counter(4), rhs = Counter(5)
- expression 7 operands: lhs = Counter(3), rhs = Expression(19, Add)
- expression 0 operands: lhs = Counter(2), rhs = Counter(3)
- expression 1 operands: lhs = Counter(2), rhs = Expression(21, Add)
- expression 2 operands: lhs = Counter(3), rhs = Counter(5)
- expression 3 operands: lhs = Counter(2), rhs = Expression(21, Add)
- expression 4 operands: lhs = Counter(3), rhs = Counter(5)
- expression 5 operands: lhs = Counter(2), rhs = Expression(21, Add)
- expression 6 operands: lhs = Counter(3), rhs = Counter(5)
- expression 7 operands: lhs = Counter(2), rhs = Expression(19, Add)
- expression 8 operands: lhs = Expression(20, Add), rhs = Counter(7)
- expression 9 operands: lhs = Expression(21, Add), rhs = Counter(6)
- expression 10 operands: lhs = Counter(4), rhs = Counter(5)
- expression 11 operands: lhs = Counter(3), rhs = Expression(21, Add)
- expression 12 operands: lhs = Counter(4), rhs = Counter(5)
- expression 13 operands: lhs = Counter(3), rhs = Expression(21, Add)
- expression 14 operands: lhs = Counter(4), rhs = Counter(5)
- expression 15 operands: lhs = Counter(3), rhs = Expression(20, Add)
- expression 10 operands: lhs = Counter(3), rhs = Counter(5)
- expression 11 operands: lhs = Counter(2), rhs = Expression(21, Add)
- expression 12 operands: lhs = Counter(3), rhs = Counter(5)
- expression 13 operands: lhs = Counter(2), rhs = Expression(21, Add)
- expression 14 operands: lhs = Counter(3), rhs = Counter(5)
- expression 15 operands: lhs = Counter(2), rhs = Expression(20, Add)
- expression 16 operands: lhs = Expression(21, Add), rhs = Counter(6)
- expression 17 operands: lhs = Counter(4), rhs = Counter(5)
- expression 18 operands: lhs = Counter(3), rhs = Expression(19, Add)
- expression 17 operands: lhs = Counter(3), rhs = Counter(5)
- expression 18 operands: lhs = Counter(2), rhs = Expression(19, Add)
- expression 19 operands: lhs = Expression(20, Add), rhs = Counter(7)
- expression 20 operands: lhs = Expression(21, Add), rhs = Counter(6)
- expression 21 operands: lhs = Counter(4), rhs = Counter(5)
- expression 21 operands: lhs = Counter(3), rhs = Counter(5)
- expression 22 operands: lhs = Counter(16), rhs = Expression(26, Add)
- expression 23 operands: lhs = Counter(8), rhs = Counter(9)
- expression 24 operands: lhs = Counter(16), rhs = Counter(8)
- expression 25 operands: lhs = Counter(16), rhs = Expression(26, Add)
- expression 26 operands: lhs = Counter(8), rhs = Counter(9)
- expression 27 operands: lhs = Counter(2), rhs = Expression(35, Add)
- expression 27 operands: lhs = Counter(1), rhs = Expression(35, Add)
- expression 28 operands: lhs = Expression(36, Add), rhs = Counter(11)
- expression 29 operands: lhs = Counter(3), rhs = Counter(10)
- expression 30 operands: lhs = Counter(2), rhs = Counter(3)
- expression 31 operands: lhs = Counter(2), rhs = Counter(3)
- expression 32 operands: lhs = Counter(2), rhs = Expression(36, Add)
- expression 33 operands: lhs = Counter(3), rhs = Counter(10)
- expression 34 operands: lhs = Counter(2), rhs = Expression(35, Add)
- expression 29 operands: lhs = Counter(2), rhs = Counter(10)
- expression 30 operands: lhs = Counter(1), rhs = Counter(2)
- expression 31 operands: lhs = Counter(1), rhs = Counter(2)
- expression 32 operands: lhs = Counter(1), rhs = Expression(36, Add)
- expression 33 operands: lhs = Counter(2), rhs = Counter(10)
- expression 34 operands: lhs = Counter(1), rhs = Expression(35, Add)
- expression 35 operands: lhs = Expression(36, Add), rhs = Counter(11)
- expression 36 operands: lhs = Counter(3), rhs = Counter(10)
- expression 36 operands: lhs = Counter(2), rhs = Counter(10)
- expression 37 operands: lhs = Counter(17), rhs = Expression(41, Add)
- expression 38 operands: lhs = Counter(12), rhs = Counter(13)
- expression 39 operands: lhs = Counter(17), rhs = Counter(12)
@ -143,8 +143,8 @@ Number of expressions: 61
- expression 44 operands: lhs = Counter(18), rhs = Counter(14)
- expression 45 operands: lhs = Counter(18), rhs = Expression(46, Add)
- expression 46 operands: lhs = Counter(14), rhs = Counter(15)
- expression 47 operands: lhs = Counter(1), rhs = Counter(2)
- expression 48 operands: lhs = Expression(49, Add), rhs = Counter(2)
- expression 47 operands: lhs = Counter(4), rhs = Counter(1)
- expression 48 operands: lhs = Expression(49, Add), rhs = Counter(1)
- expression 49 operands: lhs = Expression(50, Add), rhs = Counter(15)
- expression 50 operands: lhs = Expression(51, Add), rhs = Counter(14)
- expression 51 operands: lhs = Expression(52, Add), rhs = Counter(13)
@ -156,48 +156,48 @@ Number of expressions: 61
- expression 57 operands: lhs = Expression(58, Add), rhs = Counter(7)
- expression 58 operands: lhs = Expression(59, Add), rhs = Counter(6)
- expression 59 operands: lhs = Expression(60, Add), rhs = Counter(5)
- expression 60 operands: lhs = Counter(1), rhs = Counter(4)
- expression 60 operands: lhs = Counter(4), rhs = Counter(3)
Number of file 0 mappings: 57
- Code(Counter(0)) at (prev + 61, 1) to (start + 0, 29)
- Code(Counter(0)) at (prev + 1, 9) to (start + 0, 15)
- Code(Counter(0)) at (prev + 0, 18) to (start + 0, 26)
- Code(Counter(0)) at (prev + 1, 9) to (start + 1, 18)
- Code(Counter(0)) at (prev + 1, 21) to (start + 0, 23)
- Code(Counter(1)) at (prev + 5, 9) to (start + 0, 14)
- Code(Counter(2)) at (prev + 2, 9) to (start + 1, 17)
- Code(Counter(2)) at (prev + 4, 13) to (start + 0, 26)
- Code(Counter(3)) at (prev + 2, 13) to (start + 0, 19)
- Code(Counter(3)) at (prev + 0, 20) to (start + 0, 31)
- Code(Counter(4)) at (prev + 0, 47) to (start + 0, 48)
- Code(Counter(0)) at (prev + 5, 9) to (start + 0, 14)
- Code(Counter(1)) at (prev + 2, 9) to (start + 1, 17)
- Code(Counter(1)) at (prev + 4, 13) to (start + 0, 26)
- Code(Counter(2)) at (prev + 2, 13) to (start + 0, 19)
- Code(Counter(2)) at (prev + 0, 20) to (start + 0, 31)
- Code(Counter(3)) at (prev + 0, 47) to (start + 0, 48)
- Code(Expression(0, Sub)) at (prev + 0, 49) to (start + 0, 53)
= (c3 - c4)
= (c2 - c3)
- Code(Expression(0, Sub)) at (prev + 0, 69) to (start + 0, 79)
= (c3 - c4)
= (c2 - c3)
- Code(Expression(0, Sub)) at (prev + 0, 80) to (start + 0, 98)
= (c3 - c4)
= (c2 - c3)
- Code(Expression(0, Sub)) at (prev + 1, 13) to (start + 0, 19)
= (c3 - c4)
= (c2 - c3)
- Code(Expression(0, Sub)) at (prev + 2, 17) to (start + 0, 28)
= (c3 - c4)
= (c2 - c3)
- Code(Counter(5)) at (prev + 1, 17) to (start + 0, 18)
- Code(Expression(13, Sub)) at (prev + 2, 17) to (start + 0, 21)
= (c3 - (c4 + c5))
= (c2 - (c3 + c5))
- Code(Expression(13, Sub)) at (prev + 2, 17) to (start + 0, 27)
= (c3 - (c4 + c5))
= (c2 - (c3 + c5))
- Code(Expression(13, Sub)) at (prev + 1, 21) to (start + 0, 39)
= (c3 - (c4 + c5))
= (c2 - (c3 + c5))
- Code(Expression(18, Sub)) at (prev + 2, 17) to (start + 0, 20)
= (c3 - (((c4 + c5) + c6) + c7))
= (c2 - (((c3 + c5) + c6) + c7))
- Code(Expression(13, Sub)) at (prev + 0, 23) to (start + 0, 29)
= (c3 - (c4 + c5))
= (c2 - (c3 + c5))
- Code(Expression(13, Sub)) at (prev + 0, 30) to (start + 0, 41)
= (c3 - (c4 + c5))
= (c2 - (c3 + c5))
- Code(Counter(6)) at (prev + 0, 65) to (start + 0, 66)
- Code(Expression(15, Sub)) at (prev + 0, 67) to (start + 0, 71)
= (c3 - ((c4 + c5) + c6))
= (c2 - ((c3 + c5) + c6))
- Code(Counter(7)) at (prev + 0, 95) to (start + 0, 96)
- Code(Expression(18, Sub)) at (prev + 1, 13) to (start + 0, 23)
= (c3 - (((c4 + c5) + c6) + c7))
= (c2 - (((c3 + c5) + c6) + c7))
- Code(Expression(25, Sub)) at (prev + 1, 17) to (start + 0, 20)
= (c16 - (c8 + c9))
- Code(Counter(16)) at (prev + 0, 23) to (start + 0, 29)
@ -209,17 +209,17 @@ Number of file 0 mappings: 57
- Code(Expression(25, Sub)) at (prev + 1, 13) to (start + 0, 23)
= (c16 - (c8 + c9))
- Code(Expression(34, Sub)) at (prev + 4, 17) to (start + 0, 20)
= (c2 - ((c3 + c10) + c11))
= (c1 - ((c2 + c10) + c11))
- Code(Expression(31, Sub)) at (prev + 0, 23) to (start + 0, 29)
= (c2 - c3)
= (c1 - c2)
- Code(Expression(31, Sub)) at (prev + 0, 30) to (start + 0, 41)
= (c2 - c3)
= (c1 - c2)
- Code(Counter(10)) at (prev + 0, 66) to (start + 0, 67)
- Code(Expression(32, Sub)) at (prev + 0, 68) to (start + 0, 72)
= (c2 - (c3 + c10))
= (c1 - (c2 + c10))
- Code(Counter(11)) at (prev + 0, 97) to (start + 0, 98)
- Code(Expression(34, Sub)) at (prev + 1, 13) to (start + 0, 23)
= (c2 - ((c3 + c10) + c11))
= (c1 - ((c2 + c10) + c11))
- Code(Expression(40, Sub)) at (prev + 1, 17) to (start + 0, 20)
= (c17 - (c12 + c13))
- Code(Counter(17)) at (prev + 0, 23) to (start + 0, 29)
@ -241,8 +241,8 @@ Number of file 0 mappings: 57
- Code(Expression(45, Sub)) at (prev + 2, 13) to (start + 0, 23)
= (c18 - (c14 + c15))
- Code(Expression(47, Sub)) at (prev + 3, 5) to (start + 0, 11)
= (c1 - c2)
= (c4 - c1)
- Code(Expression(48, Sub)) at (prev + 1, 1) to (start + 0, 2)
= (((((((((((((c1 + c4) + c5) + c6) + c7) + c8) + c9) + c10) + c11) + c12) + c13) + c14) + c15) - c2)
= (((((((((((((c4 + c3) + c5) + c6) + c7) + c8) + c9) + c10) + c11) + c12) + c13) + c14) + c15) - c1)
Highest counter ID seen: c18

View file

@ -17,7 +17,7 @@
LL| | for
LL| | _
LL| | in
LL| 6| 0..10
LL| 1| 0..10
LL| | {
LL| 6| countdown
LL| 6| -= 1
@ -67,7 +67,7 @@
LL| | for
LL| | _
LL| | in
LL| 6| 0..10
LL| 1| 0..10
LL| | {
LL| 6| countdown
LL| 6| -= 1

View file

@ -1,5 +1,5 @@
Function name: unicode::main
Raw bytes (58): 0x[01, 01, 02, 05, 01, 01, 0d, 0a, 01, 0e, 01, 00, 0a, 02, 01, 09, 00, 0c, 05, 00, 10, 00, 1b, 02, 00, 1c, 00, 28, 01, 02, 08, 00, 23, 09, 00, 29, 00, 44, 0d, 00, 47, 02, 06, 06, 02, 05, 00, 06, 01, 02, 05, 00, 0b, 01, 01, 01, 00, 02]
Raw bytes (58): 0x[01, 01, 02, 05, 01, 01, 0d, 0a, 01, 0e, 01, 00, 0a, 02, 01, 09, 00, 0c, 01, 00, 10, 00, 1b, 02, 00, 1c, 00, 28, 01, 02, 08, 00, 23, 09, 00, 29, 00, 44, 0d, 00, 47, 02, 06, 06, 02, 05, 00, 06, 01, 02, 05, 00, 0b, 01, 01, 01, 00, 02]
Number of files: 1
- file 0 => $DIR/unicode.rs
Number of expressions: 2
@ -9,7 +9,7 @@ Number of file 0 mappings: 10
- Code(Counter(0)) at (prev + 14, 1) to (start + 0, 10)
- Code(Expression(0, Sub)) at (prev + 1, 9) to (start + 0, 12)
= (c1 - c0)
- Code(Counter(1)) at (prev + 0, 16) to (start + 0, 27)
- Code(Counter(0)) at (prev + 0, 16) to (start + 0, 27)
- Code(Expression(0, Sub)) at (prev + 0, 28) to (start + 0, 40)
= (c1 - c0)
- Code(Counter(0)) at (prev + 2, 8) to (start + 0, 35)

View file

@ -12,8 +12,8 @@
LL| |// points or bytes.
LL| |
LL| 1|fn main() {
LL| 33| for _İ in 'А'..='Я' { /* Я */ }
^32 ^32
LL| 32| for _İ in 'А'..='Я' { /* Я */ }
^1
LL| |
LL| 1| if 申し訳ございません() && 申し訳ございません() {
^0

View file

@ -0,0 +1,26 @@
macro_rules! deref {
($e:expr) => { *$e };
}
fn f1<'a>(mut iter: Box<dyn Iterator<Item=&'a mut u8>>) {
for item in deref!(iter) { *item = 0 }
//~^ ERROR `dyn Iterator<Item = &'a mut u8>` is not an iterator
}
fn f2(x: &mut i32) {
for _item in deref!(x) {}
//~^ ERROR `i32` is not an iterator
}
struct Wrapped(i32);
macro_rules! borrow_deref {
($e:expr) => { &mut *$e };
}
fn f3<'a>(mut iter: Box<dyn Iterator<Item=&'a mut i32>>) {
for Wrapped(item) in borrow_deref!(iter) { *item = 0 }
//~^ ERROR mismatched types
}
fn main() {}

View file

@ -0,0 +1,35 @@
error[E0277]: `dyn Iterator<Item = &'a mut u8>` is not an iterator
--> $DIR/iter_from_mac_call.rs:6:17
|
LL | for item in deref!(iter) { *item = 0 }
| ^^^^^^^^^^^^ the trait `IntoIterator` is not implemented for `dyn Iterator<Item = &'a mut u8>`
|
= note: the trait bound `dyn Iterator<Item = &'a mut u8>: IntoIterator` is not satisfied
= note: required for `dyn Iterator<Item = &'a mut u8>` to implement `IntoIterator`
help: consider mutably borrowing here
|
LL | for item in &mut deref!(iter) { *item = 0 }
| ++++
error[E0277]: `i32` is not an iterator
--> $DIR/iter_from_mac_call.rs:11:18
|
LL | for _item in deref!(x) {}
| ^^^^^^^^^ `i32` is not an iterator
|
= help: the trait `Iterator` is not implemented for `i32`
= note: if you want to iterate between `start` until a value `end`, use the exclusive range syntax `start..end` or the inclusive range syntax `start..=end`
= note: required for `i32` to implement `IntoIterator`
error[E0308]: mismatched types
--> $DIR/iter_from_mac_call.rs:22:9
|
LL | for Wrapped(item) in borrow_deref!(iter) { *item = 0 }
| ^^^^^^^^^^^^^ ------------------- this is an iterator with items of type `&mut i32`
| |
| expected `i32`, found `Wrapped`
error: aborting due to 3 previous errors
Some errors have detailed explanations: E0277, E0308.
For more information about an error, try `rustc --explain E0277`.

View file

@ -6,6 +6,7 @@ fn main() {
for (src, dest) in std::iter::zip(fields.iter(), &variant.iter()) {
//~^ ERROR `&std::slice::Iter<'_, {integer}>` is not an iterator
//~| ERROR `&std::slice::Iter<'_, {integer}>` is not an iterator
//~| ERROR `&std::slice::Iter<'_, {integer}>` is not an iterator
eprintln!("{} {}", src, dest);
}
@ -13,6 +14,7 @@ fn main() {
for (src, dest) in std::iter::zip(fields.iter(), &variant.iter().clone()) {
//~^ ERROR `&std::slice::Iter<'_, {integer}>` is not an iterator
//~| ERROR `&std::slice::Iter<'_, {integer}>` is not an iterator
//~| ERROR `&std::slice::Iter<'_, {integer}>` is not an iterator
eprintln!("{} {}", src, dest);
}
}

View file

@ -30,7 +30,7 @@ help: the trait `Iterator` is implemented for `std::slice::Iter<'_, T>`
= note: this error originates in the macro `iterator` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0277]: `&std::slice::Iter<'_, {integer}>` is not an iterator
--> $DIR/invalid-suggest-deref-issue-127590.rs:13:54
--> $DIR/invalid-suggest-deref-issue-127590.rs:14:54
|
LL | for (src, dest) in std::iter::zip(fields.iter(), &variant.iter().clone()) {
| -------------- ^^^^^^^^^^^^^^^^^^^^^^^ `&std::slice::Iter<'_, {integer}>` is not an iterator
@ -48,7 +48,7 @@ LL + for (src, dest) in std::iter::zip(fields.iter(), variant.iter().clone()
|
error[E0277]: `&std::slice::Iter<'_, {integer}>` is not an iterator
--> $DIR/invalid-suggest-deref-issue-127590.rs:13:24
--> $DIR/invalid-suggest-deref-issue-127590.rs:14:24
|
LL | for (src, dest) in std::iter::zip(fields.iter(), &variant.iter().clone()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&std::slice::Iter<'_, {integer}>` is not an iterator
@ -60,6 +60,30 @@ help: the trait `Iterator` is implemented for `std::slice::Iter<'_, T>`
= note: required for `Zip<std::slice::Iter<'_, {integer}>, &std::slice::Iter<'_, {integer}>>` to implement `IntoIterator`
= note: this error originates in the macro `iterator` (in Nightly builds, run with -Z macro-backtrace for more info)
error: aborting due to 4 previous errors
error[E0277]: `&std::slice::Iter<'_, {integer}>` is not an iterator
--> $DIR/invalid-suggest-deref-issue-127590.rs:6:24
|
LL | for (src, dest) in std::iter::zip(fields.iter(), &variant.iter()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&std::slice::Iter<'_, {integer}>` is not an iterator
|
= help: the trait `Iterator` is not implemented for `&std::slice::Iter<'_, {integer}>`
help: the trait `Iterator` is implemented for `std::slice::Iter<'_, T>`
--> $SRC_DIR/core/src/slice/iter.rs:LL:COL
= note: required for `&std::slice::Iter<'_, {integer}>` to implement `IntoIterator`
= note: this error originates in the macro `iterator` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0277]: `&std::slice::Iter<'_, {integer}>` is not an iterator
--> $DIR/invalid-suggest-deref-issue-127590.rs:14:24
|
LL | for (src, dest) in std::iter::zip(fields.iter(), &variant.iter().clone()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&std::slice::Iter<'_, {integer}>` is not an iterator
|
= help: the trait `Iterator` is not implemented for `&std::slice::Iter<'_, {integer}>`
help: the trait `Iterator` is implemented for `std::slice::Iter<'_, T>`
--> $SRC_DIR/core/src/slice/iter.rs:LL:COL
= note: required for `&std::slice::Iter<'_, {integer}>` to implement `IntoIterator`
= note: this error originates in the macro `iterator` (in Nightly builds, run with -Z macro-backtrace for more info)
error: aborting due to 6 previous errors
For more information about this error, try `rustc --explain E0277`.