diff --git a/compiler/rustc_ast_lowering/src/expr.rs b/compiler/rustc_ast_lowering/src/expr.rs index 2be2fca87c3c5..c6f24c1a19b48 100644 --- a/compiler/rustc_ast_lowering/src/expr.rs +++ b/compiler/rustc_ast_lowering/src/expr.rs @@ -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); diff --git a/tests/coverage/async_block.cov-map b/tests/coverage/async_block.cov-map index 07d4c0eb3cd60..08f5a7b5d79ee 100644 --- a/tests/coverage/async_block.cov-map +++ b/tests/coverage/async_block.cov-map @@ -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] diff --git a/tests/coverage/async_block.coverage b/tests/coverage/async_block.coverage index 4e00024aebd2e..29d90931fa8df 100644 --- a/tests/coverage/async_block.coverage +++ b/tests/coverage/async_block.coverage @@ -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"); diff --git a/tests/coverage/continue.cov-map b/tests/coverage/continue.cov-map index 1a839f19a0f5b..05efd2707817a 100644 --- a/tests/coverage/continue.cov-map +++ b/tests/coverage/continue.cov-map @@ -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 diff --git a/tests/coverage/continue.coverage b/tests/coverage/continue.coverage index 17fe4874d151c..310701a1543cb 100644 --- a/tests/coverage/continue.coverage +++ b/tests/coverage/continue.coverage @@ -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; diff --git a/tests/coverage/inline.cov-map b/tests/coverage/inline.cov-map index 4c67dd96ac2f5..55f4b8484c024 100644 --- a/tests/coverage/inline.cov-map +++ b/tests/coverage/inline.cov-map @@ -1,5 +1,5 @@ Function name: inline::display:: -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:: -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) diff --git a/tests/coverage/inline.coverage b/tests/coverage/inline.coverage index 5fe069d5389d8..190d5a3a22b1f 100644 --- a/tests/coverage/inline.coverage +++ b/tests/coverage/inline.coverage @@ -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(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!(); diff --git a/tests/coverage/loops_branches.cov-map b/tests/coverage/loops_branches.cov-map index 78fdaa53f46f1..96dd705044131 100644 --- a/tests/coverage/loops_branches.cov-map +++ b/tests/coverage/loops_branches.cov-map @@ -1,12 +1,13 @@ Function name: ::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: ::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] diff --git a/tests/coverage/loops_branches.coverage b/tests/coverage/loops_branches.coverage index 8cd6f1be3f7a6..7bd1a680f00e3 100644 --- a/tests/coverage/loops_branches.coverage +++ b/tests/coverage/loops_branches.coverage @@ -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 { diff --git a/tests/coverage/nested_loops.cov-map b/tests/coverage/nested_loops.cov-map index 649c65d8590ba..598068714b9a1 100644 --- a/tests/coverage/nested_loops.cov-map +++ b/tests/coverage/nested_loops.cov-map @@ -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) diff --git a/tests/coverage/nested_loops.coverage b/tests/coverage/nested_loops.coverage index 143d0d26aa7f3..fbbec43309ed8 100644 --- a/tests/coverage/nested_loops.coverage +++ b/tests/coverage/nested_loops.coverage @@ -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| } diff --git a/tests/coverage/simple_match.cov-map b/tests/coverage/simple_match.cov-map index cbd6c7ca52fd1..bc5a7e7b4bef4 100644 --- a/tests/coverage/simple_match.cov-map +++ b/tests/coverage/simple_match.cov-map @@ -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) diff --git a/tests/coverage/simple_match.coverage b/tests/coverage/simple_match.coverage index 0ed7e8dc7887b..bd3f81aa8a1eb 100644 --- a/tests/coverage/simple_match.coverage +++ b/tests/coverage/simple_match.coverage @@ -16,7 +16,7 @@ LL| | for LL| | _ LL| | in - LL| 3| 0..2 + LL| 1| 0..2 LL| | { LL| | let z LL| | ; diff --git a/tests/coverage/try_error_result.cov-map b/tests/coverage/try_error_result.cov-map index e08f429615328..53757ef8a9bd6 100644 --- a/tests/coverage/try_error_result.cov-map +++ b/tests/coverage/try_error_result.cov-map @@ -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 diff --git a/tests/coverage/try_error_result.coverage b/tests/coverage/try_error_result.coverage index f2ec82f20fa2c..193c92cad48fe 100644 --- a/tests/coverage/try_error_result.coverage +++ b/tests/coverage/try_error_result.coverage @@ -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 diff --git a/tests/coverage/unicode.cov-map b/tests/coverage/unicode.cov-map index bbfa8b940c6d7..b118c847e8fff 100644 --- a/tests/coverage/unicode.cov-map +++ b/tests/coverage/unicode.cov-map @@ -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) diff --git a/tests/coverage/unicode.coverage b/tests/coverage/unicode.coverage index 4646cc92e8e42..188848889d30c 100644 --- a/tests/coverage/unicode.coverage +++ b/tests/coverage/unicode.coverage @@ -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 diff --git a/tests/ui/for/iter_from_mac_call.rs b/tests/ui/for/iter_from_mac_call.rs new file mode 100644 index 0000000000000..8df21456222c4 --- /dev/null +++ b/tests/ui/for/iter_from_mac_call.rs @@ -0,0 +1,26 @@ +macro_rules! deref { + ($e:expr) => { *$e }; +} + +fn f1<'a>(mut iter: Box>) { + for item in deref!(iter) { *item = 0 } + //~^ ERROR `dyn Iterator` 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>) { + for Wrapped(item) in borrow_deref!(iter) { *item = 0 } + //~^ ERROR mismatched types +} + +fn main() {} diff --git a/tests/ui/for/iter_from_mac_call.stderr b/tests/ui/for/iter_from_mac_call.stderr new file mode 100644 index 0000000000000..e62efb250e299 --- /dev/null +++ b/tests/ui/for/iter_from_mac_call.stderr @@ -0,0 +1,35 @@ +error[E0277]: `dyn Iterator` 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` + | + = note: the trait bound `dyn Iterator: IntoIterator` is not satisfied + = note: required for `dyn Iterator` 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`. diff --git a/tests/ui/traits/suggest-dereferences/invalid-suggest-deref-issue-127590.rs b/tests/ui/traits/suggest-dereferences/invalid-suggest-deref-issue-127590.rs index a71657316ae60..ad1ff56190c2f 100644 --- a/tests/ui/traits/suggest-dereferences/invalid-suggest-deref-issue-127590.rs +++ b/tests/ui/traits/suggest-dereferences/invalid-suggest-deref-issue-127590.rs @@ -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); } } diff --git a/tests/ui/traits/suggest-dereferences/invalid-suggest-deref-issue-127590.stderr b/tests/ui/traits/suggest-dereferences/invalid-suggest-deref-issue-127590.stderr index 103fb7bbfe11c..07a54d574df49 100644 --- a/tests/ui/traits/suggest-dereferences/invalid-suggest-deref-issue-127590.stderr +++ b/tests/ui/traits/suggest-dereferences/invalid-suggest-deref-issue-127590.stderr @@ -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}>>` 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`.