diff --git a/src/tools/compiletest/src/runtest.rs b/src/tools/compiletest/src/runtest.rs index 285a831e77f65..569f1e49c7f3f 100644 --- a/src/tools/compiletest/src/runtest.rs +++ b/src/tools/compiletest/src/runtest.rs @@ -2491,7 +2491,7 @@ impl<'test> TestCx<'test> { rustc.arg(dir_opt); } CoverageMap => { - rustc.arg("-Cinstrument-coverage"); + rustc.args(["-Zunstable-options", "-Cinstrument-coverage=branch"]); // These tests only compile to LLVM IR, so they don't need the // profiler runtime to be present. rustc.arg("-Zno-profiler-runtime"); @@ -2501,7 +2501,7 @@ impl<'test> TestCx<'test> { rustc.arg("-Copt-level=2"); } CoverageRun => { - rustc.arg("-Cinstrument-coverage"); + rustc.args(["-Zunstable-options", "-Cinstrument-coverage=branch"]); // Coverage reports are sometimes sensitive to optimizations, // and the current snapshots assume `opt-level=2` unless // overridden by `compile-flags`. diff --git a/tests/coverage/abort.cov-map b/tests/coverage/abort.cov-map index 45d3795eff8f3..147dd1e4e9293 100644 --- a/tests/coverage/abort.cov-map +++ b/tests/coverage/abort.cov-map @@ -1,57 +1,79 @@ Function name: abort::main -Raw bytes (105): 0x[01, 01, 12, 01, 47, 05, 09, 03, 0d, 42, 11, 03, 0d, 11, 3e, 42, 11, 03, 0d, 3b, 15, 11, 3e, 42, 11, 03, 0d, 15, 36, 3b, 15, 11, 3e, 42, 11, 03, 0d, 05, 09, 0d, 01, 0d, 01, 01, 1b, 03, 02, 0b, 00, 18, 42, 01, 0c, 00, 19, 11, 00, 1a, 02, 0a, 3e, 02, 0a, 00, 0b, 3b, 02, 0c, 00, 19, 15, 00, 1a, 00, 31, 36, 00, 31, 00, 32, 33, 04, 0c, 00, 19, 05, 00, 1a, 00, 31, 09, 00, 31, 00, 32, 47, 01, 09, 00, 17, 0d, 02, 05, 01, 02] +Raw bytes (147): 0x[01, 01, 19, 01, 63, 05, 09, 03, 0d, 03, 0d, 5e, 11, 03, 0d, 5e, 11, 03, 0d, 11, 5a, 5e, 11, 03, 0d, 57, 15, 11, 5a, 5e, 11, 03, 0d, 57, 15, 11, 5a, 5e, 11, 03, 0d, 15, 52, 57, 15, 11, 5a, 5e, 11, 03, 0d, 05, 09, 11, 01, 0d, 01, 01, 1b, 03, 02, 0b, 00, 18, 20, 5e, 0d, 00, 0b, 00, 18, 5e, 01, 0c, 00, 19, 20, 11, 5a, 00, 0c, 00, 19, 11, 00, 1a, 02, 0a, 5a, 02, 0a, 00, 0b, 57, 02, 0c, 00, 19, 20, 15, 52, 00, 0c, 00, 19, 15, 00, 1a, 00, 31, 52, 00, 31, 00, 32, 4f, 04, 0c, 00, 19, 20, 05, 09, 00, 0c, 00, 19, 05, 00, 1a, 00, 31, 09, 00, 31, 00, 32, 63, 01, 09, 00, 17, 0d, 02, 05, 01, 02] Number of files: 1 - file 0 => global file 1 -Number of expressions: 18 -- expression 0 operands: lhs = Counter(0), rhs = Expression(17, Add) +Number of expressions: 25 +- expression 0 operands: lhs = Counter(0), rhs = Expression(24, Add) - expression 1 operands: lhs = Counter(1), rhs = Counter(2) - expression 2 operands: lhs = Expression(0, Add), rhs = Counter(3) -- expression 3 operands: lhs = Expression(16, Sub), rhs = Counter(4) -- expression 4 operands: lhs = Expression(0, Add), rhs = Counter(3) -- expression 5 operands: lhs = Counter(4), rhs = Expression(15, Sub) -- expression 6 operands: lhs = Expression(16, Sub), rhs = Counter(4) +- expression 3 operands: lhs = Expression(0, Add), rhs = Counter(3) +- expression 4 operands: lhs = Expression(23, Sub), rhs = Counter(4) +- expression 5 operands: lhs = Expression(0, Add), rhs = Counter(3) +- expression 6 operands: lhs = Expression(23, Sub), rhs = Counter(4) - expression 7 operands: lhs = Expression(0, Add), rhs = Counter(3) -- expression 8 operands: lhs = Expression(14, Add), rhs = Counter(5) -- expression 9 operands: lhs = Counter(4), rhs = Expression(15, Sub) -- expression 10 operands: lhs = Expression(16, Sub), rhs = Counter(4) -- expression 11 operands: lhs = Expression(0, Add), rhs = Counter(3) -- expression 12 operands: lhs = Counter(5), rhs = Expression(13, Sub) -- expression 13 operands: lhs = Expression(14, Add), rhs = Counter(5) -- expression 14 operands: lhs = Counter(4), rhs = Expression(15, Sub) -- expression 15 operands: lhs = Expression(16, Sub), rhs = Counter(4) -- expression 16 operands: lhs = Expression(0, Add), rhs = Counter(3) -- expression 17 operands: lhs = Counter(1), rhs = Counter(2) -Number of file 0 mappings: 13 +- expression 8 operands: lhs = Counter(4), rhs = Expression(22, Sub) +- expression 9 operands: lhs = Expression(23, Sub), rhs = Counter(4) +- expression 10 operands: lhs = Expression(0, Add), rhs = Counter(3) +- expression 11 operands: lhs = Expression(21, Add), rhs = Counter(5) +- expression 12 operands: lhs = Counter(4), rhs = Expression(22, Sub) +- expression 13 operands: lhs = Expression(23, Sub), rhs = Counter(4) +- expression 14 operands: lhs = Expression(0, Add), rhs = Counter(3) +- expression 15 operands: lhs = Expression(21, Add), rhs = Counter(5) +- expression 16 operands: lhs = Counter(4), rhs = Expression(22, Sub) +- expression 17 operands: lhs = Expression(23, Sub), rhs = Counter(4) +- expression 18 operands: lhs = Expression(0, Add), rhs = Counter(3) +- expression 19 operands: lhs = Counter(5), rhs = Expression(20, Sub) +- expression 20 operands: lhs = Expression(21, Add), rhs = Counter(5) +- expression 21 operands: lhs = Counter(4), rhs = Expression(22, Sub) +- expression 22 operands: lhs = Expression(23, Sub), rhs = Counter(4) +- expression 23 operands: lhs = Expression(0, Add), rhs = Counter(3) +- expression 24 operands: lhs = Counter(1), rhs = Counter(2) +Number of file 0 mappings: 17 - Code(Counter(0)) at (prev + 13, 1) to (start + 1, 27) - Code(Expression(0, Add)) at (prev + 2, 11) to (start + 0, 24) = (c0 + (c1 + c2)) -- Code(Expression(16, Sub)) at (prev + 1, 12) to (start + 0, 25) +- Branch { true: Expression(23, Sub), false: Counter(3) } at (prev + 0, 11) to (start + 0, 24) + true = ((c0 + (c1 + c2)) - c3) + false = c3 +- Code(Expression(23, Sub)) at (prev + 1, 12) to (start + 0, 25) = ((c0 + (c1 + c2)) - c3) +- Branch { true: Counter(4), false: Expression(22, Sub) } at (prev + 0, 12) to (start + 0, 25) + true = c4 + false = (((c0 + (c1 + c2)) - c3) - c4) - Code(Counter(4)) at (prev + 0, 26) to (start + 2, 10) -- Code(Expression(15, Sub)) at (prev + 2, 10) to (start + 0, 11) +- Code(Expression(22, Sub)) at (prev + 2, 10) to (start + 0, 11) = (((c0 + (c1 + c2)) - c3) - c4) -- Code(Expression(14, Add)) at (prev + 2, 12) to (start + 0, 25) +- Code(Expression(21, Add)) at (prev + 2, 12) to (start + 0, 25) = (c4 + (((c0 + (c1 + c2)) - c3) - c4)) +- Branch { true: Counter(5), false: Expression(20, Sub) } at (prev + 0, 12) to (start + 0, 25) + true = c5 + false = ((c4 + (((c0 + (c1 + c2)) - c3) - c4)) - c5) - Code(Counter(5)) at (prev + 0, 26) to (start + 0, 49) -- Code(Expression(13, Sub)) at (prev + 0, 49) to (start + 0, 50) +- Code(Expression(20, Sub)) at (prev + 0, 49) to (start + 0, 50) = ((c4 + (((c0 + (c1 + c2)) - c3) - c4)) - c5) -- Code(Expression(12, Add)) at (prev + 4, 12) to (start + 0, 25) +- Code(Expression(19, Add)) at (prev + 4, 12) to (start + 0, 25) = (c5 + ((c4 + (((c0 + (c1 + c2)) - c3) - c4)) - c5)) +- Branch { true: Counter(1), false: Counter(2) } at (prev + 0, 12) to (start + 0, 25) + true = c1 + false = c2 - Code(Counter(1)) at (prev + 0, 26) to (start + 0, 49) - Code(Counter(2)) at (prev + 0, 49) to (start + 0, 50) -- Code(Expression(17, Add)) at (prev + 1, 9) to (start + 0, 23) +- Code(Expression(24, Add)) at (prev + 1, 9) to (start + 0, 23) = (c1 + c2) - Code(Counter(3)) at (prev + 2, 5) to (start + 1, 2) Function name: abort::might_abort -Raw bytes (21): 0x[01, 01, 01, 01, 05, 03, 01, 04, 01, 01, 14, 05, 02, 09, 01, 24, 02, 02, 0c, 03, 02] +Raw bytes (28): 0x[01, 01, 01, 01, 05, 04, 01, 04, 01, 01, 14, 20, 05, 02, 01, 08, 00, 14, 05, 01, 09, 01, 24, 02, 02, 0c, 03, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 1 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) -Number of file 0 mappings: 3 +Number of file 0 mappings: 4 - Code(Counter(0)) at (prev + 4, 1) to (start + 1, 20) -- Code(Counter(1)) at (prev + 2, 9) to (start + 1, 36) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 1, 8) to (start + 0, 20) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 1, 9) to (start + 1, 36) - Code(Expression(0, Sub)) at (prev + 2, 12) to (start + 3, 2) = (c0 - c1) diff --git a/tests/coverage/abort.coverage b/tests/coverage/abort.coverage index ceef638678070..1c97e75a2ec01 100644 --- a/tests/coverage/abort.coverage +++ b/tests/coverage/abort.coverage @@ -3,6 +3,9 @@ LL| | LL| 12|extern "C" fn might_abort(should_abort: bool) { LL| 12| if should_abort { + ------------------ + | Branch (LL:8): [True: 0, False: 12] + ------------------ LL| 0| println!("aborting..."); LL| 0| panic!("panics and aborts"); LL| 12| } else { @@ -13,17 +16,29 @@ LL| 1|fn main() -> Result<(), u8> { LL| 1| let mut countdown = 10; LL| 11| while countdown > 0 { + ------------------ + | Branch (LL:11): [True: 10, False: 1] + ------------------ LL| 10| if countdown < 5 { + ------------------ + | Branch (LL:12): [True: 4, False: 6] + ------------------ LL| 4| might_abort(false); LL| 6| } LL| | // See discussion (below the `Notes` section) on coverage results for the closing brace. LL| 10| if countdown < 5 { might_abort(false); } // Counts for different regions on one line. ^4 ^6 + ------------------ + | Branch (LL:12): [True: 4, False: 6] + ------------------ LL| | // For the following example, the closing brace is the last character on the line. LL| | // This shows the character after the closing brace is highlighted, even if that next LL| | // character is a newline. LL| 10| if countdown < 5 { might_abort(false); } ^4 ^6 + ------------------ + | Branch (LL:12): [True: 4, False: 6] + ------------------ LL| 10| countdown -= 1; LL| | } LL| 1| Ok(()) diff --git a/tests/coverage/assert.cov-map b/tests/coverage/assert.cov-map index dd413123de729..4cdd81278c63d 100644 --- a/tests/coverage/assert.cov-map +++ b/tests/coverage/assert.cov-map @@ -1,40 +1,55 @@ Function name: assert::main -Raw bytes (65): 0x[01, 01, 08, 01, 1b, 05, 1f, 09, 0d, 03, 11, 16, 05, 03, 11, 05, 1f, 09, 0d, 09, 01, 09, 01, 01, 1b, 03, 02, 0b, 00, 18, 16, 01, 0c, 00, 1a, 05, 00, 1b, 02, 0a, 12, 02, 13, 00, 20, 09, 00, 21, 02, 0a, 0d, 02, 0a, 00, 0b, 1b, 01, 09, 00, 17, 11, 02, 05, 01, 02] +Raw bytes (92): 0x[01, 01, 0b, 01, 27, 05, 2b, 09, 0d, 03, 11, 03, 11, 22, 05, 03, 11, 22, 05, 03, 11, 05, 2b, 09, 0d, 0c, 01, 09, 01, 01, 1b, 03, 02, 0b, 00, 18, 20, 22, 11, 00, 0b, 00, 18, 22, 01, 0c, 00, 1a, 20, 05, 1e, 00, 0c, 00, 1a, 05, 00, 1b, 02, 0a, 1e, 02, 13, 00, 20, 20, 09, 0d, 00, 13, 00, 20, 09, 00, 21, 02, 0a, 0d, 02, 0a, 00, 0b, 27, 01, 09, 00, 17, 11, 02, 05, 01, 02] Number of files: 1 - file 0 => global file 1 -Number of expressions: 8 -- expression 0 operands: lhs = Counter(0), rhs = Expression(6, Add) -- expression 1 operands: lhs = Counter(1), rhs = Expression(7, Add) +Number of expressions: 11 +- expression 0 operands: lhs = Counter(0), rhs = Expression(9, Add) +- expression 1 operands: lhs = Counter(1), rhs = Expression(10, Add) - expression 2 operands: lhs = Counter(2), rhs = Counter(3) - expression 3 operands: lhs = Expression(0, Add), rhs = Counter(4) -- expression 4 operands: lhs = Expression(5, Sub), rhs = Counter(1) -- expression 5 operands: lhs = Expression(0, Add), rhs = Counter(4) -- expression 6 operands: lhs = Counter(1), rhs = Expression(7, Add) -- expression 7 operands: lhs = Counter(2), rhs = Counter(3) -Number of file 0 mappings: 9 +- expression 4 operands: lhs = Expression(0, Add), rhs = Counter(4) +- expression 5 operands: lhs = Expression(8, Sub), rhs = Counter(1) +- expression 6 operands: lhs = Expression(0, Add), rhs = Counter(4) +- expression 7 operands: lhs = Expression(8, Sub), rhs = Counter(1) +- expression 8 operands: lhs = Expression(0, Add), rhs = Counter(4) +- expression 9 operands: lhs = Counter(1), rhs = Expression(10, Add) +- expression 10 operands: lhs = Counter(2), rhs = Counter(3) +Number of file 0 mappings: 12 - Code(Counter(0)) at (prev + 9, 1) to (start + 1, 27) - Code(Expression(0, Add)) at (prev + 2, 11) to (start + 0, 24) = (c0 + (c1 + (c2 + c3))) -- Code(Expression(5, Sub)) at (prev + 1, 12) to (start + 0, 26) +- Branch { true: Expression(8, Sub), false: Counter(4) } at (prev + 0, 11) to (start + 0, 24) + true = ((c0 + (c1 + (c2 + c3))) - c4) + false = c4 +- Code(Expression(8, Sub)) at (prev + 1, 12) to (start + 0, 26) = ((c0 + (c1 + (c2 + c3))) - c4) +- Branch { true: Counter(1), false: Expression(7, Sub) } at (prev + 0, 12) to (start + 0, 26) + true = c1 + false = (((c0 + (c1 + (c2 + c3))) - c4) - c1) - Code(Counter(1)) at (prev + 0, 27) to (start + 2, 10) -- Code(Expression(4, Sub)) at (prev + 2, 19) to (start + 0, 32) +- Code(Expression(7, Sub)) at (prev + 2, 19) to (start + 0, 32) = (((c0 + (c1 + (c2 + c3))) - c4) - c1) +- Branch { true: Counter(2), false: Counter(3) } at (prev + 0, 19) to (start + 0, 32) + true = c2 + false = c3 - Code(Counter(2)) at (prev + 0, 33) to (start + 2, 10) - Code(Counter(3)) at (prev + 2, 10) to (start + 0, 11) -- Code(Expression(6, Add)) at (prev + 1, 9) to (start + 0, 23) +- Code(Expression(9, Add)) at (prev + 1, 9) to (start + 0, 23) = (c1 + (c2 + c3)) - Code(Counter(4)) at (prev + 2, 5) to (start + 1, 2) Function name: assert::might_fail_assert -Raw bytes (21): 0x[01, 01, 01, 01, 05, 03, 01, 04, 01, 02, 0f, 02, 02, 25, 00, 3d, 05, 01, 01, 00, 02] +Raw bytes (28): 0x[01, 01, 01, 01, 05, 04, 01, 04, 01, 02, 0f, 20, 05, 02, 02, 05, 00, 3e, 02, 00, 25, 00, 3d, 05, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 1 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) -Number of file 0 mappings: 3 +Number of file 0 mappings: 4 - Code(Counter(0)) at (prev + 4, 1) to (start + 2, 15) -- Code(Expression(0, Sub)) at (prev + 2, 37) to (start + 0, 61) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 2, 5) to (start + 0, 62) + true = c1 + false = (c0 - c1) +- Code(Expression(0, Sub)) at (prev + 0, 37) to (start + 0, 61) = (c0 - c1) - Code(Counter(1)) at (prev + 1, 1) to (start + 0, 2) diff --git a/tests/coverage/assert.coverage b/tests/coverage/assert.coverage index 8b997724c4a75..e8c031067c4bb 100644 --- a/tests/coverage/assert.coverage +++ b/tests/coverage/assert.coverage @@ -5,14 +5,26 @@ LL| 4| println!("does 1 + 1 = {}?", one_plus_one); LL| 4| assert_eq!(1 + 1, one_plus_one, "the argument was wrong"); ^1 + ------------------ + | Branch (LL:5): [True: 3, False: 1] + ------------------ LL| 3|} LL| | LL| 1|fn main() -> Result<(), u8> { LL| 1| let mut countdown = 10; LL| 11| while countdown > 0 { + ------------------ + | Branch (LL:11): [True: 11, False: 0] + ------------------ LL| 11| if countdown == 1 { + ------------------ + | Branch (LL:12): [True: 1, False: 10] + ------------------ LL| 1| might_fail_assert(3); LL| 10| } else if countdown < 5 { + ------------------ + | Branch (LL:19): [True: 3, False: 6] + ------------------ LL| 3| might_fail_assert(2); LL| 6| } LL| 10| countdown -= 1; diff --git a/tests/coverage/async.cov-map b/tests/coverage/async.cov-map index e4354a1af8773..91a4a4ae84377 100644 --- a/tests/coverage/async.cov-map +++ b/tests/coverage/async.cov-map @@ -7,15 +7,18 @@ Number of file 0 mappings: 1 - Code(Counter(0)) at (prev + 5, 1) to (start + 0, 25) Function name: async::c::{closure#0} -Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 05, 19, 01, 0e, 05, 02, 09, 00, 0a, 02, 02, 09, 00, 0a, 07, 02, 01, 00, 02] +Raw bytes (35): 0x[01, 01, 02, 01, 05, 05, 02, 05, 01, 05, 19, 01, 0e, 20, 05, 02, 01, 08, 00, 0e, 05, 01, 09, 00, 0a, 02, 02, 09, 00, 0a, 07, 02, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 5, 25) to (start + 1, 14) -- Code(Counter(1)) at (prev + 2, 9) to (start + 0, 10) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 1, 8) to (start + 0, 14) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 1, 9) to (start + 0, 10) - Code(Expression(0, Sub)) at (prev + 2, 9) to (start + 0, 10) = (c0 - c1) - Code(Expression(1, Add)) at (prev + 2, 1) to (start + 0, 2) @@ -146,19 +149,25 @@ Number of file 0 mappings: 1 - Code(Counter(0)) at (prev + 21, 1) to (start + 0, 23) Function name: async::g::{closure#0} (unused) -Raw bytes (69): 0x[01, 01, 00, 0d, 00, 15, 17, 01, 0c, 00, 02, 09, 00, 0a, 00, 00, 0e, 00, 11, 00, 00, 12, 00, 17, 00, 00, 1b, 00, 1c, 00, 00, 20, 00, 22, 00, 01, 09, 00, 0a, 00, 00, 0e, 00, 11, 00, 00, 12, 00, 17, 00, 00, 1b, 00, 1c, 00, 00, 20, 00, 22, 00, 01, 0e, 00, 10, 00, 02, 01, 00, 02] +Raw bytes (83): 0x[01, 01, 00, 0f, 00, 15, 17, 01, 0c, 00, 02, 09, 00, 0a, 00, 00, 0e, 00, 11, 20, 00, 00, 00, 0e, 00, 1c, 00, 00, 12, 00, 17, 00, 00, 1b, 00, 1c, 00, 00, 20, 00, 22, 00, 01, 09, 00, 0a, 00, 00, 0e, 00, 11, 20, 00, 00, 00, 0e, 00, 1c, 00, 00, 12, 00, 17, 00, 00, 1b, 00, 1c, 00, 00, 20, 00, 22, 00, 01, 0e, 00, 10, 00, 02, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 0 -Number of file 0 mappings: 13 +Number of file 0 mappings: 15 - Code(Zero) at (prev + 21, 23) to (start + 1, 12) - Code(Zero) at (prev + 2, 9) to (start + 0, 10) - Code(Zero) at (prev + 0, 14) to (start + 0, 17) +- Branch { true: Zero, false: Zero } at (prev + 0, 14) to (start + 0, 28) + true = Zero + false = Zero - Code(Zero) at (prev + 0, 18) to (start + 0, 23) - Code(Zero) at (prev + 0, 27) to (start + 0, 28) - Code(Zero) at (prev + 0, 32) to (start + 0, 34) - Code(Zero) at (prev + 1, 9) to (start + 0, 10) - Code(Zero) at (prev + 0, 14) to (start + 0, 17) +- Branch { true: Zero, false: Zero } at (prev + 0, 14) to (start + 0, 28) + true = Zero + false = Zero - Code(Zero) at (prev + 0, 18) to (start + 0, 23) - Code(Zero) at (prev + 0, 27) to (start + 0, 28) - Code(Zero) at (prev + 0, 32) to (start + 0, 34) @@ -174,14 +183,17 @@ Number of file 0 mappings: 1 - Code(Counter(0)) at (prev + 29, 1) to (start + 0, 22) Function name: async::h::{closure#0} (unused) -Raw bytes (44): 0x[01, 01, 00, 08, 00, 1d, 16, 03, 0c, 00, 04, 09, 00, 0a, 00, 00, 0e, 00, 13, 00, 00, 14, 00, 19, 00, 00, 1a, 00, 1b, 00, 00, 20, 00, 22, 00, 01, 0e, 00, 10, 00, 02, 01, 00, 02] +Raw bytes (51): 0x[01, 01, 00, 09, 00, 1d, 16, 03, 0c, 00, 04, 09, 00, 0a, 00, 00, 0e, 00, 13, 20, 00, 00, 00, 0e, 00, 1c, 00, 00, 14, 00, 19, 00, 00, 1a, 00, 1b, 00, 00, 20, 00, 22, 00, 01, 0e, 00, 10, 00, 02, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 0 -Number of file 0 mappings: 8 +Number of file 0 mappings: 9 - Code(Zero) at (prev + 29, 22) to (start + 3, 12) - Code(Zero) at (prev + 4, 9) to (start + 0, 10) - Code(Zero) at (prev + 0, 14) to (start + 0, 19) +- Branch { true: Zero, false: Zero } at (prev + 0, 14) to (start + 0, 28) + true = Zero + false = Zero - Code(Zero) at (prev + 0, 20) to (start + 0, 25) - Code(Zero) at (prev + 0, 26) to (start + 0, 27) - Code(Zero) at (prev + 0, 32) to (start + 0, 34) @@ -197,58 +209,77 @@ Number of file 0 mappings: 1 - Code(Counter(0)) at (prev + 38, 1) to (start + 0, 19) Function name: async::i::{closure#0} -Raw bytes (78): 0x[01, 01, 02, 07, 21, 19, 1d, 0e, 01, 26, 13, 04, 0c, 0d, 05, 09, 00, 0a, 01, 00, 0e, 00, 12, 05, 00, 13, 00, 18, 09, 00, 1c, 00, 21, 0d, 00, 27, 00, 2a, 15, 00, 2b, 00, 30, 1d, 01, 09, 00, 0a, 11, 00, 0e, 00, 11, 25, 00, 12, 00, 17, 29, 00, 1b, 00, 20, 1d, 00, 24, 00, 26, 21, 01, 0e, 00, 10, 03, 02, 01, 00, 02] +Raw bytes (96): 0x[01, 01, 04, 09, 0d, 29, 1d, 0f, 21, 19, 1d, 10, 01, 26, 13, 04, 0c, 0d, 05, 09, 00, 0a, 01, 00, 0e, 00, 12, 20, 0d, 02, 00, 0e, 00, 21, 05, 00, 13, 00, 18, 09, 00, 1c, 00, 21, 0d, 00, 27, 00, 2a, 15, 00, 2b, 00, 30, 1d, 01, 09, 00, 0a, 11, 00, 0e, 00, 11, 20, 1d, 06, 00, 0e, 00, 20, 25, 00, 12, 00, 17, 29, 00, 1b, 00, 20, 1d, 00, 24, 00, 26, 21, 01, 0e, 00, 10, 0b, 02, 01, 00, 02] Number of files: 1 - file 0 => global file 1 -Number of expressions: 2 -- expression 0 operands: lhs = Expression(1, Add), rhs = Counter(8) -- expression 1 operands: lhs = Counter(6), rhs = Counter(7) -Number of file 0 mappings: 14 +Number of expressions: 4 +- expression 0 operands: lhs = Counter(2), rhs = Counter(3) +- expression 1 operands: lhs = Counter(10), rhs = Counter(7) +- expression 2 operands: lhs = Expression(3, Add), rhs = Counter(8) +- expression 3 operands: lhs = Counter(6), rhs = Counter(7) +Number of file 0 mappings: 16 - Code(Counter(0)) at (prev + 38, 19) to (start + 4, 12) - Code(Counter(3)) at (prev + 5, 9) to (start + 0, 10) - Code(Counter(0)) at (prev + 0, 14) to (start + 0, 18) +- Branch { true: Counter(3), false: Expression(0, Sub) } at (prev + 0, 14) to (start + 0, 33) + true = c3 + false = (c2 - c3) - Code(Counter(1)) at (prev + 0, 19) to (start + 0, 24) - Code(Counter(2)) at (prev + 0, 28) to (start + 0, 33) - Code(Counter(3)) at (prev + 0, 39) to (start + 0, 42) - Code(Counter(5)) at (prev + 0, 43) to (start + 0, 48) - Code(Counter(7)) at (prev + 1, 9) to (start + 0, 10) - Code(Counter(4)) at (prev + 0, 14) to (start + 0, 17) +- Branch { true: Counter(7), false: Expression(1, Sub) } at (prev + 0, 14) to (start + 0, 32) + true = c7 + false = (c10 - c7) - Code(Counter(9)) at (prev + 0, 18) to (start + 0, 23) - Code(Counter(10)) at (prev + 0, 27) to (start + 0, 32) - Code(Counter(7)) at (prev + 0, 36) to (start + 0, 38) - Code(Counter(8)) at (prev + 1, 14) to (start + 0, 16) -- Code(Expression(0, Add)) at (prev + 2, 1) to (start + 0, 2) +- Code(Expression(2, Add)) at (prev + 2, 1) to (start + 0, 2) = ((c6 + c7) + c8) Function name: async::j -Raw bytes (53): 0x[01, 01, 02, 07, 0d, 05, 09, 09, 01, 31, 01, 13, 0c, 05, 14, 09, 00, 0a, 01, 00, 0e, 00, 1b, 05, 00, 1f, 00, 27, 09, 01, 09, 00, 0a, 11, 00, 0e, 00, 1a, 09, 00, 1e, 00, 20, 0d, 01, 0e, 00, 10, 03, 02, 01, 00, 02] +Raw bytes (71): 0x[01, 01, 04, 01, 05, 11, 09, 0f, 0d, 05, 09, 0b, 01, 31, 01, 13, 0c, 05, 14, 09, 00, 0a, 01, 00, 0e, 00, 1b, 20, 05, 02, 00, 0e, 00, 1b, 05, 00, 1f, 00, 27, 09, 01, 09, 00, 0a, 11, 00, 0e, 00, 1a, 20, 09, 06, 00, 0e, 00, 1a, 09, 00, 1e, 00, 20, 0d, 01, 0e, 00, 10, 0b, 02, 01, 00, 02] Number of files: 1 - file 0 => global file 1 -Number of expressions: 2 -- expression 0 operands: lhs = Expression(1, Add), rhs = Counter(3) -- expression 1 operands: lhs = Counter(1), rhs = Counter(2) -Number of file 0 mappings: 9 +Number of expressions: 4 +- expression 0 operands: lhs = Counter(0), rhs = Counter(1) +- expression 1 operands: lhs = Counter(4), rhs = Counter(2) +- expression 2 operands: lhs = Expression(3, Add), rhs = Counter(3) +- expression 3 operands: lhs = Counter(1), rhs = Counter(2) +Number of file 0 mappings: 11 - Code(Counter(0)) at (prev + 49, 1) to (start + 19, 12) - Code(Counter(1)) at (prev + 20, 9) to (start + 0, 10) - Code(Counter(0)) at (prev + 0, 14) to (start + 0, 27) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 0, 14) to (start + 0, 27) + true = c1 + false = (c0 - c1) - Code(Counter(1)) at (prev + 0, 31) to (start + 0, 39) - Code(Counter(2)) at (prev + 1, 9) to (start + 0, 10) - Code(Counter(4)) at (prev + 0, 14) to (start + 0, 26) +- Branch { true: Counter(2), false: Expression(1, Sub) } at (prev + 0, 14) to (start + 0, 26) + true = c2 + false = (c4 - c2) - Code(Counter(2)) at (prev + 0, 30) to (start + 0, 32) - Code(Counter(3)) at (prev + 1, 14) to (start + 0, 16) -- Code(Expression(0, Add)) at (prev + 2, 1) to (start + 0, 2) +- Code(Expression(2, Add)) at (prev + 2, 1) to (start + 0, 2) = ((c1 + c2) + c3) Function name: async::j::c -Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 33, 05, 01, 12, 05, 02, 0d, 00, 0e, 02, 0a, 0d, 00, 0e, 07, 02, 05, 00, 06] +Raw bytes (35): 0x[01, 01, 02, 01, 05, 05, 02, 05, 01, 33, 05, 01, 12, 20, 05, 02, 01, 0c, 00, 12, 05, 01, 0d, 00, 0e, 02, 0a, 0d, 00, 0e, 07, 02, 05, 00, 06] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 51, 5) to (start + 1, 18) -- Code(Counter(1)) at (prev + 2, 13) to (start + 0, 14) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 1, 12) to (start + 0, 18) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 1, 13) to (start + 0, 14) - Code(Expression(0, Sub)) at (prev + 10, 13) to (start + 0, 14) = (c0 - c1) - Code(Expression(1, Add)) at (prev + 2, 5) to (start + 0, 6) diff --git a/tests/coverage/async.coverage b/tests/coverage/async.coverage index 07bc16c2d926c..fb949163d5399 100644 --- a/tests/coverage/async.coverage +++ b/tests/coverage/async.coverage @@ -4,6 +4,9 @@ LL| | LL| 1|async fn c(x: u8) -> u8 { LL| 1| if x == 8 { + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| 1| 1 LL| | } else { LL| 0| 0 @@ -21,7 +24,13 @@ LL| 1|pub async fn g(x: u8) { LL| 0| match x { LL| 0| y if e().await == y => (), + ------------------ + | Branch (LL:14): [Folded - Ignored] + ------------------ LL| 0| y if f().await == y => (), + ------------------ + | Branch (LL:14): [Folded - Ignored] + ------------------ LL| 0| _ => (), LL| | } LL| 0|} @@ -31,6 +40,9 @@ LL| 0| // displayed with `llvm-cov show` in color-mode). LL| 0| match x { LL| 0| y if foo().await[y] => (), + ------------------ + | Branch (LL:14): [Folded - Ignored] + ------------------ LL| 0| _ => (), LL| | } LL| 0|} @@ -42,8 +54,14 @@ LL| 1| match x { LL| 1| y if c(x).await == y + 1 => { d().await; } ^0 ^0 ^0 ^0 + ------------------ + | Branch (LL:14): [True: 0, False: 1] + ------------------ LL| 1| y if f().await == y + 1 => (), ^0 ^0 ^0 + ------------------ + | Branch (LL:14): [True: 0, False: 1] + ------------------ LL| 1| _ => (), LL| | } LL| 1|} @@ -52,6 +70,9 @@ LL| 1| // non-async versions of `c()`, `d()`, and `f()` to make it similar to async `i()`. LL| 1| fn c(x: u8) -> u8 { LL| 1| if x == 8 { + ------------------ + | Branch (LL:12): [True: 0, False: 1] + ------------------ LL| 1| 1 // This line appears covered, but the 1-character expression span covering the `1` ^0 LL| 1| // is not executed. (`llvm-cov show` displays a `^0` below the `1` ). This is because @@ -72,8 +93,14 @@ LL| 1| match x { LL| 1| y if c(x) == y + 1 => { d(); } ^0 ^0 + ------------------ + | Branch (LL:14): [True: 0, False: 1] + ------------------ LL| 1| y if f() == y + 1 => (), ^0 ^0 + ------------------ + | Branch (LL:14): [True: 0, False: 1] + ------------------ LL| 1| _ => (), LL| | } LL| 1|} diff --git a/tests/coverage/async2.cov-map b/tests/coverage/async2.cov-map index 23f26ee4e5f66..ba16e102d9b5c 100644 --- a/tests/coverage/async2.cov-map +++ b/tests/coverage/async2.cov-map @@ -7,15 +7,18 @@ Number of file 0 mappings: 1 - Code(Counter(0)) at (prev + 11, 1) to (start + 0, 23) Function name: async2::async_func::{closure#0} -Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 0b, 17, 03, 09, 05, 03, 0a, 02, 06, 02, 02, 06, 00, 07, 07, 01, 01, 00, 02] +Raw bytes (35): 0x[01, 01, 02, 01, 05, 05, 02, 05, 01, 0b, 17, 03, 09, 20, 05, 02, 03, 08, 00, 09, 05, 00, 0a, 02, 06, 02, 02, 06, 00, 07, 07, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 11, 23) to (start + 3, 9) -- Code(Counter(1)) at (prev + 3, 10) to (start + 2, 6) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 3, 8) to (start + 0, 9) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 10) to (start + 2, 6) - Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7) = (c0 - c1) - Code(Expression(1, Add)) at (prev + 1, 1) to (start + 0, 2) @@ -118,14 +121,17 @@ Number of file 0 mappings: 1 - Code(Counter(0)) at (prev + 23, 1) to (start + 7, 2) Function name: async2::non_async_func -Raw bytes (26): 0x[01, 01, 01, 05, 00, 04, 01, 03, 01, 03, 09, 05, 03, 0a, 02, 06, 00, 02, 06, 00, 07, 03, 01, 01, 00, 02] +Raw bytes (33): 0x[01, 01, 01, 05, 00, 05, 01, 03, 01, 03, 09, 20, 05, 00, 03, 08, 00, 09, 05, 00, 0a, 02, 06, 00, 02, 06, 00, 07, 03, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 1 - expression 0 operands: lhs = Counter(1), rhs = Zero -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 3, 1) to (start + 3, 9) -- Code(Counter(1)) at (prev + 3, 10) to (start + 2, 6) +- Branch { true: Counter(1), false: Zero } at (prev + 3, 8) to (start + 0, 9) + true = c1 + false = Zero +- Code(Counter(1)) at (prev + 0, 10) to (start + 2, 6) - Code(Zero) at (prev + 2, 6) to (start + 0, 7) - Code(Expression(0, Add)) at (prev + 1, 1) to (start + 0, 2) = (c1 + Zero) diff --git a/tests/coverage/async2.coverage b/tests/coverage/async2.coverage index fcb0a3aed64e7..314bef7c35bc9 100644 --- a/tests/coverage/async2.coverage +++ b/tests/coverage/async2.coverage @@ -4,6 +4,9 @@ LL| 1| println!("non_async_func was covered"); LL| 1| let b = true; LL| 1| if b { + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| 1| println!("non_async_func println in block"); LL| 1| } ^0 @@ -13,6 +16,9 @@ LL| 1| println!("async_func was covered"); LL| 1| let b = true; LL| 1| if b { + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| 1| println!("async_func println in block"); LL| 1| } ^0 diff --git a/tests/coverage/bad_counter_ids.cov-map b/tests/coverage/bad_counter_ids.cov-map index 0b8081acfa6d8..f76b99fa3e04d 100644 --- a/tests/coverage/bad_counter_ids.cov-map +++ b/tests/coverage/bad_counter_ids.cov-map @@ -15,84 +15,110 @@ Number of file 0 mappings: 1 - Code(Counter(0)) at (prev + 12, 10) to (start + 0, 15) Function name: bad_counter_ids::eq_bad -Raw bytes (14): 0x[01, 01, 00, 02, 01, 23, 01, 02, 1f, 00, 03, 01, 00, 02] +Raw bytes (23): 0x[01, 01, 01, 01, 00, 03, 01, 23, 01, 02, 1f, 20, 00, 02, 02, 05, 00, 1f, 00, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 -Number of expressions: 0 -Number of file 0 mappings: 2 +Number of expressions: 1 +- expression 0 operands: lhs = Counter(0), rhs = Zero +Number of file 0 mappings: 3 - Code(Counter(0)) at (prev + 35, 1) to (start + 2, 31) -- Code(Zero) at (prev + 3, 1) to (start + 0, 2) +- Branch { true: Zero, false: Expression(0, Sub) } at (prev + 2, 5) to (start + 0, 31) + true = Zero + false = (c0 - Zero) +- Code(Zero) at (prev + 1, 1) to (start + 0, 2) Function name: bad_counter_ids::eq_bad_message -Raw bytes (21): 0x[01, 01, 01, 01, 00, 03, 01, 28, 01, 02, 0f, 02, 02, 20, 00, 2b, 00, 01, 01, 00, 02] +Raw bytes (28): 0x[01, 01, 01, 01, 00, 04, 01, 28, 01, 02, 0f, 20, 00, 02, 02, 05, 00, 2c, 02, 00, 20, 00, 2b, 00, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 1 - expression 0 operands: lhs = Counter(0), rhs = Zero -Number of file 0 mappings: 3 +Number of file 0 mappings: 4 - Code(Counter(0)) at (prev + 40, 1) to (start + 2, 15) -- Code(Expression(0, Sub)) at (prev + 2, 32) to (start + 0, 43) +- Branch { true: Zero, false: Expression(0, Sub) } at (prev + 2, 5) to (start + 0, 44) + true = Zero + false = (c0 - Zero) +- Code(Expression(0, Sub)) at (prev + 0, 32) to (start + 0, 43) = (c0 - Zero) - Code(Zero) at (prev + 1, 1) to (start + 0, 2) Function name: bad_counter_ids::eq_good -Raw bytes (14): 0x[01, 01, 00, 02, 01, 0f, 01, 02, 1f, 05, 03, 01, 00, 02] +Raw bytes (23): 0x[01, 01, 01, 01, 05, 03, 01, 0f, 01, 02, 1f, 20, 05, 02, 02, 05, 00, 1f, 05, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 -Number of expressions: 0 -Number of file 0 mappings: 2 +Number of expressions: 1 +- expression 0 operands: lhs = Counter(0), rhs = Counter(1) +Number of file 0 mappings: 3 - Code(Counter(0)) at (prev + 15, 1) to (start + 2, 31) -- Code(Counter(1)) at (prev + 3, 1) to (start + 0, 2) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 2, 5) to (start + 0, 31) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 1, 1) to (start + 0, 2) Function name: bad_counter_ids::eq_good_message -Raw bytes (19): 0x[01, 01, 00, 03, 01, 14, 01, 02, 0f, 00, 02, 20, 00, 2b, 05, 01, 01, 00, 02] +Raw bytes (26): 0x[01, 01, 00, 04, 01, 14, 01, 02, 0f, 20, 05, 00, 02, 05, 00, 2c, 00, 00, 20, 00, 2b, 05, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 0 -Number of file 0 mappings: 3 +Number of file 0 mappings: 4 - Code(Counter(0)) at (prev + 20, 1) to (start + 2, 15) -- Code(Zero) at (prev + 2, 32) to (start + 0, 43) +- Branch { true: Counter(1), false: Zero } at (prev + 2, 5) to (start + 0, 44) + true = c1 + false = Zero +- Code(Zero) at (prev + 0, 32) to (start + 0, 43) - Code(Counter(1)) at (prev + 1, 1) to (start + 0, 2) Function name: bad_counter_ids::ne_bad -Raw bytes (14): 0x[01, 01, 00, 02, 01, 2d, 01, 02, 1f, 00, 03, 01, 00, 02] +Raw bytes (21): 0x[01, 01, 00, 03, 01, 2d, 01, 02, 1f, 20, 05, 00, 02, 05, 00, 1f, 00, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 0 -Number of file 0 mappings: 2 +Number of file 0 mappings: 3 - Code(Counter(0)) at (prev + 45, 1) to (start + 2, 31) -- Code(Zero) at (prev + 3, 1) to (start + 0, 2) +- Branch { true: Counter(1), false: Zero } at (prev + 2, 5) to (start + 0, 31) + true = c1 + false = Zero +- Code(Zero) at (prev + 1, 1) to (start + 0, 2) Function name: bad_counter_ids::ne_bad_message -Raw bytes (19): 0x[01, 01, 00, 03, 01, 32, 01, 02, 0f, 05, 02, 20, 00, 2b, 00, 01, 01, 00, 02] +Raw bytes (26): 0x[01, 01, 00, 04, 01, 32, 01, 02, 0f, 20, 05, 00, 02, 05, 00, 2c, 05, 00, 20, 00, 2b, 00, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 0 -Number of file 0 mappings: 3 +Number of file 0 mappings: 4 - Code(Counter(0)) at (prev + 50, 1) to (start + 2, 15) -- Code(Counter(1)) at (prev + 2, 32) to (start + 0, 43) +- Branch { true: Counter(1), false: Zero } at (prev + 2, 5) to (start + 0, 44) + true = c1 + false = Zero +- Code(Counter(1)) at (prev + 0, 32) to (start + 0, 43) - Code(Zero) at (prev + 1, 1) to (start + 0, 2) Function name: bad_counter_ids::ne_good -Raw bytes (16): 0x[01, 01, 01, 01, 00, 02, 01, 19, 01, 02, 1f, 02, 03, 01, 00, 02] +Raw bytes (23): 0x[01, 01, 01, 01, 00, 03, 01, 19, 01, 02, 1f, 20, 00, 02, 02, 05, 00, 1f, 02, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 1 - expression 0 operands: lhs = Counter(0), rhs = Zero -Number of file 0 mappings: 2 +Number of file 0 mappings: 3 - Code(Counter(0)) at (prev + 25, 1) to (start + 2, 31) -- Code(Expression(0, Sub)) at (prev + 3, 1) to (start + 0, 2) +- Branch { true: Zero, false: Expression(0, Sub) } at (prev + 2, 5) to (start + 0, 31) + true = Zero + false = (c0 - Zero) +- Code(Expression(0, Sub)) at (prev + 1, 1) to (start + 0, 2) = (c0 - Zero) Function name: bad_counter_ids::ne_good_message -Raw bytes (21): 0x[01, 01, 01, 01, 00, 03, 01, 1e, 01, 02, 0f, 00, 02, 20, 00, 2b, 02, 01, 01, 00, 02] +Raw bytes (28): 0x[01, 01, 01, 01, 00, 04, 01, 1e, 01, 02, 0f, 20, 00, 02, 02, 05, 00, 2c, 00, 00, 20, 00, 2b, 02, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 1 - expression 0 operands: lhs = Counter(0), rhs = Zero -Number of file 0 mappings: 3 +Number of file 0 mappings: 4 - Code(Counter(0)) at (prev + 30, 1) to (start + 2, 15) -- Code(Zero) at (prev + 2, 32) to (start + 0, 43) +- Branch { true: Zero, false: Expression(0, Sub) } at (prev + 2, 5) to (start + 0, 44) + true = Zero + false = (c0 - Zero) +- Code(Zero) at (prev + 0, 32) to (start + 0, 43) - Code(Expression(0, Sub)) at (prev + 1, 1) to (start + 0, 2) = (c0 - Zero) diff --git a/tests/coverage/bad_counter_ids.coverage b/tests/coverage/bad_counter_ids.coverage index d69ebf160ea64..cd54461b89c9b 100644 --- a/tests/coverage/bad_counter_ids.coverage +++ b/tests/coverage/bad_counter_ids.coverage @@ -15,43 +15,67 @@ LL| 1|fn eq_good() { LL| 1| println!("a"); LL| 1| assert_eq!(Foo(1), Foo(1)); + ------------------ + | Branch (LL:5): [True: 1, False: 0] + ------------------ LL| 1|} LL| | LL| 1|fn eq_good_message() { LL| 1| println!("b"); LL| 1| assert_eq!(Foo(1), Foo(1), "message b"); ^0 + ------------------ + | Branch (LL:5): [True: 1, False: 0] + ------------------ LL| 1|} LL| | LL| 1|fn ne_good() { LL| 1| println!("c"); LL| 1| assert_ne!(Foo(1), Foo(3)); + ------------------ + | Branch (LL:5): [True: 0, False: 1] + ------------------ LL| 1|} LL| | LL| 1|fn ne_good_message() { LL| 1| println!("d"); LL| 1| assert_ne!(Foo(1), Foo(3), "message d"); ^0 + ------------------ + | Branch (LL:5): [True: 0, False: 1] + ------------------ LL| 1|} LL| | LL| 1|fn eq_bad() { LL| 1| println!("e"); LL| 1| assert_eq!(Foo(1), Foo(3)); + ------------------ + | Branch (LL:5): [True: 0, False: 1] + ------------------ LL| 0|} LL| | LL| 1|fn eq_bad_message() { LL| 1| println!("f"); LL| 1| assert_eq!(Foo(1), Foo(3), "message f"); + ------------------ + | Branch (LL:5): [True: 0, False: 1] + ------------------ LL| 0|} LL| | LL| 1|fn ne_bad() { LL| 1| println!("g"); LL| 1| assert_ne!(Foo(1), Foo(1)); + ------------------ + | Branch (LL:5): [True: 1, False: 0] + ------------------ LL| 0|} LL| | LL| 1|fn ne_bad_message() { LL| 1| println!("h"); LL| 1| assert_ne!(Foo(1), Foo(1), "message h"); + ------------------ + | Branch (LL:5): [True: 1, False: 0] + ------------------ LL| 0|} LL| | LL| |#[coverage(off)] diff --git a/tests/coverage/closure.cov-map b/tests/coverage/closure.cov-map index 522c1e73afe3d..2082c7b511ea7 100644 --- a/tests/coverage/closure.cov-map +++ b/tests/coverage/closure.cov-map @@ -1,11 +1,11 @@ Function name: closure::main -Raw bytes (128): 0x[01, 01, 02, 01, 05, 05, 02, 18, 01, 08, 01, 0f, 0d, 01, 16, 0e, 06, 0a, 01, 10, 05, 13, 0d, 01, 1a, 0e, 06, 0a, 01, 10, 05, 0c, 16, 01, 16, 05, 0d, 18, 01, 19, 09, 01, 1e, 01, 04, 09, 00, 29, 01, 01, 09, 00, 2d, 01, 01, 09, 00, 24, 01, 05, 09, 00, 24, 01, 02, 09, 00, 21, 01, 04, 09, 00, 21, 01, 04, 09, 00, 28, 01, 09, 09, 00, 32, 01, 04, 09, 00, 33, 01, 07, 09, 00, 4b, 01, 08, 09, 00, 48, 01, 0a, 09, 00, 47, 01, 08, 09, 00, 44, 01, 0a, 08, 00, 10, 05, 00, 11, 04, 06, 02, 04, 06, 00, 07, 07, 01, 05, 03, 02] +Raw bytes (135): 0x[01, 01, 02, 01, 05, 05, 02, 19, 01, 08, 01, 0f, 0d, 01, 16, 0e, 06, 0a, 01, 10, 05, 13, 0d, 01, 1a, 0e, 06, 0a, 01, 10, 05, 0c, 16, 01, 16, 05, 0d, 18, 01, 19, 09, 01, 1e, 01, 04, 09, 00, 29, 01, 01, 09, 00, 2d, 01, 01, 09, 00, 24, 01, 05, 09, 00, 24, 01, 02, 09, 00, 21, 01, 04, 09, 00, 21, 01, 04, 09, 00, 28, 01, 09, 09, 00, 32, 01, 04, 09, 00, 33, 01, 07, 09, 00, 4b, 01, 08, 09, 00, 48, 01, 0a, 09, 00, 47, 01, 08, 09, 00, 44, 01, 0a, 08, 00, 10, 20, 05, 02, 00, 08, 00, 10, 05, 00, 11, 04, 06, 02, 04, 06, 00, 07, 07, 01, 05, 03, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 24 +Number of file 0 mappings: 25 - Code(Counter(0)) at (prev + 8, 1) to (start + 15, 13) - Code(Counter(0)) at (prev + 22, 14) to (start + 6, 10) - Code(Counter(0)) at (prev + 16, 5) to (start + 19, 13) @@ -27,6 +27,9 @@ Number of file 0 mappings: 24 - Code(Counter(0)) at (prev + 10, 9) to (start + 0, 71) - Code(Counter(0)) at (prev + 8, 9) to (start + 0, 68) - Code(Counter(0)) at (prev + 10, 8) to (start + 0, 16) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 0, 8) to (start + 0, 16) + true = c1 + false = (c0 - c1) - Code(Counter(1)) at (prev + 0, 17) to (start + 4, 6) - Code(Expression(0, Sub)) at (prev + 4, 6) to (start + 0, 7) = (c0 - c1) @@ -34,15 +37,18 @@ Number of file 0 mappings: 24 = (c1 + (c0 - c1)) Function name: closure::main::{closure#0} -Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 27, 05, 02, 14, 05, 02, 15, 02, 0a, 02, 02, 0a, 00, 0b, 07, 01, 09, 01, 06] +Raw bytes (35): 0x[01, 01, 02, 01, 05, 05, 02, 05, 01, 27, 05, 02, 14, 20, 05, 02, 02, 0c, 00, 14, 05, 00, 15, 02, 0a, 02, 02, 0a, 00, 0b, 07, 01, 09, 01, 06] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 39, 5) to (start + 2, 20) -- Code(Counter(1)) at (prev + 2, 21) to (start + 2, 10) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 2, 12) to (start + 0, 20) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 21) to (start + 2, 10) - Code(Expression(0, Sub)) at (prev + 2, 10) to (start + 0, 11) = (c0 - c1) - Code(Expression(1, Add)) at (prev + 1, 9) to (start + 1, 6) @@ -81,147 +87,178 @@ Number of file 0 mappings: 1 - Code(Zero) at (prev + 171, 13) to (start + 2, 14) Function name: closure::main::{closure#14} -Raw bytes (36): 0x[01, 01, 03, 05, 0a, 01, 05, 01, 05, 05, 03, b2, 01, 0d, 00, 15, 01, 01, 11, 01, 1b, 05, 01, 1e, 00, 25, 0a, 00, 2f, 00, 33, 03, 01, 0d, 00, 0e] +Raw bytes (45): 0x[01, 01, 04, 05, 0e, 01, 05, 01, 05, 01, 05, 06, 03, b2, 01, 0d, 00, 15, 01, 01, 11, 01, 1b, 20, 05, 0e, 01, 14, 00, 1b, 05, 00, 1e, 00, 25, 0e, 00, 2f, 00, 33, 03, 01, 0d, 00, 0e] Number of files: 1 - file 0 => global file 1 -Number of expressions: 3 -- expression 0 operands: lhs = Counter(1), rhs = Expression(2, Sub) +Number of expressions: 4 +- expression 0 operands: lhs = Counter(1), rhs = Expression(3, Sub) - expression 1 operands: lhs = Counter(0), rhs = Counter(1) - expression 2 operands: lhs = Counter(0), rhs = Counter(1) -Number of file 0 mappings: 5 +- expression 3 operands: lhs = Counter(0), rhs = Counter(1) +Number of file 0 mappings: 6 - Code(Expression(0, Add)) at (prev + 178, 13) to (start + 0, 21) = (c1 + (c0 - c1)) - Code(Counter(0)) at (prev + 1, 17) to (start + 1, 27) -- Code(Counter(1)) at (prev + 1, 30) to (start + 0, 37) -- Code(Expression(2, Sub)) at (prev + 0, 47) to (start + 0, 51) +- Branch { true: Counter(1), false: Expression(3, Sub) } at (prev + 1, 20) to (start + 0, 27) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 30) to (start + 0, 37) +- Code(Expression(3, Sub)) at (prev + 0, 47) to (start + 0, 51) = (c0 - c1) - Code(Expression(0, Add)) at (prev + 1, 13) to (start + 0, 14) = (c1 + (c0 - c1)) Function name: closure::main::{closure#15} -Raw bytes (41): 0x[01, 01, 03, 05, 0a, 01, 05, 01, 05, 06, 01, ba, 01, 09, 00, 0a, 03, 01, 0d, 00, 15, 01, 01, 11, 01, 1b, 05, 01, 1e, 00, 25, 0a, 00, 2f, 00, 33, 03, 02, 09, 00, 0a] +Raw bytes (50): 0x[01, 01, 04, 05, 0e, 01, 05, 01, 05, 01, 05, 07, 01, ba, 01, 09, 00, 0a, 03, 01, 0d, 00, 15, 01, 01, 11, 01, 1b, 20, 05, 0e, 01, 14, 00, 1b, 05, 00, 1e, 00, 25, 0e, 00, 2f, 00, 33, 03, 02, 09, 00, 0a] Number of files: 1 - file 0 => global file 1 -Number of expressions: 3 -- expression 0 operands: lhs = Counter(1), rhs = Expression(2, Sub) +Number of expressions: 4 +- expression 0 operands: lhs = Counter(1), rhs = Expression(3, Sub) - expression 1 operands: lhs = Counter(0), rhs = Counter(1) - expression 2 operands: lhs = Counter(0), rhs = Counter(1) -Number of file 0 mappings: 6 +- expression 3 operands: lhs = Counter(0), rhs = Counter(1) +Number of file 0 mappings: 7 - Code(Counter(0)) at (prev + 186, 9) to (start + 0, 10) - Code(Expression(0, Add)) at (prev + 1, 13) to (start + 0, 21) = (c1 + (c0 - c1)) - Code(Counter(0)) at (prev + 1, 17) to (start + 1, 27) -- Code(Counter(1)) at (prev + 1, 30) to (start + 0, 37) -- Code(Expression(2, Sub)) at (prev + 0, 47) to (start + 0, 51) +- Branch { true: Counter(1), false: Expression(3, Sub) } at (prev + 1, 20) to (start + 0, 27) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 30) to (start + 0, 37) +- Code(Expression(3, Sub)) at (prev + 0, 47) to (start + 0, 51) = (c0 - c1) - Code(Expression(0, Add)) at (prev + 2, 9) to (start + 0, 10) = (c1 + (c0 - c1)) Function name: closure::main::{closure#16} -Raw bytes (36): 0x[01, 01, 03, 05, 0a, 01, 05, 01, 05, 05, 03, c4, 01, 0d, 00, 15, 01, 01, 11, 01, 1b, 05, 01, 1e, 00, 25, 0a, 00, 2f, 00, 33, 03, 01, 0d, 00, 0e] +Raw bytes (45): 0x[01, 01, 04, 05, 0e, 01, 05, 01, 05, 01, 05, 06, 03, c4, 01, 0d, 00, 15, 01, 01, 11, 01, 1b, 20, 05, 0e, 01, 14, 00, 1b, 05, 00, 1e, 00, 25, 0e, 00, 2f, 00, 33, 03, 01, 0d, 00, 0e] Number of files: 1 - file 0 => global file 1 -Number of expressions: 3 -- expression 0 operands: lhs = Counter(1), rhs = Expression(2, Sub) +Number of expressions: 4 +- expression 0 operands: lhs = Counter(1), rhs = Expression(3, Sub) - expression 1 operands: lhs = Counter(0), rhs = Counter(1) - expression 2 operands: lhs = Counter(0), rhs = Counter(1) -Number of file 0 mappings: 5 +- expression 3 operands: lhs = Counter(0), rhs = Counter(1) +Number of file 0 mappings: 6 - Code(Expression(0, Add)) at (prev + 196, 13) to (start + 0, 21) = (c1 + (c0 - c1)) - Code(Counter(0)) at (prev + 1, 17) to (start + 1, 27) -- Code(Counter(1)) at (prev + 1, 30) to (start + 0, 37) -- Code(Expression(2, Sub)) at (prev + 0, 47) to (start + 0, 51) +- Branch { true: Counter(1), false: Expression(3, Sub) } at (prev + 1, 20) to (start + 0, 27) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 30) to (start + 0, 37) +- Code(Expression(3, Sub)) at (prev + 0, 47) to (start + 0, 51) = (c0 - c1) - Code(Expression(0, Add)) at (prev + 1, 13) to (start + 0, 14) = (c1 + (c0 - c1)) Function name: closure::main::{closure#17} -Raw bytes (41): 0x[01, 01, 03, 05, 0a, 01, 05, 01, 05, 06, 01, cc, 01, 09, 00, 0a, 03, 01, 0d, 00, 15, 01, 01, 11, 01, 1b, 05, 01, 1e, 00, 25, 0a, 00, 2f, 00, 33, 03, 02, 09, 00, 0a] +Raw bytes (50): 0x[01, 01, 04, 05, 0e, 01, 05, 01, 05, 01, 05, 07, 01, cc, 01, 09, 00, 0a, 03, 01, 0d, 00, 15, 01, 01, 11, 01, 1b, 20, 05, 0e, 01, 14, 00, 1b, 05, 00, 1e, 00, 25, 0e, 00, 2f, 00, 33, 03, 02, 09, 00, 0a] Number of files: 1 - file 0 => global file 1 -Number of expressions: 3 -- expression 0 operands: lhs = Counter(1), rhs = Expression(2, Sub) +Number of expressions: 4 +- expression 0 operands: lhs = Counter(1), rhs = Expression(3, Sub) - expression 1 operands: lhs = Counter(0), rhs = Counter(1) - expression 2 operands: lhs = Counter(0), rhs = Counter(1) -Number of file 0 mappings: 6 +- expression 3 operands: lhs = Counter(0), rhs = Counter(1) +Number of file 0 mappings: 7 - Code(Counter(0)) at (prev + 204, 9) to (start + 0, 10) - Code(Expression(0, Add)) at (prev + 1, 13) to (start + 0, 21) = (c1 + (c0 - c1)) - Code(Counter(0)) at (prev + 1, 17) to (start + 1, 27) -- Code(Counter(1)) at (prev + 1, 30) to (start + 0, 37) -- Code(Expression(2, Sub)) at (prev + 0, 47) to (start + 0, 51) +- Branch { true: Counter(1), false: Expression(3, Sub) } at (prev + 1, 20) to (start + 0, 27) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 30) to (start + 0, 37) +- Code(Expression(3, Sub)) at (prev + 0, 47) to (start + 0, 51) = (c0 - c1) - Code(Expression(0, Add)) at (prev + 2, 9) to (start + 0, 10) = (c1 + (c0 - c1)) Function name: closure::main::{closure#18} -Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 18, 0d, 02, 1c, 05, 02, 1d, 02, 12, 02, 02, 12, 00, 13, 07, 01, 11, 01, 0e] +Raw bytes (35): 0x[01, 01, 02, 01, 05, 05, 02, 05, 01, 18, 0d, 02, 1c, 20, 05, 02, 02, 14, 00, 1c, 05, 00, 1d, 02, 12, 02, 02, 12, 00, 13, 07, 01, 11, 01, 0e] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 24, 13) to (start + 2, 28) -- Code(Counter(1)) at (prev + 2, 29) to (start + 2, 18) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 2, 20) to (start + 0, 28) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 29) to (start + 2, 18) - Code(Expression(0, Sub)) at (prev + 2, 18) to (start + 0, 19) = (c0 - c1) - Code(Expression(1, Add)) at (prev + 1, 17) to (start + 1, 14) = (c1 + (c0 - c1)) Function name: closure::main::{closure#19} -Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 42, 0d, 02, 1c, 05, 02, 1d, 02, 12, 02, 02, 12, 00, 13, 07, 01, 11, 01, 0e] +Raw bytes (35): 0x[01, 01, 02, 01, 05, 05, 02, 05, 01, 42, 0d, 02, 1c, 20, 05, 02, 02, 14, 00, 1c, 05, 00, 1d, 02, 12, 02, 02, 12, 00, 13, 07, 01, 11, 01, 0e] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 66, 13) to (start + 2, 28) -- Code(Counter(1)) at (prev + 2, 29) to (start + 2, 18) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 2, 20) to (start + 0, 28) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 29) to (start + 2, 18) - Code(Expression(0, Sub)) at (prev + 2, 18) to (start + 0, 19) = (c0 - c1) - Code(Expression(1, Add)) at (prev + 1, 17) to (start + 1, 14) = (c1 + (c0 - c1)) Function name: closure::main::{closure#1} -Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 51, 05, 02, 14, 05, 02, 15, 02, 0a, 02, 02, 0a, 00, 0b, 07, 01, 09, 01, 06] +Raw bytes (35): 0x[01, 01, 02, 01, 05, 05, 02, 05, 01, 51, 05, 02, 14, 20, 05, 02, 02, 0c, 00, 14, 05, 00, 15, 02, 0a, 02, 02, 0a, 00, 0b, 07, 01, 09, 01, 06] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 81, 5) to (start + 2, 20) -- Code(Counter(1)) at (prev + 2, 21) to (start + 2, 10) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 2, 12) to (start + 0, 20) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 21) to (start + 2, 10) - Code(Expression(0, Sub)) at (prev + 2, 10) to (start + 0, 11) = (c0 - c1) - Code(Expression(1, Add)) at (prev + 1, 9) to (start + 1, 6) = (c1 + (c0 - c1)) Function name: closure::main::{closure#2} -Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 67, 05, 02, 14, 05, 02, 15, 02, 0a, 02, 02, 0a, 00, 0b, 07, 01, 09, 01, 06] +Raw bytes (35): 0x[01, 01, 02, 01, 05, 05, 02, 05, 01, 67, 05, 02, 14, 20, 05, 02, 02, 0c, 00, 14, 05, 00, 15, 02, 0a, 02, 02, 0a, 00, 0b, 07, 01, 09, 01, 06] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 103, 5) to (start + 2, 20) -- Code(Counter(1)) at (prev + 2, 21) to (start + 2, 10) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 2, 12) to (start + 0, 20) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 21) to (start + 2, 10) - Code(Expression(0, Sub)) at (prev + 2, 10) to (start + 0, 11) = (c0 - c1) - Code(Expression(1, Add)) at (prev + 1, 9) to (start + 1, 6) = (c1 + (c0 - c1)) Function name: closure::main::{closure#3} (unused) -Raw bytes (25): 0x[01, 01, 00, 04, 00, 80, 01, 05, 01, 14, 00, 01, 15, 02, 0a, 00, 02, 0a, 00, 0b, 00, 01, 09, 01, 06] +Raw bytes (32): 0x[01, 01, 00, 05, 00, 80, 01, 05, 01, 14, 20, 00, 00, 01, 0c, 00, 14, 00, 00, 15, 02, 0a, 00, 02, 0a, 00, 0b, 00, 01, 09, 01, 06] Number of files: 1 - file 0 => global file 1 Number of expressions: 0 -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Zero) at (prev + 128, 5) to (start + 1, 20) -- Code(Zero) at (prev + 1, 21) to (start + 2, 10) +- Branch { true: Zero, false: Zero } at (prev + 1, 12) to (start + 0, 20) + true = Zero + false = Zero +- Code(Zero) at (prev + 0, 21) to (start + 2, 10) - Code(Zero) at (prev + 2, 10) to (start + 0, 11) - Code(Zero) at (prev + 1, 9) to (start + 1, 6) diff --git a/tests/coverage/closure.coverage b/tests/coverage/closure.coverage index 67014f792c818..206105c5a9562 100644 --- a/tests/coverage/closure.coverage +++ b/tests/coverage/closure.coverage @@ -24,6 +24,9 @@ LL| 0| { LL| 0| let mut countdown = 0; LL| 0| if is_false { + ------------------ + | Branch (LL:20): [True: 0, False: 0] + ------------------ LL| 0| countdown = 10; LL| 0| } LL| 0| "alt string 1".to_owned() @@ -39,6 +42,9 @@ LL| 0| { LL| 0| let mut countdown = 0; LL| 0| if is_false { + ------------------ + | Branch (LL:12): [True: 0, False: 0] + ------------------ LL| 0| countdown = 10; LL| 0| } LL| 0| "alt string 2".to_owned() @@ -66,6 +72,9 @@ LL| 1| { LL| 1| let mut countdown = 0; LL| 1| if is_false { + ------------------ + | Branch (LL:20): [True: 0, False: 1] + ------------------ LL| 0| countdown = 10; LL| 1| } LL| 1| "alt string 3".to_owned() @@ -81,6 +90,9 @@ LL| 1| { LL| 1| let mut countdown = 0; LL| 1| if is_false { + ------------------ + | Branch (LL:12): [True: 0, False: 1] + ------------------ LL| 0| countdown = 10; LL| 1| } LL| 1| "alt string 4".to_owned() @@ -103,6 +115,9 @@ LL| 5| { LL| 5| let mut countdown = 0; LL| 5| if is_false { + ------------------ + | Branch (LL:12): [True: 0, False: 5] + ------------------ LL| 0| countdown = 10; LL| 5| } LL| 5| format!("'{}'", val) @@ -127,6 +142,9 @@ LL| | | LL| 0| { LL| 0| if is_false { + ------------------ + | Branch (LL:12): [Folded - Ignored] + ------------------ LL| 0| countdown = 10; LL| 0| } LL| 0| "closure should be unused".to_owned() @@ -182,6 +200,9 @@ LL| 0| println!( LL| 0| "not called: {}", LL| 0| if is_true { "check" } else { "me" } + ------------------ + | Branch (LL:20): [True: 0, False: 0] + ------------------ LL| 0| ) LL| | ; LL| | @@ -191,6 +212,9 @@ LL| 0| println!( LL| 0| "not called: {}", LL| 0| if is_true { "check" } else { "me" } + ------------------ + | Branch (LL:20): [True: 0, False: 0] + ------------------ LL| | ) LL| 0| } LL| | ; @@ -201,6 +225,9 @@ LL| 1| "not called: {}", LL| 1| if is_true { "check" } else { "me" } ^0 + ------------------ + | Branch (LL:20): [True: 1, False: 0] + ------------------ LL| 1| ) LL| | ; LL| | @@ -211,11 +238,17 @@ LL| 1| "not called: {}", LL| 1| if is_true { "check" } else { "me" } ^0 + ------------------ + | Branch (LL:20): [True: 1, False: 0] + ------------------ LL| | ) LL| 1| } LL| | ; LL| | LL| 1| if is_false { + ------------------ + | Branch (LL:8): [True: 0, False: 1] + ------------------ LL| 0| short_used_not_covered_closure_macro(0); LL| 0| short_used_not_covered_closure_line_break_no_block_embedded_branch(0); LL| 0| short_used_not_covered_closure_line_break_block_embedded_branch(0); diff --git a/tests/coverage/closure_bug.cov-map b/tests/coverage/closure_bug.cov-map index 90eeb1a6686f3..cc56fd57ba5c4 100644 --- a/tests/coverage/closure_bug.cov-map +++ b/tests/coverage/closure_bug.cov-map @@ -1,85 +1,112 @@ Function name: closure_bug::main -Raw bytes (201): 0x[01, 01, 26, 01, 05, 05, 02, 05, 02, 97, 01, 09, 05, 02, 09, 92, 01, 97, 01, 09, 05, 02, 09, 92, 01, 97, 01, 09, 05, 02, 8f, 01, 0d, 09, 92, 01, 97, 01, 09, 05, 02, 0d, 8a, 01, 8f, 01, 0d, 09, 92, 01, 97, 01, 09, 05, 02, 0d, 8a, 01, 8f, 01, 0d, 09, 92, 01, 97, 01, 09, 05, 02, 87, 01, 11, 0d, 8a, 01, 8f, 01, 0d, 09, 92, 01, 97, 01, 09, 05, 02, 11, 82, 01, 87, 01, 11, 0d, 8a, 01, 8f, 01, 0d, 09, 92, 01, 97, 01, 09, 05, 02, 11, 01, 06, 01, 03, 0a, 01, 09, 05, 01, 0e, 05, 01, 0f, 00, 17, 02, 00, 17, 00, 18, 97, 01, 02, 09, 00, 0a, 97, 01, 06, 05, 01, 0e, 09, 01, 0f, 00, 17, 92, 01, 00, 17, 00, 18, 8f, 01, 02, 09, 00, 0a, 8f, 01, 06, 05, 01, 0e, 0d, 01, 0f, 00, 17, 8a, 01, 00, 17, 00, 18, 87, 01, 02, 09, 00, 0a, 87, 01, 06, 05, 01, 0e, 11, 01, 0f, 00, 17, 82, 01, 00, 17, 00, 18, 7f, 01, 01, 00, 02] +Raw bytes (266): 0x[01, 01, 32, 01, 05, 05, 02, 05, 02, c7, 01, 09, 05, 02, c7, 01, 09, 05, 02, 09, c2, 01, c7, 01, 09, 05, 02, 09, c2, 01, c7, 01, 09, 05, 02, bf, 01, 0d, 09, c2, 01, c7, 01, 09, 05, 02, bf, 01, 0d, 09, c2, 01, c7, 01, 09, 05, 02, 0d, ba, 01, bf, 01, 0d, 09, c2, 01, c7, 01, 09, 05, 02, 0d, ba, 01, bf, 01, 0d, 09, c2, 01, c7, 01, 09, 05, 02, b7, 01, 11, 0d, ba, 01, bf, 01, 0d, 09, c2, 01, c7, 01, 09, 05, 02, b7, 01, 11, 0d, ba, 01, bf, 01, 0d, 09, c2, 01, c7, 01, 09, 05, 02, 11, b2, 01, b7, 01, 11, 0d, ba, 01, bf, 01, 0d, 09, c2, 01, c7, 01, 09, 05, 02, 15, 01, 06, 01, 03, 0a, 01, 09, 05, 01, 0e, 20, 05, 02, 01, 08, 00, 0e, 05, 00, 0f, 00, 17, 02, 00, 17, 00, 18, c7, 01, 02, 09, 00, 0a, c7, 01, 06, 05, 01, 0e, 20, 09, c2, 01, 01, 08, 00, 0e, 09, 00, 0f, 00, 17, c2, 01, 00, 17, 00, 18, bf, 01, 02, 09, 00, 0a, bf, 01, 06, 05, 01, 0e, 20, 0d, ba, 01, 01, 08, 00, 0e, 0d, 00, 0f, 00, 17, ba, 01, 00, 17, 00, 18, b7, 01, 02, 09, 00, 0a, b7, 01, 06, 05, 01, 0e, 20, 11, b2, 01, 01, 08, 00, 0e, 11, 00, 0f, 00, 17, b2, 01, 00, 17, 00, 18, af, 01, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 -Number of expressions: 38 +Number of expressions: 50 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) - expression 2 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 3 operands: lhs = Expression(37, Add), rhs = Counter(2) +- expression 3 operands: lhs = Expression(49, Add), rhs = Counter(2) - expression 4 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 5 operands: lhs = Counter(2), rhs = Expression(36, Sub) -- expression 6 operands: lhs = Expression(37, Add), rhs = Counter(2) -- expression 7 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 8 operands: lhs = Counter(2), rhs = Expression(36, Sub) -- expression 9 operands: lhs = Expression(37, Add), rhs = Counter(2) -- expression 10 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 11 operands: lhs = Expression(35, Add), rhs = Counter(3) -- expression 12 operands: lhs = Counter(2), rhs = Expression(36, Sub) -- expression 13 operands: lhs = Expression(37, Add), rhs = Counter(2) -- expression 14 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 15 operands: lhs = Counter(3), rhs = Expression(34, Sub) -- expression 16 operands: lhs = Expression(35, Add), rhs = Counter(3) -- expression 17 operands: lhs = Counter(2), rhs = Expression(36, Sub) -- expression 18 operands: lhs = Expression(37, Add), rhs = Counter(2) -- expression 19 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 20 operands: lhs = Counter(3), rhs = Expression(34, Sub) -- expression 21 operands: lhs = Expression(35, Add), rhs = Counter(3) -- expression 22 operands: lhs = Counter(2), rhs = Expression(36, Sub) -- expression 23 operands: lhs = Expression(37, Add), rhs = Counter(2) -- expression 24 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 25 operands: lhs = Expression(33, Add), rhs = Counter(4) -- expression 26 operands: lhs = Counter(3), rhs = Expression(34, Sub) -- expression 27 operands: lhs = Expression(35, Add), rhs = Counter(3) -- expression 28 operands: lhs = Counter(2), rhs = Expression(36, Sub) -- expression 29 operands: lhs = Expression(37, Add), rhs = Counter(2) +- expression 5 operands: lhs = Expression(49, Add), rhs = Counter(2) +- expression 6 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 7 operands: lhs = Counter(2), rhs = Expression(48, Sub) +- expression 8 operands: lhs = Expression(49, Add), rhs = Counter(2) +- expression 9 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 10 operands: lhs = Counter(2), rhs = Expression(48, Sub) +- expression 11 operands: lhs = Expression(49, Add), rhs = Counter(2) +- expression 12 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 13 operands: lhs = Expression(47, Add), rhs = Counter(3) +- expression 14 operands: lhs = Counter(2), rhs = Expression(48, Sub) +- expression 15 operands: lhs = Expression(49, Add), rhs = Counter(2) +- expression 16 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 17 operands: lhs = Expression(47, Add), rhs = Counter(3) +- expression 18 operands: lhs = Counter(2), rhs = Expression(48, Sub) +- expression 19 operands: lhs = Expression(49, Add), rhs = Counter(2) +- expression 20 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 21 operands: lhs = Counter(3), rhs = Expression(46, Sub) +- expression 22 operands: lhs = Expression(47, Add), rhs = Counter(3) +- expression 23 operands: lhs = Counter(2), rhs = Expression(48, Sub) +- expression 24 operands: lhs = Expression(49, Add), rhs = Counter(2) +- expression 25 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 26 operands: lhs = Counter(3), rhs = Expression(46, Sub) +- expression 27 operands: lhs = Expression(47, Add), rhs = Counter(3) +- expression 28 operands: lhs = Counter(2), rhs = Expression(48, Sub) +- expression 29 operands: lhs = Expression(49, Add), rhs = Counter(2) - expression 30 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 31 operands: lhs = Counter(4), rhs = Expression(32, Sub) -- expression 32 operands: lhs = Expression(33, Add), rhs = Counter(4) -- expression 33 operands: lhs = Counter(3), rhs = Expression(34, Sub) -- expression 34 operands: lhs = Expression(35, Add), rhs = Counter(3) -- expression 35 operands: lhs = Counter(2), rhs = Expression(36, Sub) -- expression 36 operands: lhs = Expression(37, Add), rhs = Counter(2) -- expression 37 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 17 +- expression 31 operands: lhs = Expression(45, Add), rhs = Counter(4) +- expression 32 operands: lhs = Counter(3), rhs = Expression(46, Sub) +- expression 33 operands: lhs = Expression(47, Add), rhs = Counter(3) +- expression 34 operands: lhs = Counter(2), rhs = Expression(48, Sub) +- expression 35 operands: lhs = Expression(49, Add), rhs = Counter(2) +- expression 36 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 37 operands: lhs = Expression(45, Add), rhs = Counter(4) +- expression 38 operands: lhs = Counter(3), rhs = Expression(46, Sub) +- expression 39 operands: lhs = Expression(47, Add), rhs = Counter(3) +- expression 40 operands: lhs = Counter(2), rhs = Expression(48, Sub) +- expression 41 operands: lhs = Expression(49, Add), rhs = Counter(2) +- expression 42 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 43 operands: lhs = Counter(4), rhs = Expression(44, Sub) +- expression 44 operands: lhs = Expression(45, Add), rhs = Counter(4) +- expression 45 operands: lhs = Counter(3), rhs = Expression(46, Sub) +- expression 46 operands: lhs = Expression(47, Add), rhs = Counter(3) +- expression 47 operands: lhs = Counter(2), rhs = Expression(48, Sub) +- expression 48 operands: lhs = Expression(49, Add), rhs = Counter(2) +- expression 49 operands: lhs = Counter(1), rhs = Expression(0, Sub) +Number of file 0 mappings: 21 - Code(Counter(0)) at (prev + 6, 1) to (start + 3, 10) - Code(Counter(0)) at (prev + 9, 5) to (start + 1, 14) -- Code(Counter(1)) at (prev + 1, 15) to (start + 0, 23) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 1, 8) to (start + 0, 14) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 15) to (start + 0, 23) - Code(Expression(0, Sub)) at (prev + 0, 23) to (start + 0, 24) = (c0 - c1) -- Code(Expression(37, Add)) at (prev + 2, 9) to (start + 0, 10) +- Code(Expression(49, Add)) at (prev + 2, 9) to (start + 0, 10) = (c1 + (c0 - c1)) -- Code(Expression(37, Add)) at (prev + 6, 5) to (start + 1, 14) +- Code(Expression(49, Add)) at (prev + 6, 5) to (start + 1, 14) = (c1 + (c0 - c1)) -- Code(Counter(2)) at (prev + 1, 15) to (start + 0, 23) -- Code(Expression(36, Sub)) at (prev + 0, 23) to (start + 0, 24) +- Branch { true: Counter(2), false: Expression(48, Sub) } at (prev + 1, 8) to (start + 0, 14) + true = c2 + false = ((c1 + (c0 - c1)) - c2) +- Code(Counter(2)) at (prev + 0, 15) to (start + 0, 23) +- Code(Expression(48, Sub)) at (prev + 0, 23) to (start + 0, 24) = ((c1 + (c0 - c1)) - c2) -- Code(Expression(35, Add)) at (prev + 2, 9) to (start + 0, 10) +- Code(Expression(47, Add)) at (prev + 2, 9) to (start + 0, 10) = (c2 + ((c1 + (c0 - c1)) - c2)) -- Code(Expression(35, Add)) at (prev + 6, 5) to (start + 1, 14) +- Code(Expression(47, Add)) at (prev + 6, 5) to (start + 1, 14) = (c2 + ((c1 + (c0 - c1)) - c2)) -- Code(Counter(3)) at (prev + 1, 15) to (start + 0, 23) -- Code(Expression(34, Sub)) at (prev + 0, 23) to (start + 0, 24) +- Branch { true: Counter(3), false: Expression(46, Sub) } at (prev + 1, 8) to (start + 0, 14) + true = c3 + false = ((c2 + ((c1 + (c0 - c1)) - c2)) - c3) +- Code(Counter(3)) at (prev + 0, 15) to (start + 0, 23) +- Code(Expression(46, Sub)) at (prev + 0, 23) to (start + 0, 24) = ((c2 + ((c1 + (c0 - c1)) - c2)) - c3) -- Code(Expression(33, Add)) at (prev + 2, 9) to (start + 0, 10) +- Code(Expression(45, Add)) at (prev + 2, 9) to (start + 0, 10) = (c3 + ((c2 + ((c1 + (c0 - c1)) - c2)) - c3)) -- Code(Expression(33, Add)) at (prev + 6, 5) to (start + 1, 14) +- Code(Expression(45, Add)) at (prev + 6, 5) to (start + 1, 14) = (c3 + ((c2 + ((c1 + (c0 - c1)) - c2)) - c3)) -- Code(Counter(4)) at (prev + 1, 15) to (start + 0, 23) -- Code(Expression(32, Sub)) at (prev + 0, 23) to (start + 0, 24) +- Branch { true: Counter(4), false: Expression(44, Sub) } at (prev + 1, 8) to (start + 0, 14) + true = c4 + false = ((c3 + ((c2 + ((c1 + (c0 - c1)) - c2)) - c3)) - c4) +- Code(Counter(4)) at (prev + 0, 15) to (start + 0, 23) +- Code(Expression(44, Sub)) at (prev + 0, 23) to (start + 0, 24) = ((c3 + ((c2 + ((c1 + (c0 - c1)) - c2)) - c3)) - c4) -- Code(Expression(31, Add)) at (prev + 1, 1) to (start + 0, 2) +- Code(Expression(43, Add)) at (prev + 1, 1) to (start + 0, 2) = (c4 + ((c3 + ((c2 + ((c1 + (c0 - c1)) - c2)) - c3)) - c4)) Function name: closure_bug::main::{closure#0} -Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 0d, 09, 00, 12, 05, 00, 15, 00, 19, 02, 00, 23, 00, 28, 07, 00, 29, 00, 2a] +Raw bytes (35): 0x[01, 01, 02, 01, 05, 05, 02, 05, 01, 0d, 09, 00, 12, 20, 05, 02, 00, 0c, 00, 12, 05, 00, 15, 00, 19, 02, 00, 23, 00, 28, 07, 00, 29, 00, 2a] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 13, 9) to (start + 0, 18) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 0, 12) to (start + 0, 18) + true = c1 + false = (c0 - c1) - Code(Counter(1)) at (prev + 0, 21) to (start + 0, 25) - Code(Expression(0, Sub)) at (prev + 0, 35) to (start + 0, 40) = (c0 - c1) @@ -87,14 +114,17 @@ Number of file 0 mappings: 4 = (c1 + (c0 - c1)) Function name: closure_bug::main::{closure#1} -Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 16, 09, 00, 12, 05, 00, 15, 00, 19, 02, 00, 23, 00, 28, 07, 00, 29, 00, 2a] +Raw bytes (35): 0x[01, 01, 02, 01, 05, 05, 02, 05, 01, 16, 09, 00, 12, 20, 05, 02, 00, 0c, 00, 12, 05, 00, 15, 00, 19, 02, 00, 23, 00, 28, 07, 00, 29, 00, 2a] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 22, 9) to (start + 0, 18) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 0, 12) to (start + 0, 18) + true = c1 + false = (c0 - c1) - Code(Counter(1)) at (prev + 0, 21) to (start + 0, 25) - Code(Expression(0, Sub)) at (prev + 0, 35) to (start + 0, 40) = (c0 - c1) @@ -102,14 +132,17 @@ Number of file 0 mappings: 4 = (c1 + (c0 - c1)) Function name: closure_bug::main::{closure#2} -Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 1f, 09, 00, 12, 05, 00, 15, 00, 19, 02, 00, 23, 00, 28, 07, 00, 29, 00, 2a] +Raw bytes (35): 0x[01, 01, 02, 01, 05, 05, 02, 05, 01, 1f, 09, 00, 12, 20, 05, 02, 00, 0c, 00, 12, 05, 00, 15, 00, 19, 02, 00, 23, 00, 28, 07, 00, 29, 00, 2a] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 31, 9) to (start + 0, 18) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 0, 12) to (start + 0, 18) + true = c1 + false = (c0 - c1) - Code(Counter(1)) at (prev + 0, 21) to (start + 0, 25) - Code(Expression(0, Sub)) at (prev + 0, 35) to (start + 0, 40) = (c0 - c1) @@ -117,14 +150,17 @@ Number of file 0 mappings: 4 = (c1 + (c0 - c1)) Function name: closure_bug::main::{closure#3} -Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 28, 09, 00, 12, 05, 00, 15, 00, 19, 02, 00, 23, 00, 28, 07, 00, 29, 00, 2a] +Raw bytes (35): 0x[01, 01, 02, 01, 05, 05, 02, 05, 01, 28, 09, 00, 12, 20, 05, 02, 00, 0c, 00, 12, 05, 00, 15, 00, 19, 02, 00, 23, 00, 28, 07, 00, 29, 00, 2a] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 40, 9) to (start + 0, 18) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 0, 12) to (start + 0, 18) + true = c1 + false = (c0 - c1) - Code(Counter(1)) at (prev + 0, 21) to (start + 0, 25) - Code(Expression(0, Sub)) at (prev + 0, 35) to (start + 0, 40) = (c0 - c1) diff --git a/tests/coverage/closure_bug.coverage b/tests/coverage/closure_bug.coverage index f3299834bce19..cbfd65948d1d0 100644 --- a/tests/coverage/closure_bug.coverage +++ b/tests/coverage/closure_bug.coverage @@ -12,10 +12,16 @@ LL| | | LL| 2| if truthy { true } else { false }; ^0 + ------------------ + | Branch (LL:12): [True: 2, False: 0] + ------------------ LL| | LL| 1| a(); LL| 1| if truthy { a(); } ^0 + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| | LL| 1| let b LL| | = @@ -23,10 +29,16 @@ LL| | | LL| 2| if truthy { true } else { false }; ^0 + ------------------ + | Branch (LL:12): [True: 2, False: 0] + ------------------ LL| | LL| 1| b(); LL| 1| if truthy { b(); } ^0 + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| | LL| 1| let c LL| | = @@ -34,10 +46,16 @@ LL| | | LL| 2| if truthy { true } else { false }; ^0 + ------------------ + | Branch (LL:12): [True: 2, False: 0] + ------------------ LL| | LL| 1| c(); LL| 1| if truthy { c(); } ^0 + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| | LL| 1| let d LL| | = @@ -45,9 +63,15 @@ LL| | | LL| 2| if truthy { true } else { false }; ^0 + ------------------ + | Branch (LL:12): [True: 2, False: 0] + ------------------ LL| | LL| 1| d(); LL| 1| if truthy { d(); } ^0 + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| 1|} diff --git a/tests/coverage/closure_macro.cov-map b/tests/coverage/closure_macro.cov-map index b02c7e2e4c66b..f1b97531fc7ae 100644 --- a/tests/coverage/closure_macro.cov-map +++ b/tests/coverage/closure_macro.cov-map @@ -27,10 +27,18 @@ Number of file 0 mappings: 7 = (c1 + (c0 - c1)) Function name: closure_macro::main::{closure#0} -Raw bytes (9): 0x[01, 01, 00, 01, 01, 23, 12, 00, 54] +Raw bytes (27): 0x[01, 01, 02, 01, 05, 02, 09, 03, 01, 23, 12, 00, 54, 20, 05, 02, 00, 12, 00, 54, 20, 09, 06, 00, 12, 00, 54] Number of files: 1 - file 0 => global file 1 -Number of expressions: 0 -Number of file 0 mappings: 1 +Number of expressions: 2 +- expression 0 operands: lhs = Counter(0), rhs = Counter(1) +- expression 1 operands: lhs = Expression(0, Sub), rhs = Counter(2) +Number of file 0 mappings: 3 - Code(Counter(0)) at (prev + 35, 18) to (start + 0, 84) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 0, 18) to (start + 0, 84) + true = c1 + false = (c0 - c1) +- Branch { true: Counter(2), false: Expression(1, Sub) } at (prev + 0, 18) to (start + 0, 84) + true = c2 + false = ((c0 - c1) - c2) diff --git a/tests/coverage/closure_macro.coverage b/tests/coverage/closure_macro.coverage index 0f2c917e09000..2578ea4fa515d 100644 --- a/tests/coverage/closure_macro.coverage +++ b/tests/coverage/closure_macro.coverage @@ -34,6 +34,10 @@ LL| 1| println!("Starting service"); LL| 1| let config = on_error!(load_configuration_files(), "Error loading configs: {}")?; ^0 + ------------------ + | Branch (LL:18): [True: 0, False: 0] + | Branch (LL:18): [True: 0, False: 0] + ------------------ LL| | LL| 1| let startup_delay_duration = String::from("arg"); LL| 1| let _ = (config, startup_delay_duration); diff --git a/tests/coverage/closure_macro_async.cov-map b/tests/coverage/closure_macro_async.cov-map index 7f8666948d902..7740a8dc68b81 100644 --- a/tests/coverage/closure_macro_async.cov-map +++ b/tests/coverage/closure_macro_async.cov-map @@ -35,10 +35,18 @@ Number of file 0 mappings: 7 = (c1 + (c0 - c1)) Function name: closure_macro_async::test::{closure#0}::{closure#0} -Raw bytes (9): 0x[01, 01, 00, 01, 01, 23, 12, 00, 54] +Raw bytes (27): 0x[01, 01, 02, 01, 05, 02, 09, 03, 01, 23, 12, 00, 54, 20, 05, 02, 00, 12, 00, 54, 20, 09, 06, 00, 12, 00, 54] Number of files: 1 - file 0 => global file 1 -Number of expressions: 0 -Number of file 0 mappings: 1 +Number of expressions: 2 +- expression 0 operands: lhs = Counter(0), rhs = Counter(1) +- expression 1 operands: lhs = Expression(0, Sub), rhs = Counter(2) +Number of file 0 mappings: 3 - Code(Counter(0)) at (prev + 35, 18) to (start + 0, 84) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 0, 18) to (start + 0, 84) + true = c1 + false = (c0 - c1) +- Branch { true: Counter(2), false: Expression(1, Sub) } at (prev + 0, 18) to (start + 0, 84) + true = c2 + false = ((c0 - c1) - c2) diff --git a/tests/coverage/closure_macro_async.coverage b/tests/coverage/closure_macro_async.coverage index 74247f1bc6f8d..1c497a3f03167 100644 --- a/tests/coverage/closure_macro_async.coverage +++ b/tests/coverage/closure_macro_async.coverage @@ -34,6 +34,10 @@ LL| 1| println!("Starting service"); LL| 1| let config = on_error!(load_configuration_files(), "Error loading configs: {}")?; ^0 + ------------------ + | Branch (LL:18): [True: 0, False: 0] + | Branch (LL:18): [True: 0, False: 0] + ------------------ LL| | LL| 1| let startup_delay_duration = String::from("arg"); LL| 1| let _ = (config, startup_delay_duration); diff --git a/tests/coverage/conditions.cov-map b/tests/coverage/conditions.cov-map index cfee55ed31a4a..50be282958802 100644 --- a/tests/coverage/conditions.cov-map +++ b/tests/coverage/conditions.cov-map @@ -1,259 +1,440 @@ Function name: conditions::main -Raw bytes (784): 0x[01, 01, 8e, 01, 09, 33, 37, 41, 3b, 3d, 35, 39, 05, 00, b7, 04, 09, 05, 00, 0d, 35, 26, 39, 0d, 35, 3b, 3d, 35, 39, 37, 41, 3b, 3d, 35, 39, b2, 04, 0d, b7, 04, 09, 05, 00, 45, 00, 83, 01, 49, 45, 00, 7e, 31, 83, 01, 49, 45, 00, 7a, 4d, 7e, 31, 83, 01, 49, 45, 00, 76, 51, 7a, 4d, 7e, 31, 83, 01, 49, 45, 00, a7, 01, 55, 4d, 51, a3, 01, 59, a7, 01, 55, 4d, 51, 49, 9f, 01, a3, 01, 59, a7, 01, 55, 4d, 51, 61, 00, e3, 01, 65, 61, 00, de, 01, 2d, e3, 01, 65, 61, 00, da, 01, 69, de, 01, 2d, e3, 01, 65, 61, 00, d6, 01, 6d, da, 01, 69, de, 01, 2d, e3, 01, 65, 61, 00, 8b, 02, 71, 69, 6d, 87, 02, 75, 8b, 02, 71, 69, 6d, ff, 01, 00, 65, 83, 02, 87, 02, 75, 8b, 02, 71, 69, 6d, 7d, eb, 03, ef, 03, 8d, 01, f3, 03, 89, 01, 81, 01, 85, 01, 79, 00, d7, 02, 7d, 79, 00, d2, 02, 29, d7, 02, 7d, 79, 00, ce, 02, 81, 01, d2, 02, 29, d7, 02, 7d, 79, 00, ca, 02, 85, 01, ce, 02, 81, 01, d2, 02, 29, d7, 02, 7d, 79, 00, f3, 03, 89, 01, 81, 01, 85, 01, ef, 03, 8d, 01, f3, 03, 89, 01, 81, 01, 85, 01, 11, 93, 04, 97, 04, 21, 9b, 04, 1d, 15, 19, 7d, eb, 03, ef, 03, 8d, 01, f3, 03, 89, 01, 81, 01, 85, 01, e7, 03, 11, 7d, eb, 03, ef, 03, 8d, 01, f3, 03, 89, 01, 81, 01, 85, 01, e2, 03, 25, e7, 03, 11, 7d, eb, 03, ef, 03, 8d, 01, f3, 03, 89, 01, 81, 01, 85, 01, de, 03, 15, e2, 03, 25, e7, 03, 11, 7d, eb, 03, ef, 03, 8d, 01, f3, 03, 89, 01, 81, 01, 85, 01, da, 03, 19, de, 03, 15, e2, 03, 25, e7, 03, 11, 7d, eb, 03, ef, 03, 8d, 01, f3, 03, 89, 01, 81, 01, 85, 01, 9b, 04, 1d, 15, 19, 97, 04, 21, 9b, 04, 1d, 15, 19, 8f, 04, 9f, 04, 11, 93, 04, 97, 04, 21, 9b, 04, 1d, 15, 19, a3, 04, ae, 04, a7, 04, 31, ab, 04, 2d, 25, 29, b2, 04, 0d, b7, 04, 09, 05, 00, 44, 01, 03, 01, 02, 0c, 05, 02, 0d, 02, 06, 00, 02, 06, 00, 07, 03, 03, 09, 00, 0a, b7, 04, 00, 10, 00, 1d, 09, 01, 09, 01, 0a, b2, 04, 02, 0f, 00, 1c, 0d, 01, 0c, 00, 19, 26, 00, 1d, 00, 2a, 22, 00, 2e, 00, 3c, 37, 00, 3d, 02, 0a, 41, 02, 0a, 00, 0b, 33, 01, 09, 01, 12, ae, 04, 03, 09, 00, 0f, 03, 03, 09, 01, 0c, 45, 01, 0d, 02, 06, 00, 02, 06, 00, 07, 83, 01, 02, 08, 00, 15, 49, 00, 16, 02, 06, 7e, 02, 0f, 00, 1c, 7a, 01, 0c, 00, 19, 76, 00, 1d, 00, 2a, 72, 00, 2e, 00, 3c, a3, 01, 00, 3d, 02, 0a, 59, 02, 0a, 00, 0b, 9f, 01, 01, 09, 00, 17, 31, 02, 09, 00, 0f, 9b, 01, 03, 08, 00, 0c, 5d, 01, 0d, 01, 10, 61, 01, 11, 02, 0a, 00, 02, 0a, 00, 0b, e3, 01, 02, 0c, 00, 19, 65, 00, 1a, 02, 0a, de, 01, 03, 11, 00, 1e, da, 01, 01, 10, 00, 1d, d6, 01, 00, 21, 00, 2e, d2, 01, 00, 32, 00, 40, 87, 02, 00, 41, 02, 0e, 75, 02, 0e, 00, 0f, 83, 02, 01, 0d, 00, 1b, 2d, 02, 0d, 00, 13, 00, 02, 06, 00, 07, fb, 01, 02, 09, 01, 0c, 79, 01, 0d, 02, 06, 00, 02, 06, 00, 07, e7, 03, 02, 09, 00, 0a, d7, 02, 00, 10, 00, 1d, 7d, 00, 1e, 02, 06, d2, 02, 02, 0f, 00, 1c, ce, 02, 01, 0c, 00, 19, ca, 02, 00, 1d, 00, 2a, c6, 02, 00, 2e, 00, 3c, ef, 03, 00, 3d, 02, 0a, 8d, 01, 02, 0a, 00, 0b, eb, 03, 01, 09, 00, 17, 29, 02, 0d, 02, 0f, 8f, 04, 05, 09, 00, 0a, e7, 03, 00, 10, 00, 1d, 11, 00, 1e, 02, 06, e2, 03, 02, 0f, 00, 1c, de, 03, 01, 0c, 00, 19, da, 03, 00, 1d, 00, 2a, d6, 03, 00, 2e, 00, 3c, 97, 04, 00, 3d, 02, 0a, 21, 02, 0a, 00, 0b, 93, 04, 01, 09, 00, 17, 25, 02, 09, 00, 0f, 8b, 04, 02, 01, 00, 02] +Raw bytes (1297): 0x[01, 01, e9, 01, 09, 5f, 63, 41, 67, 3d, 35, 39, 05, 00, a3, 07, 09, 05, 00, a3, 07, 09, 05, 00, 9e, 07, 0d, a3, 07, 09, 05, 00, 0d, 35, 0d, 35, 35, 39, 4a, 39, 0d, 35, 4a, 39, 0d, 35, 67, 3d, 35, 39, 67, 3d, 35, 39, 63, 41, 67, 3d, 35, 39, 9e, 07, 0d, a3, 07, 09, 05, 00, 45, 00, eb, 01, 49, 45, 00, eb, 01, 49, 45, 00, e6, 01, 31, eb, 01, 49, 45, 00, e6, 01, 31, eb, 01, 49, 45, 00, e2, 01, 4d, e6, 01, 31, eb, 01, 49, 45, 00, e2, 01, 4d, e6, 01, 31, eb, 01, 49, 45, 00, 4d, 51, de, 01, 51, e2, 01, 4d, e6, 01, 31, eb, 01, 49, 45, 00, de, 01, 51, e2, 01, 4d, e6, 01, 31, eb, 01, 49, 45, 00, 97, 02, 55, 4d, 51, 97, 02, 55, 4d, 51, 93, 02, 59, 97, 02, 55, 4d, 51, 49, 8f, 02, 93, 02, 59, 97, 02, 55, 4d, 51, 61, 00, 8f, 03, 65, 61, 00, 8f, 03, 65, 61, 00, 8a, 03, 2d, 8f, 03, 65, 61, 00, 8a, 03, 2d, 8f, 03, 65, 61, 00, 86, 03, 69, 8a, 03, 2d, 8f, 03, 65, 61, 00, 86, 03, 69, 8a, 03, 2d, 8f, 03, 65, 61, 00, 69, 6d, 82, 03, 6d, 86, 03, 69, 8a, 03, 2d, 8f, 03, 65, 61, 00, 82, 03, 6d, 86, 03, 69, 8a, 03, 2d, 8f, 03, 65, 61, 00, bf, 03, 71, 69, 6d, bf, 03, 71, 69, 6d, bb, 03, 75, bf, 03, 71, 69, 6d, b3, 03, 00, 65, b7, 03, bb, 03, 75, bf, 03, 71, 69, 6d, 7d, cf, 06, d3, 06, 8d, 01, d7, 06, 89, 01, 81, 01, 85, 01, 79, 00, c7, 04, 7d, 79, 00, c7, 04, 7d, 79, 00, c2, 04, 29, c7, 04, 7d, 79, 00, c2, 04, 29, c7, 04, 7d, 79, 00, be, 04, 81, 01, c2, 04, 29, c7, 04, 7d, 79, 00, be, 04, 81, 01, c2, 04, 29, c7, 04, 7d, 79, 00, 81, 01, 85, 01, ba, 04, 85, 01, be, 04, 81, 01, c2, 04, 29, c7, 04, 7d, 79, 00, ba, 04, 85, 01, be, 04, 81, 01, c2, 04, 29, c7, 04, 7d, 79, 00, d7, 06, 89, 01, 81, 01, 85, 01, d7, 06, 89, 01, 81, 01, 85, 01, d3, 06, 8d, 01, d7, 06, 89, 01, 81, 01, 85, 01, 11, ff, 06, 83, 07, 21, 87, 07, 1d, 15, 19, 7d, cf, 06, d3, 06, 8d, 01, d7, 06, 89, 01, 81, 01, 85, 01, cb, 06, 11, 7d, cf, 06, d3, 06, 8d, 01, d7, 06, 89, 01, 81, 01, 85, 01, cb, 06, 11, 7d, cf, 06, d3, 06, 8d, 01, d7, 06, 89, 01, 81, 01, 85, 01, c6, 06, 25, cb, 06, 11, 7d, cf, 06, d3, 06, 8d, 01, d7, 06, 89, 01, 81, 01, 85, 01, c6, 06, 25, cb, 06, 11, 7d, cf, 06, d3, 06, 8d, 01, d7, 06, 89, 01, 81, 01, 85, 01, c2, 06, 15, c6, 06, 25, cb, 06, 11, 7d, cf, 06, d3, 06, 8d, 01, d7, 06, 89, 01, 81, 01, 85, 01, c2, 06, 15, c6, 06, 25, cb, 06, 11, 7d, cf, 06, d3, 06, 8d, 01, d7, 06, 89, 01, 81, 01, 85, 01, 15, 19, be, 06, 19, c2, 06, 15, c6, 06, 25, cb, 06, 11, 7d, cf, 06, d3, 06, 8d, 01, d7, 06, 89, 01, 81, 01, 85, 01, be, 06, 19, c2, 06, 15, c6, 06, 25, cb, 06, 11, 7d, cf, 06, d3, 06, 8d, 01, d7, 06, 89, 01, 81, 01, 85, 01, 87, 07, 1d, 15, 19, 87, 07, 1d, 15, 19, 83, 07, 21, 87, 07, 1d, 15, 19, fb, 06, 8b, 07, 11, ff, 06, 83, 07, 21, 87, 07, 1d, 15, 19, 8f, 07, 9a, 07, 93, 07, 31, 97, 07, 2d, 25, 29, 9e, 07, 0d, a3, 07, 09, 05, 00, 62, 01, 03, 01, 02, 0c, 20, 05, 00, 02, 08, 00, 0c, 05, 00, 0d, 02, 06, 00, 02, 06, 00, 07, 03, 03, 09, 00, 0a, a3, 07, 00, 10, 00, 1d, 20, 09, 9e, 07, 00, 10, 00, 1d, 09, 01, 09, 01, 0a, 9e, 07, 02, 0f, 00, 1c, 20, 0d, 9a, 07, 00, 0f, 00, 1c, 0d, 01, 0c, 00, 19, 20, 35, 4a, 00, 0c, 00, 19, 4a, 00, 1d, 00, 2a, 20, 67, 46, 00, 1d, 00, 2a, 46, 00, 2e, 00, 3c, 20, 63, 41, 00, 2e, 00, 3c, 63, 00, 3d, 02, 0a, 41, 02, 0a, 00, 0b, 5f, 01, 09, 01, 12, 9a, 07, 03, 09, 00, 0f, 03, 03, 09, 01, 0c, 20, 45, 00, 01, 08, 00, 0c, 45, 00, 0d, 02, 06, 00, 02, 06, 00, 07, eb, 01, 02, 08, 00, 15, 20, 49, e6, 01, 00, 08, 00, 15, 49, 00, 16, 02, 06, e6, 01, 02, 0f, 00, 1c, 20, e2, 01, 31, 00, 0f, 00, 1c, e2, 01, 01, 0c, 00, 19, 20, 4d, de, 01, 00, 0c, 00, 19, de, 01, 00, 1d, 00, 2a, 20, 97, 02, da, 01, 00, 1d, 00, 2a, da, 01, 00, 2e, 00, 3c, 20, 93, 02, 59, 00, 2e, 00, 3c, 93, 02, 00, 3d, 02, 0a, 59, 02, 0a, 00, 0b, 8f, 02, 01, 09, 00, 17, 31, 02, 09, 00, 0f, 8b, 02, 03, 08, 00, 0c, 20, 5d, 00, 00, 08, 00, 0c, 5d, 01, 0d, 01, 10, 20, 61, 00, 01, 0c, 00, 10, 61, 00, 11, 02, 0a, 00, 02, 0a, 00, 0b, 8f, 03, 02, 0c, 00, 19, 20, 65, 8a, 03, 00, 0c, 00, 19, 65, 00, 1a, 02, 0a, 8a, 03, 03, 11, 00, 1e, 20, 86, 03, 2d, 00, 11, 00, 1e, 86, 03, 01, 10, 00, 1d, 20, 69, 82, 03, 00, 10, 00, 1d, 82, 03, 00, 21, 00, 2e, 20, bf, 03, fe, 02, 00, 21, 00, 2e, fe, 02, 00, 32, 00, 40, 20, bb, 03, 75, 00, 32, 00, 40, bb, 03, 00, 41, 02, 0e, 75, 02, 0e, 00, 0f, b7, 03, 01, 0d, 00, 1b, 2d, 02, 0d, 00, 13, 00, 02, 06, 00, 07, af, 03, 02, 09, 01, 0c, 20, 79, 00, 01, 08, 00, 0c, 79, 00, 0d, 02, 06, 00, 02, 06, 00, 07, cb, 06, 02, 09, 00, 0a, c7, 04, 00, 10, 00, 1d, 20, 7d, c2, 04, 00, 10, 00, 1d, 7d, 00, 1e, 02, 06, c2, 04, 02, 0f, 00, 1c, 20, be, 04, 29, 00, 0f, 00, 1c, be, 04, 01, 0c, 00, 19, 20, 81, 01, ba, 04, 00, 0c, 00, 19, ba, 04, 00, 1d, 00, 2a, 20, d7, 06, b6, 04, 00, 1d, 00, 2a, b6, 04, 00, 2e, 00, 3c, 20, d3, 06, 8d, 01, 00, 2e, 00, 3c, d3, 06, 00, 3d, 02, 0a, 8d, 01, 02, 0a, 00, 0b, cf, 06, 01, 09, 00, 17, 29, 02, 0d, 02, 0f, fb, 06, 05, 09, 00, 0a, cb, 06, 00, 10, 00, 1d, 20, 11, c6, 06, 00, 10, 00, 1d, 11, 00, 1e, 02, 06, c6, 06, 02, 0f, 00, 1c, 20, c2, 06, 25, 00, 0f, 00, 1c, c2, 06, 01, 0c, 00, 19, 20, 15, be, 06, 00, 0c, 00, 19, be, 06, 00, 1d, 00, 2a, 20, 87, 07, ba, 06, 00, 1d, 00, 2a, ba, 06, 00, 2e, 00, 3c, 20, 83, 07, 21, 00, 2e, 00, 3c, 83, 07, 00, 3d, 02, 0a, 21, 02, 0a, 00, 0b, ff, 06, 01, 09, 00, 17, 25, 02, 09, 00, 0f, f7, 06, 02, 01, 00, 02] Number of files: 1 - file 0 => global file 1 -Number of expressions: 142 -- expression 0 operands: lhs = Counter(2), rhs = Expression(12, Add) -- expression 1 operands: lhs = Expression(13, Add), rhs = Counter(16) -- expression 2 operands: lhs = Expression(14, Add), rhs = Counter(15) +Number of expressions: 233 +- expression 0 operands: lhs = Counter(2), rhs = Expression(23, Add) +- expression 1 operands: lhs = Expression(24, Add), rhs = Counter(16) +- expression 2 operands: lhs = Expression(25, Add), rhs = Counter(15) - expression 3 operands: lhs = Counter(13), rhs = Counter(14) - expression 4 operands: lhs = Counter(1), rhs = Zero -- expression 5 operands: lhs = Expression(141, Add), rhs = Counter(2) +- expression 5 operands: lhs = Expression(232, Add), rhs = Counter(2) - expression 6 operands: lhs = Counter(1), rhs = Zero -- expression 7 operands: lhs = Counter(3), rhs = Counter(13) -- expression 8 operands: lhs = Expression(9, Sub), rhs = Counter(14) -- expression 9 operands: lhs = Counter(3), rhs = Counter(13) -- expression 10 operands: lhs = Expression(14, Add), rhs = Counter(15) -- expression 11 operands: lhs = Counter(13), rhs = Counter(14) -- expression 12 operands: lhs = Expression(13, Add), rhs = Counter(16) -- expression 13 operands: lhs = Expression(14, Add), rhs = Counter(15) +- expression 7 operands: lhs = Expression(232, Add), rhs = Counter(2) +- expression 8 operands: lhs = Counter(1), rhs = Zero +- expression 9 operands: lhs = Expression(231, Sub), rhs = Counter(3) +- expression 10 operands: lhs = Expression(232, Add), rhs = Counter(2) +- expression 11 operands: lhs = Counter(1), rhs = Zero +- expression 12 operands: lhs = Counter(3), rhs = Counter(13) +- expression 13 operands: lhs = Counter(3), rhs = Counter(13) - expression 14 operands: lhs = Counter(13), rhs = Counter(14) -- expression 15 operands: lhs = Expression(140, Sub), rhs = Counter(3) -- expression 16 operands: lhs = Expression(141, Add), rhs = Counter(2) -- expression 17 operands: lhs = Counter(1), rhs = Zero -- expression 18 operands: lhs = Counter(17), rhs = Zero -- expression 19 operands: lhs = Expression(32, Add), rhs = Counter(18) -- expression 20 operands: lhs = Counter(17), rhs = Zero -- expression 21 operands: lhs = Expression(31, Sub), rhs = Counter(12) -- expression 22 operands: lhs = Expression(32, Add), rhs = Counter(18) -- expression 23 operands: lhs = Counter(17), rhs = Zero -- expression 24 operands: lhs = Expression(30, Sub), rhs = Counter(19) -- expression 25 operands: lhs = Expression(31, Sub), rhs = Counter(12) -- expression 26 operands: lhs = Expression(32, Add), rhs = Counter(18) -- expression 27 operands: lhs = Counter(17), rhs = Zero -- expression 28 operands: lhs = Expression(29, Sub), rhs = Counter(20) -- expression 29 operands: lhs = Expression(30, Sub), rhs = Counter(19) -- expression 30 operands: lhs = Expression(31, Sub), rhs = Counter(12) -- expression 31 operands: lhs = Expression(32, Add), rhs = Counter(18) -- expression 32 operands: lhs = Counter(17), rhs = Zero -- expression 33 operands: lhs = Expression(41, Add), rhs = Counter(21) -- expression 34 operands: lhs = Counter(19), rhs = Counter(20) -- expression 35 operands: lhs = Expression(40, Add), rhs = Counter(22) -- expression 36 operands: lhs = Expression(41, Add), rhs = Counter(21) -- expression 37 operands: lhs = Counter(19), rhs = Counter(20) -- expression 38 operands: lhs = Counter(18), rhs = Expression(39, Add) -- expression 39 operands: lhs = Expression(40, Add), rhs = Counter(22) -- expression 40 operands: lhs = Expression(41, Add), rhs = Counter(21) -- expression 41 operands: lhs = Counter(19), rhs = Counter(20) -- expression 42 operands: lhs = Counter(24), rhs = Zero -- expression 43 operands: lhs = Expression(56, Add), rhs = Counter(25) -- expression 44 operands: lhs = Counter(24), rhs = Zero -- expression 45 operands: lhs = Expression(55, Sub), rhs = Counter(11) -- expression 46 operands: lhs = Expression(56, Add), rhs = Counter(25) -- expression 47 operands: lhs = Counter(24), rhs = Zero -- expression 48 operands: lhs = Expression(54, Sub), rhs = Counter(26) -- expression 49 operands: lhs = Expression(55, Sub), rhs = Counter(11) -- expression 50 operands: lhs = Expression(56, Add), rhs = Counter(25) -- expression 51 operands: lhs = Counter(24), rhs = Zero -- expression 52 operands: lhs = Expression(53, Sub), rhs = Counter(27) -- expression 53 operands: lhs = Expression(54, Sub), rhs = Counter(26) -- expression 54 operands: lhs = Expression(55, Sub), rhs = Counter(11) -- expression 55 operands: lhs = Expression(56, Add), rhs = Counter(25) -- expression 56 operands: lhs = Counter(24), rhs = Zero -- expression 57 operands: lhs = Expression(66, Add), rhs = Counter(28) -- expression 58 operands: lhs = Counter(26), rhs = Counter(27) -- expression 59 operands: lhs = Expression(65, Add), rhs = Counter(29) -- expression 60 operands: lhs = Expression(66, Add), rhs = Counter(28) -- expression 61 operands: lhs = Counter(26), rhs = Counter(27) -- expression 62 operands: lhs = Expression(63, Add), rhs = Zero -- expression 63 operands: lhs = Counter(25), rhs = Expression(64, Add) -- expression 64 operands: lhs = Expression(65, Add), rhs = Counter(29) -- expression 65 operands: lhs = Expression(66, Add), rhs = Counter(28) -- expression 66 operands: lhs = Counter(26), rhs = Counter(27) -- expression 67 operands: lhs = Counter(31), rhs = Expression(122, Add) -- expression 68 operands: lhs = Expression(123, Add), rhs = Counter(35) -- expression 69 operands: lhs = Expression(124, Add), rhs = Counter(34) -- expression 70 operands: lhs = Counter(32), rhs = Counter(33) -- expression 71 operands: lhs = Counter(30), rhs = Zero -- expression 72 operands: lhs = Expression(85, Add), rhs = Counter(31) -- expression 73 operands: lhs = Counter(30), rhs = Zero -- expression 74 operands: lhs = Expression(84, Sub), rhs = Counter(10) -- expression 75 operands: lhs = Expression(85, Add), rhs = Counter(31) -- expression 76 operands: lhs = Counter(30), rhs = Zero -- expression 77 operands: lhs = Expression(83, Sub), rhs = Counter(32) -- expression 78 operands: lhs = Expression(84, Sub), rhs = Counter(10) -- expression 79 operands: lhs = Expression(85, Add), rhs = Counter(31) -- expression 80 operands: lhs = Counter(30), rhs = Zero -- expression 81 operands: lhs = Expression(82, Sub), rhs = Counter(33) -- expression 82 operands: lhs = Expression(83, Sub), rhs = Counter(32) -- expression 83 operands: lhs = Expression(84, Sub), rhs = Counter(10) -- expression 84 operands: lhs = Expression(85, Add), rhs = Counter(31) -- expression 85 operands: lhs = Counter(30), rhs = Zero -- expression 86 operands: lhs = Expression(124, Add), rhs = Counter(34) -- expression 87 operands: lhs = Counter(32), rhs = Counter(33) -- expression 88 operands: lhs = Expression(123, Add), rhs = Counter(35) -- expression 89 operands: lhs = Expression(124, Add), rhs = Counter(34) -- expression 90 operands: lhs = Counter(32), rhs = Counter(33) -- expression 91 operands: lhs = Counter(4), rhs = Expression(132, Add) -- expression 92 operands: lhs = Expression(133, Add), rhs = Counter(8) -- expression 93 operands: lhs = Expression(134, Add), rhs = Counter(7) -- expression 94 operands: lhs = Counter(5), rhs = Counter(6) -- expression 95 operands: lhs = Counter(31), rhs = Expression(122, Add) -- expression 96 operands: lhs = Expression(123, Add), rhs = Counter(35) -- expression 97 operands: lhs = Expression(124, Add), rhs = Counter(34) -- expression 98 operands: lhs = Counter(32), rhs = Counter(33) -- expression 99 operands: lhs = Expression(121, Add), rhs = Counter(4) -- expression 100 operands: lhs = Counter(31), rhs = Expression(122, Add) -- expression 101 operands: lhs = Expression(123, Add), rhs = Counter(35) -- expression 102 operands: lhs = Expression(124, Add), rhs = Counter(34) -- expression 103 operands: lhs = Counter(32), rhs = Counter(33) -- expression 104 operands: lhs = Expression(120, Sub), rhs = Counter(9) -- expression 105 operands: lhs = Expression(121, Add), rhs = Counter(4) -- expression 106 operands: lhs = Counter(31), rhs = Expression(122, Add) -- expression 107 operands: lhs = Expression(123, Add), rhs = Counter(35) -- expression 108 operands: lhs = Expression(124, Add), rhs = Counter(34) -- expression 109 operands: lhs = Counter(32), rhs = Counter(33) -- expression 110 operands: lhs = Expression(119, Sub), rhs = Counter(5) -- expression 111 operands: lhs = Expression(120, Sub), rhs = Counter(9) -- expression 112 operands: lhs = Expression(121, Add), rhs = Counter(4) -- expression 113 operands: lhs = Counter(31), rhs = Expression(122, Add) -- expression 114 operands: lhs = Expression(123, Add), rhs = Counter(35) -- expression 115 operands: lhs = Expression(124, Add), rhs = Counter(34) -- expression 116 operands: lhs = Counter(32), rhs = Counter(33) -- expression 117 operands: lhs = Expression(118, Sub), rhs = Counter(6) -- expression 118 operands: lhs = Expression(119, Sub), rhs = Counter(5) -- expression 119 operands: lhs = Expression(120, Sub), rhs = Counter(9) -- expression 120 operands: lhs = Expression(121, Add), rhs = Counter(4) -- expression 121 operands: lhs = Counter(31), rhs = Expression(122, Add) -- expression 122 operands: lhs = Expression(123, Add), rhs = Counter(35) -- expression 123 operands: lhs = Expression(124, Add), rhs = Counter(34) -- expression 124 operands: lhs = Counter(32), rhs = Counter(33) -- expression 125 operands: lhs = Expression(134, Add), rhs = Counter(7) -- expression 126 operands: lhs = Counter(5), rhs = Counter(6) -- expression 127 operands: lhs = Expression(133, Add), rhs = Counter(8) -- expression 128 operands: lhs = Expression(134, Add), rhs = Counter(7) -- expression 129 operands: lhs = Counter(5), rhs = Counter(6) -- expression 130 operands: lhs = Expression(131, Add), rhs = Expression(135, Add) -- expression 131 operands: lhs = Counter(4), rhs = Expression(132, Add) -- expression 132 operands: lhs = Expression(133, Add), rhs = Counter(8) -- expression 133 operands: lhs = Expression(134, Add), rhs = Counter(7) -- expression 134 operands: lhs = Counter(5), rhs = Counter(6) -- expression 135 operands: lhs = Expression(136, Add), rhs = Expression(139, Sub) -- expression 136 operands: lhs = Expression(137, Add), rhs = Counter(12) -- expression 137 operands: lhs = Expression(138, Add), rhs = Counter(11) -- expression 138 operands: lhs = Counter(9), rhs = Counter(10) -- expression 139 operands: lhs = Expression(140, Sub), rhs = Counter(3) -- expression 140 operands: lhs = Expression(141, Add), rhs = Counter(2) -- expression 141 operands: lhs = Counter(1), rhs = Zero -Number of file 0 mappings: 68 +- expression 15 operands: lhs = Expression(18, Sub), rhs = Counter(14) +- expression 16 operands: lhs = Counter(3), rhs = Counter(13) +- expression 17 operands: lhs = Expression(18, Sub), rhs = Counter(14) +- expression 18 operands: lhs = Counter(3), rhs = Counter(13) +- expression 19 operands: lhs = Expression(25, Add), rhs = Counter(15) +- expression 20 operands: lhs = Counter(13), rhs = Counter(14) +- expression 21 operands: lhs = Expression(25, Add), rhs = Counter(15) +- expression 22 operands: lhs = Counter(13), rhs = Counter(14) +- expression 23 operands: lhs = Expression(24, Add), rhs = Counter(16) +- expression 24 operands: lhs = Expression(25, Add), rhs = Counter(15) +- expression 25 operands: lhs = Counter(13), rhs = Counter(14) +- expression 26 operands: lhs = Expression(231, Sub), rhs = Counter(3) +- expression 27 operands: lhs = Expression(232, Add), rhs = Counter(2) +- expression 28 operands: lhs = Counter(1), rhs = Zero +- expression 29 operands: lhs = Counter(17), rhs = Zero +- expression 30 operands: lhs = Expression(58, Add), rhs = Counter(18) +- expression 31 operands: lhs = Counter(17), rhs = Zero +- expression 32 operands: lhs = Expression(58, Add), rhs = Counter(18) +- expression 33 operands: lhs = Counter(17), rhs = Zero +- expression 34 operands: lhs = Expression(57, Sub), rhs = Counter(12) +- expression 35 operands: lhs = Expression(58, Add), rhs = Counter(18) +- expression 36 operands: lhs = Counter(17), rhs = Zero +- expression 37 operands: lhs = Expression(57, Sub), rhs = Counter(12) +- expression 38 operands: lhs = Expression(58, Add), rhs = Counter(18) +- expression 39 operands: lhs = Counter(17), rhs = Zero +- expression 40 operands: lhs = Expression(56, Sub), rhs = Counter(19) +- expression 41 operands: lhs = Expression(57, Sub), rhs = Counter(12) +- expression 42 operands: lhs = Expression(58, Add), rhs = Counter(18) +- expression 43 operands: lhs = Counter(17), rhs = Zero +- expression 44 operands: lhs = Expression(56, Sub), rhs = Counter(19) +- expression 45 operands: lhs = Expression(57, Sub), rhs = Counter(12) +- expression 46 operands: lhs = Expression(58, Add), rhs = Counter(18) +- expression 47 operands: lhs = Counter(17), rhs = Zero +- expression 48 operands: lhs = Counter(19), rhs = Counter(20) +- expression 49 operands: lhs = Expression(55, Sub), rhs = Counter(20) +- expression 50 operands: lhs = Expression(56, Sub), rhs = Counter(19) +- expression 51 operands: lhs = Expression(57, Sub), rhs = Counter(12) +- expression 52 operands: lhs = Expression(58, Add), rhs = Counter(18) +- expression 53 operands: lhs = Counter(17), rhs = Zero +- expression 54 operands: lhs = Expression(55, Sub), rhs = Counter(20) +- expression 55 operands: lhs = Expression(56, Sub), rhs = Counter(19) +- expression 56 operands: lhs = Expression(57, Sub), rhs = Counter(12) +- expression 57 operands: lhs = Expression(58, Add), rhs = Counter(18) +- expression 58 operands: lhs = Counter(17), rhs = Zero +- expression 59 operands: lhs = Expression(69, Add), rhs = Counter(21) +- expression 60 operands: lhs = Counter(19), rhs = Counter(20) +- expression 61 operands: lhs = Expression(69, Add), rhs = Counter(21) +- expression 62 operands: lhs = Counter(19), rhs = Counter(20) +- expression 63 operands: lhs = Expression(68, Add), rhs = Counter(22) +- expression 64 operands: lhs = Expression(69, Add), rhs = Counter(21) +- expression 65 operands: lhs = Counter(19), rhs = Counter(20) +- expression 66 operands: lhs = Counter(18), rhs = Expression(67, Add) +- expression 67 operands: lhs = Expression(68, Add), rhs = Counter(22) +- expression 68 operands: lhs = Expression(69, Add), rhs = Counter(21) +- expression 69 operands: lhs = Counter(19), rhs = Counter(20) +- expression 70 operands: lhs = Counter(24), rhs = Zero +- expression 71 operands: lhs = Expression(99, Add), rhs = Counter(25) +- expression 72 operands: lhs = Counter(24), rhs = Zero +- expression 73 operands: lhs = Expression(99, Add), rhs = Counter(25) +- expression 74 operands: lhs = Counter(24), rhs = Zero +- expression 75 operands: lhs = Expression(98, Sub), rhs = Counter(11) +- expression 76 operands: lhs = Expression(99, Add), rhs = Counter(25) +- expression 77 operands: lhs = Counter(24), rhs = Zero +- expression 78 operands: lhs = Expression(98, Sub), rhs = Counter(11) +- expression 79 operands: lhs = Expression(99, Add), rhs = Counter(25) +- expression 80 operands: lhs = Counter(24), rhs = Zero +- expression 81 operands: lhs = Expression(97, Sub), rhs = Counter(26) +- expression 82 operands: lhs = Expression(98, Sub), rhs = Counter(11) +- expression 83 operands: lhs = Expression(99, Add), rhs = Counter(25) +- expression 84 operands: lhs = Counter(24), rhs = Zero +- expression 85 operands: lhs = Expression(97, Sub), rhs = Counter(26) +- expression 86 operands: lhs = Expression(98, Sub), rhs = Counter(11) +- expression 87 operands: lhs = Expression(99, Add), rhs = Counter(25) +- expression 88 operands: lhs = Counter(24), rhs = Zero +- expression 89 operands: lhs = Counter(26), rhs = Counter(27) +- expression 90 operands: lhs = Expression(96, Sub), rhs = Counter(27) +- expression 91 operands: lhs = Expression(97, Sub), rhs = Counter(26) +- expression 92 operands: lhs = Expression(98, Sub), rhs = Counter(11) +- expression 93 operands: lhs = Expression(99, Add), rhs = Counter(25) +- expression 94 operands: lhs = Counter(24), rhs = Zero +- expression 95 operands: lhs = Expression(96, Sub), rhs = Counter(27) +- expression 96 operands: lhs = Expression(97, Sub), rhs = Counter(26) +- expression 97 operands: lhs = Expression(98, Sub), rhs = Counter(11) +- expression 98 operands: lhs = Expression(99, Add), rhs = Counter(25) +- expression 99 operands: lhs = Counter(24), rhs = Zero +- expression 100 operands: lhs = Expression(111, Add), rhs = Counter(28) +- expression 101 operands: lhs = Counter(26), rhs = Counter(27) +- expression 102 operands: lhs = Expression(111, Add), rhs = Counter(28) +- expression 103 operands: lhs = Counter(26), rhs = Counter(27) +- expression 104 operands: lhs = Expression(110, Add), rhs = Counter(29) +- expression 105 operands: lhs = Expression(111, Add), rhs = Counter(28) +- expression 106 operands: lhs = Counter(26), rhs = Counter(27) +- expression 107 operands: lhs = Expression(108, Add), rhs = Zero +- expression 108 operands: lhs = Counter(25), rhs = Expression(109, Add) +- expression 109 operands: lhs = Expression(110, Add), rhs = Counter(29) +- expression 110 operands: lhs = Expression(111, Add), rhs = Counter(28) +- expression 111 operands: lhs = Counter(26), rhs = Counter(27) +- expression 112 operands: lhs = Counter(31), rhs = Expression(211, Add) +- expression 113 operands: lhs = Expression(212, Add), rhs = Counter(35) +- expression 114 operands: lhs = Expression(213, Add), rhs = Counter(34) +- expression 115 operands: lhs = Counter(32), rhs = Counter(33) +- expression 116 operands: lhs = Counter(30), rhs = Zero +- expression 117 operands: lhs = Expression(145, Add), rhs = Counter(31) +- expression 118 operands: lhs = Counter(30), rhs = Zero +- expression 119 operands: lhs = Expression(145, Add), rhs = Counter(31) +- expression 120 operands: lhs = Counter(30), rhs = Zero +- expression 121 operands: lhs = Expression(144, Sub), rhs = Counter(10) +- expression 122 operands: lhs = Expression(145, Add), rhs = Counter(31) +- expression 123 operands: lhs = Counter(30), rhs = Zero +- expression 124 operands: lhs = Expression(144, Sub), rhs = Counter(10) +- expression 125 operands: lhs = Expression(145, Add), rhs = Counter(31) +- expression 126 operands: lhs = Counter(30), rhs = Zero +- expression 127 operands: lhs = Expression(143, Sub), rhs = Counter(32) +- expression 128 operands: lhs = Expression(144, Sub), rhs = Counter(10) +- expression 129 operands: lhs = Expression(145, Add), rhs = Counter(31) +- expression 130 operands: lhs = Counter(30), rhs = Zero +- expression 131 operands: lhs = Expression(143, Sub), rhs = Counter(32) +- expression 132 operands: lhs = Expression(144, Sub), rhs = Counter(10) +- expression 133 operands: lhs = Expression(145, Add), rhs = Counter(31) +- expression 134 operands: lhs = Counter(30), rhs = Zero +- expression 135 operands: lhs = Counter(32), rhs = Counter(33) +- expression 136 operands: lhs = Expression(142, Sub), rhs = Counter(33) +- expression 137 operands: lhs = Expression(143, Sub), rhs = Counter(32) +- expression 138 operands: lhs = Expression(144, Sub), rhs = Counter(10) +- expression 139 operands: lhs = Expression(145, Add), rhs = Counter(31) +- expression 140 operands: lhs = Counter(30), rhs = Zero +- expression 141 operands: lhs = Expression(142, Sub), rhs = Counter(33) +- expression 142 operands: lhs = Expression(143, Sub), rhs = Counter(32) +- expression 143 operands: lhs = Expression(144, Sub), rhs = Counter(10) +- expression 144 operands: lhs = Expression(145, Add), rhs = Counter(31) +- expression 145 operands: lhs = Counter(30), rhs = Zero +- expression 146 operands: lhs = Expression(213, Add), rhs = Counter(34) +- expression 147 operands: lhs = Counter(32), rhs = Counter(33) +- expression 148 operands: lhs = Expression(213, Add), rhs = Counter(34) +- expression 149 operands: lhs = Counter(32), rhs = Counter(33) +- expression 150 operands: lhs = Expression(212, Add), rhs = Counter(35) +- expression 151 operands: lhs = Expression(213, Add), rhs = Counter(34) +- expression 152 operands: lhs = Counter(32), rhs = Counter(33) +- expression 153 operands: lhs = Counter(4), rhs = Expression(223, Add) +- expression 154 operands: lhs = Expression(224, Add), rhs = Counter(8) +- expression 155 operands: lhs = Expression(225, Add), rhs = Counter(7) +- expression 156 operands: lhs = Counter(5), rhs = Counter(6) +- expression 157 operands: lhs = Counter(31), rhs = Expression(211, Add) +- expression 158 operands: lhs = Expression(212, Add), rhs = Counter(35) +- expression 159 operands: lhs = Expression(213, Add), rhs = Counter(34) +- expression 160 operands: lhs = Counter(32), rhs = Counter(33) +- expression 161 operands: lhs = Expression(210, Add), rhs = Counter(4) +- expression 162 operands: lhs = Counter(31), rhs = Expression(211, Add) +- expression 163 operands: lhs = Expression(212, Add), rhs = Counter(35) +- expression 164 operands: lhs = Expression(213, Add), rhs = Counter(34) +- expression 165 operands: lhs = Counter(32), rhs = Counter(33) +- expression 166 operands: lhs = Expression(210, Add), rhs = Counter(4) +- expression 167 operands: lhs = Counter(31), rhs = Expression(211, Add) +- expression 168 operands: lhs = Expression(212, Add), rhs = Counter(35) +- expression 169 operands: lhs = Expression(213, Add), rhs = Counter(34) +- expression 170 operands: lhs = Counter(32), rhs = Counter(33) +- expression 171 operands: lhs = Expression(209, Sub), rhs = Counter(9) +- expression 172 operands: lhs = Expression(210, Add), rhs = Counter(4) +- expression 173 operands: lhs = Counter(31), rhs = Expression(211, Add) +- expression 174 operands: lhs = Expression(212, Add), rhs = Counter(35) +- expression 175 operands: lhs = Expression(213, Add), rhs = Counter(34) +- expression 176 operands: lhs = Counter(32), rhs = Counter(33) +- expression 177 operands: lhs = Expression(209, Sub), rhs = Counter(9) +- expression 178 operands: lhs = Expression(210, Add), rhs = Counter(4) +- expression 179 operands: lhs = Counter(31), rhs = Expression(211, Add) +- expression 180 operands: lhs = Expression(212, Add), rhs = Counter(35) +- expression 181 operands: lhs = Expression(213, Add), rhs = Counter(34) +- expression 182 operands: lhs = Counter(32), rhs = Counter(33) +- expression 183 operands: lhs = Expression(208, Sub), rhs = Counter(5) +- expression 184 operands: lhs = Expression(209, Sub), rhs = Counter(9) +- expression 185 operands: lhs = Expression(210, Add), rhs = Counter(4) +- expression 186 operands: lhs = Counter(31), rhs = Expression(211, Add) +- expression 187 operands: lhs = Expression(212, Add), rhs = Counter(35) +- expression 188 operands: lhs = Expression(213, Add), rhs = Counter(34) +- expression 189 operands: lhs = Counter(32), rhs = Counter(33) +- expression 190 operands: lhs = Expression(208, Sub), rhs = Counter(5) +- expression 191 operands: lhs = Expression(209, Sub), rhs = Counter(9) +- expression 192 operands: lhs = Expression(210, Add), rhs = Counter(4) +- expression 193 operands: lhs = Counter(31), rhs = Expression(211, Add) +- expression 194 operands: lhs = Expression(212, Add), rhs = Counter(35) +- expression 195 operands: lhs = Expression(213, Add), rhs = Counter(34) +- expression 196 operands: lhs = Counter(32), rhs = Counter(33) +- expression 197 operands: lhs = Counter(5), rhs = Counter(6) +- expression 198 operands: lhs = Expression(207, Sub), rhs = Counter(6) +- expression 199 operands: lhs = Expression(208, Sub), rhs = Counter(5) +- expression 200 operands: lhs = Expression(209, Sub), rhs = Counter(9) +- expression 201 operands: lhs = Expression(210, Add), rhs = Counter(4) +- expression 202 operands: lhs = Counter(31), rhs = Expression(211, Add) +- expression 203 operands: lhs = Expression(212, Add), rhs = Counter(35) +- expression 204 operands: lhs = Expression(213, Add), rhs = Counter(34) +- expression 205 operands: lhs = Counter(32), rhs = Counter(33) +- expression 206 operands: lhs = Expression(207, Sub), rhs = Counter(6) +- expression 207 operands: lhs = Expression(208, Sub), rhs = Counter(5) +- expression 208 operands: lhs = Expression(209, Sub), rhs = Counter(9) +- expression 209 operands: lhs = Expression(210, Add), rhs = Counter(4) +- expression 210 operands: lhs = Counter(31), rhs = Expression(211, Add) +- expression 211 operands: lhs = Expression(212, Add), rhs = Counter(35) +- expression 212 operands: lhs = Expression(213, Add), rhs = Counter(34) +- expression 213 operands: lhs = Counter(32), rhs = Counter(33) +- expression 214 operands: lhs = Expression(225, Add), rhs = Counter(7) +- expression 215 operands: lhs = Counter(5), rhs = Counter(6) +- expression 216 operands: lhs = Expression(225, Add), rhs = Counter(7) +- expression 217 operands: lhs = Counter(5), rhs = Counter(6) +- expression 218 operands: lhs = Expression(224, Add), rhs = Counter(8) +- expression 219 operands: lhs = Expression(225, Add), rhs = Counter(7) +- expression 220 operands: lhs = Counter(5), rhs = Counter(6) +- expression 221 operands: lhs = Expression(222, Add), rhs = Expression(226, Add) +- expression 222 operands: lhs = Counter(4), rhs = Expression(223, Add) +- expression 223 operands: lhs = Expression(224, Add), rhs = Counter(8) +- expression 224 operands: lhs = Expression(225, Add), rhs = Counter(7) +- expression 225 operands: lhs = Counter(5), rhs = Counter(6) +- expression 226 operands: lhs = Expression(227, Add), rhs = Expression(230, Sub) +- expression 227 operands: lhs = Expression(228, Add), rhs = Counter(12) +- expression 228 operands: lhs = Expression(229, Add), rhs = Counter(11) +- expression 229 operands: lhs = Counter(9), rhs = Counter(10) +- expression 230 operands: lhs = Expression(231, Sub), rhs = Counter(3) +- expression 231 operands: lhs = Expression(232, Add), rhs = Counter(2) +- expression 232 operands: lhs = Counter(1), rhs = Zero +Number of file 0 mappings: 98 - Code(Counter(0)) at (prev + 3, 1) to (start + 2, 12) -- Code(Counter(1)) at (prev + 2, 13) to (start + 2, 6) +- Branch { true: Counter(1), false: Zero } at (prev + 2, 8) to (start + 0, 12) + true = c1 + false = Zero +- Code(Counter(1)) at (prev + 0, 13) to (start + 2, 6) - Code(Zero) at (prev + 2, 6) to (start + 0, 7) - Code(Expression(0, Add)) at (prev + 3, 9) to (start + 0, 10) = (c2 + (((c13 + c14) + c15) + c16)) -- Code(Expression(141, Add)) at (prev + 0, 16) to (start + 0, 29) +- Code(Expression(232, Add)) at (prev + 0, 16) to (start + 0, 29) = (c1 + Zero) +- Branch { true: Counter(2), false: Expression(231, Sub) } at (prev + 0, 16) to (start + 0, 29) + true = c2 + false = ((c1 + Zero) - c2) - Code(Counter(2)) at (prev + 1, 9) to (start + 1, 10) -- Code(Expression(140, Sub)) at (prev + 2, 15) to (start + 0, 28) +- Code(Expression(231, Sub)) at (prev + 2, 15) to (start + 0, 28) = ((c1 + Zero) - c2) +- Branch { true: Counter(3), false: Expression(230, Sub) } at (prev + 0, 15) to (start + 0, 28) + true = c3 + false = (((c1 + Zero) - c2) - c3) - Code(Counter(3)) at (prev + 1, 12) to (start + 0, 25) -- Code(Expression(9, Sub)) at (prev + 0, 29) to (start + 0, 42) +- Branch { true: Counter(13), false: Expression(18, Sub) } at (prev + 0, 12) to (start + 0, 25) + true = c13 + false = (c3 - c13) +- Code(Expression(18, Sub)) at (prev + 0, 29) to (start + 0, 42) = (c3 - c13) -- Code(Expression(8, Sub)) at (prev + 0, 46) to (start + 0, 60) +- Branch { true: Expression(25, Add), false: Expression(17, Sub) } at (prev + 0, 29) to (start + 0, 42) + true = (c13 + c14) + false = ((c3 - c13) - c14) +- Code(Expression(17, Sub)) at (prev + 0, 46) to (start + 0, 60) = ((c3 - c13) - c14) -- Code(Expression(13, Add)) at (prev + 0, 61) to (start + 2, 10) +- Branch { true: Expression(24, Add), false: Counter(16) } at (prev + 0, 46) to (start + 0, 60) + true = ((c13 + c14) + c15) + false = c16 +- Code(Expression(24, Add)) at (prev + 0, 61) to (start + 2, 10) = ((c13 + c14) + c15) - Code(Counter(16)) at (prev + 2, 10) to (start + 0, 11) -- Code(Expression(12, Add)) at (prev + 1, 9) to (start + 1, 18) +- Code(Expression(23, Add)) at (prev + 1, 9) to (start + 1, 18) = (((c13 + c14) + c15) + c16) -- Code(Expression(139, Sub)) at (prev + 3, 9) to (start + 0, 15) +- Code(Expression(230, Sub)) at (prev + 3, 9) to (start + 0, 15) = (((c1 + Zero) - c2) - c3) - Code(Expression(0, Add)) at (prev + 3, 9) to (start + 1, 12) = (c2 + (((c13 + c14) + c15) + c16)) -- Code(Counter(17)) at (prev + 1, 13) to (start + 2, 6) +- Branch { true: Counter(17), false: Zero } at (prev + 1, 8) to (start + 0, 12) + true = c17 + false = Zero +- Code(Counter(17)) at (prev + 0, 13) to (start + 2, 6) - Code(Zero) at (prev + 2, 6) to (start + 0, 7) -- Code(Expression(32, Add)) at (prev + 2, 8) to (start + 0, 21) +- Code(Expression(58, Add)) at (prev + 2, 8) to (start + 0, 21) = (c17 + Zero) +- Branch { true: Counter(18), false: Expression(57, Sub) } at (prev + 0, 8) to (start + 0, 21) + true = c18 + false = ((c17 + Zero) - c18) - Code(Counter(18)) at (prev + 0, 22) to (start + 2, 6) -- Code(Expression(31, Sub)) at (prev + 2, 15) to (start + 0, 28) +- Code(Expression(57, Sub)) at (prev + 2, 15) to (start + 0, 28) = ((c17 + Zero) - c18) -- Code(Expression(30, Sub)) at (prev + 1, 12) to (start + 0, 25) +- Branch { true: Expression(56, Sub), false: Counter(12) } at (prev + 0, 15) to (start + 0, 28) + true = (((c17 + Zero) - c18) - c12) + false = c12 +- Code(Expression(56, Sub)) at (prev + 1, 12) to (start + 0, 25) = (((c17 + Zero) - c18) - c12) -- Code(Expression(29, Sub)) at (prev + 0, 29) to (start + 0, 42) +- Branch { true: Counter(19), false: Expression(55, Sub) } at (prev + 0, 12) to (start + 0, 25) + true = c19 + false = ((((c17 + Zero) - c18) - c12) - c19) +- Code(Expression(55, Sub)) at (prev + 0, 29) to (start + 0, 42) = ((((c17 + Zero) - c18) - c12) - c19) -- Code(Expression(28, Sub)) at (prev + 0, 46) to (start + 0, 60) +- Branch { true: Expression(69, Add), false: Expression(54, Sub) } at (prev + 0, 29) to (start + 0, 42) + true = (c19 + c20) + false = (((((c17 + Zero) - c18) - c12) - c19) - c20) +- Code(Expression(54, Sub)) at (prev + 0, 46) to (start + 0, 60) = (((((c17 + Zero) - c18) - c12) - c19) - c20) -- Code(Expression(40, Add)) at (prev + 0, 61) to (start + 2, 10) +- Branch { true: Expression(68, Add), false: Counter(22) } at (prev + 0, 46) to (start + 0, 60) + true = ((c19 + c20) + c21) + false = c22 +- Code(Expression(68, Add)) at (prev + 0, 61) to (start + 2, 10) = ((c19 + c20) + c21) - Code(Counter(22)) at (prev + 2, 10) to (start + 0, 11) -- Code(Expression(39, Add)) at (prev + 1, 9) to (start + 0, 23) +- Code(Expression(67, Add)) at (prev + 1, 9) to (start + 0, 23) = (((c19 + c20) + c21) + c22) - Code(Counter(12)) at (prev + 2, 9) to (start + 0, 15) -- Code(Expression(38, Add)) at (prev + 3, 8) to (start + 0, 12) +- Code(Expression(66, Add)) at (prev + 3, 8) to (start + 0, 12) = (c18 + (((c19 + c20) + c21) + c22)) +- Branch { true: Counter(23), false: Zero } at (prev + 0, 8) to (start + 0, 12) + true = c23 + false = Zero - Code(Counter(23)) at (prev + 1, 13) to (start + 1, 16) -- Code(Counter(24)) at (prev + 1, 17) to (start + 2, 10) +- Branch { true: Counter(24), false: Zero } at (prev + 1, 12) to (start + 0, 16) + true = c24 + false = Zero +- Code(Counter(24)) at (prev + 0, 17) to (start + 2, 10) - Code(Zero) at (prev + 2, 10) to (start + 0, 11) -- Code(Expression(56, Add)) at (prev + 2, 12) to (start + 0, 25) +- Code(Expression(99, Add)) at (prev + 2, 12) to (start + 0, 25) = (c24 + Zero) +- Branch { true: Counter(25), false: Expression(98, Sub) } at (prev + 0, 12) to (start + 0, 25) + true = c25 + false = ((c24 + Zero) - c25) - Code(Counter(25)) at (prev + 0, 26) to (start + 2, 10) -- Code(Expression(55, Sub)) at (prev + 3, 17) to (start + 0, 30) +- Code(Expression(98, Sub)) at (prev + 3, 17) to (start + 0, 30) = ((c24 + Zero) - c25) -- Code(Expression(54, Sub)) at (prev + 1, 16) to (start + 0, 29) +- Branch { true: Expression(97, Sub), false: Counter(11) } at (prev + 0, 17) to (start + 0, 30) + true = (((c24 + Zero) - c25) - c11) + false = c11 +- Code(Expression(97, Sub)) at (prev + 1, 16) to (start + 0, 29) = (((c24 + Zero) - c25) - c11) -- Code(Expression(53, Sub)) at (prev + 0, 33) to (start + 0, 46) +- Branch { true: Counter(26), false: Expression(96, Sub) } at (prev + 0, 16) to (start + 0, 29) + true = c26 + false = ((((c24 + Zero) - c25) - c11) - c26) +- Code(Expression(96, Sub)) at (prev + 0, 33) to (start + 0, 46) = ((((c24 + Zero) - c25) - c11) - c26) -- Code(Expression(52, Sub)) at (prev + 0, 50) to (start + 0, 64) +- Branch { true: Expression(111, Add), false: Expression(95, Sub) } at (prev + 0, 33) to (start + 0, 46) + true = (c26 + c27) + false = (((((c24 + Zero) - c25) - c11) - c26) - c27) +- Code(Expression(95, Sub)) at (prev + 0, 50) to (start + 0, 64) = (((((c24 + Zero) - c25) - c11) - c26) - c27) -- Code(Expression(65, Add)) at (prev + 0, 65) to (start + 2, 14) +- Branch { true: Expression(110, Add), false: Counter(29) } at (prev + 0, 50) to (start + 0, 64) + true = ((c26 + c27) + c28) + false = c29 +- Code(Expression(110, Add)) at (prev + 0, 65) to (start + 2, 14) = ((c26 + c27) + c28) - Code(Counter(29)) at (prev + 2, 14) to (start + 0, 15) -- Code(Expression(64, Add)) at (prev + 1, 13) to (start + 0, 27) +- Code(Expression(109, Add)) at (prev + 1, 13) to (start + 0, 27) = (((c26 + c27) + c28) + c29) - Code(Counter(11)) at (prev + 2, 13) to (start + 0, 19) - Code(Zero) at (prev + 2, 6) to (start + 0, 7) -- Code(Expression(62, Add)) at (prev + 2, 9) to (start + 1, 12) +- Code(Expression(107, Add)) at (prev + 2, 9) to (start + 1, 12) = ((c25 + (((c26 + c27) + c28) + c29)) + Zero) -- Code(Counter(30)) at (prev + 1, 13) to (start + 2, 6) +- Branch { true: Counter(30), false: Zero } at (prev + 1, 8) to (start + 0, 12) + true = c30 + false = Zero +- Code(Counter(30)) at (prev + 0, 13) to (start + 2, 6) - Code(Zero) at (prev + 2, 6) to (start + 0, 7) -- Code(Expression(121, Add)) at (prev + 2, 9) to (start + 0, 10) +- Code(Expression(210, Add)) at (prev + 2, 9) to (start + 0, 10) = (c31 + (((c32 + c33) + c34) + c35)) -- Code(Expression(85, Add)) at (prev + 0, 16) to (start + 0, 29) +- Code(Expression(145, Add)) at (prev + 0, 16) to (start + 0, 29) = (c30 + Zero) +- Branch { true: Counter(31), false: Expression(144, Sub) } at (prev + 0, 16) to (start + 0, 29) + true = c31 + false = ((c30 + Zero) - c31) - Code(Counter(31)) at (prev + 0, 30) to (start + 2, 6) -- Code(Expression(84, Sub)) at (prev + 2, 15) to (start + 0, 28) +- Code(Expression(144, Sub)) at (prev + 2, 15) to (start + 0, 28) = ((c30 + Zero) - c31) -- Code(Expression(83, Sub)) at (prev + 1, 12) to (start + 0, 25) +- Branch { true: Expression(143, Sub), false: Counter(10) } at (prev + 0, 15) to (start + 0, 28) + true = (((c30 + Zero) - c31) - c10) + false = c10 +- Code(Expression(143, Sub)) at (prev + 1, 12) to (start + 0, 25) = (((c30 + Zero) - c31) - c10) -- Code(Expression(82, Sub)) at (prev + 0, 29) to (start + 0, 42) +- Branch { true: Counter(32), false: Expression(142, Sub) } at (prev + 0, 12) to (start + 0, 25) + true = c32 + false = ((((c30 + Zero) - c31) - c10) - c32) +- Code(Expression(142, Sub)) at (prev + 0, 29) to (start + 0, 42) = ((((c30 + Zero) - c31) - c10) - c32) -- Code(Expression(81, Sub)) at (prev + 0, 46) to (start + 0, 60) +- Branch { true: Expression(213, Add), false: Expression(141, Sub) } at (prev + 0, 29) to (start + 0, 42) + true = (c32 + c33) + false = (((((c30 + Zero) - c31) - c10) - c32) - c33) +- Code(Expression(141, Sub)) at (prev + 0, 46) to (start + 0, 60) = (((((c30 + Zero) - c31) - c10) - c32) - c33) -- Code(Expression(123, Add)) at (prev + 0, 61) to (start + 2, 10) +- Branch { true: Expression(212, Add), false: Counter(35) } at (prev + 0, 46) to (start + 0, 60) + true = ((c32 + c33) + c34) + false = c35 +- Code(Expression(212, Add)) at (prev + 0, 61) to (start + 2, 10) = ((c32 + c33) + c34) - Code(Counter(35)) at (prev + 2, 10) to (start + 0, 11) -- Code(Expression(122, Add)) at (prev + 1, 9) to (start + 0, 23) +- Code(Expression(211, Add)) at (prev + 1, 9) to (start + 0, 23) = (((c32 + c33) + c34) + c35) - Code(Counter(10)) at (prev + 2, 13) to (start + 2, 15) -- Code(Expression(131, Add)) at (prev + 5, 9) to (start + 0, 10) +- Code(Expression(222, Add)) at (prev + 5, 9) to (start + 0, 10) = (c4 + (((c5 + c6) + c7) + c8)) -- Code(Expression(121, Add)) at (prev + 0, 16) to (start + 0, 29) +- Code(Expression(210, Add)) at (prev + 0, 16) to (start + 0, 29) = (c31 + (((c32 + c33) + c34) + c35)) +- Branch { true: Counter(4), false: Expression(209, Sub) } at (prev + 0, 16) to (start + 0, 29) + true = c4 + false = ((c31 + (((c32 + c33) + c34) + c35)) - c4) - Code(Counter(4)) at (prev + 0, 30) to (start + 2, 6) -- Code(Expression(120, Sub)) at (prev + 2, 15) to (start + 0, 28) +- Code(Expression(209, Sub)) at (prev + 2, 15) to (start + 0, 28) = ((c31 + (((c32 + c33) + c34) + c35)) - c4) -- Code(Expression(119, Sub)) at (prev + 1, 12) to (start + 0, 25) +- Branch { true: Expression(208, Sub), false: Counter(9) } at (prev + 0, 15) to (start + 0, 28) + true = (((c31 + (((c32 + c33) + c34) + c35)) - c4) - c9) + false = c9 +- Code(Expression(208, Sub)) at (prev + 1, 12) to (start + 0, 25) = (((c31 + (((c32 + c33) + c34) + c35)) - c4) - c9) -- Code(Expression(118, Sub)) at (prev + 0, 29) to (start + 0, 42) +- Branch { true: Counter(5), false: Expression(207, Sub) } at (prev + 0, 12) to (start + 0, 25) + true = c5 + false = ((((c31 + (((c32 + c33) + c34) + c35)) - c4) - c9) - c5) +- Code(Expression(207, Sub)) at (prev + 0, 29) to (start + 0, 42) = ((((c31 + (((c32 + c33) + c34) + c35)) - c4) - c9) - c5) -- Code(Expression(117, Sub)) at (prev + 0, 46) to (start + 0, 60) +- Branch { true: Expression(225, Add), false: Expression(206, Sub) } at (prev + 0, 29) to (start + 0, 42) + true = (c5 + c6) + false = (((((c31 + (((c32 + c33) + c34) + c35)) - c4) - c9) - c5) - c6) +- Code(Expression(206, Sub)) at (prev + 0, 46) to (start + 0, 60) = (((((c31 + (((c32 + c33) + c34) + c35)) - c4) - c9) - c5) - c6) -- Code(Expression(133, Add)) at (prev + 0, 61) to (start + 2, 10) +- Branch { true: Expression(224, Add), false: Counter(8) } at (prev + 0, 46) to (start + 0, 60) + true = ((c5 + c6) + c7) + false = c8 +- Code(Expression(224, Add)) at (prev + 0, 61) to (start + 2, 10) = ((c5 + c6) + c7) - Code(Counter(8)) at (prev + 2, 10) to (start + 0, 11) -- Code(Expression(132, Add)) at (prev + 1, 9) to (start + 0, 23) +- Code(Expression(223, Add)) at (prev + 1, 9) to (start + 0, 23) = (((c5 + c6) + c7) + c8) - Code(Counter(9)) at (prev + 2, 9) to (start + 0, 15) -- Code(Expression(130, Add)) at (prev + 2, 1) to (start + 0, 2) +- Code(Expression(221, Add)) at (prev + 2, 1) to (start + 0, 2) = ((c4 + (((c5 + c6) + c7) + c8)) + ((((c9 + c10) + c11) + c12) + (((c1 + Zero) - c2) - c3))) diff --git a/tests/coverage/conditions.coverage b/tests/coverage/conditions.coverage index 473335ff641a1..684d537e840c4 100644 --- a/tests/coverage/conditions.coverage +++ b/tests/coverage/conditions.coverage @@ -3,16 +3,30 @@ LL| 1|fn main() { LL| 1| let mut countdown = 0; LL| 1| if true { + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| 1| countdown = 10; LL| 1| } ^0 LL| | LL| | const B: u32 = 100; LL| 1| let x = if countdown > 7 { + ------------------ + | Branch (LL:16): [True: 1, False: 0] + ------------------ LL| 1| countdown -= 4; LL| 1| B LL| 0| } else if countdown > 2 { + ------------------ + | Branch (LL:15): [True: 0, False: 0] + ------------------ LL| 0| if countdown < 1 || countdown > 5 || countdown != 9 { + ------------------ + | Branch (LL:12): [True: 0, False: 0] + | Branch (LL:29): [True: 0, False: 0] + | Branch (LL:46): [True: 0, False: 0] + ------------------ LL| 0| countdown = 0; LL| 0| } LL| 0| countdown -= 5; @@ -23,15 +37,29 @@ LL| | LL| 1| let mut countdown = 0; LL| 1| if true { + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| 1| countdown = 10; LL| 1| } ^0 LL| | LL| 1| if countdown > 7 { + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| 1| countdown -= 4; LL| 1| } else if countdown > 2 { ^0 + ------------------ + | Branch (LL:15): [True: 0, False: 0] + ------------------ LL| 0| if countdown < 1 || countdown > 5 || countdown != 9 { + ------------------ + | Branch (LL:12): [True: 0, False: 0] + | Branch (LL:29): [True: 0, False: 0] + | Branch (LL:46): [True: 0, False: 0] + ------------------ LL| 0| countdown = 0; LL| 0| } LL| 0| countdown -= 5; @@ -40,17 +68,34 @@ LL| | } LL| | LL| 1| if true { + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| 1| let mut countdown = 0; LL| 1| if true { + ------------------ + | Branch (LL:12): [True: 1, False: 0] + ------------------ LL| 1| countdown = 10; LL| 1| } ^0 LL| | LL| 1| if countdown > 7 { + ------------------ + | Branch (LL:12): [True: 1, False: 0] + ------------------ LL| 1| countdown -= 4; LL| 1| } LL| 0| else if countdown > 2 { + ------------------ + | Branch (LL:17): [True: 0, False: 0] + ------------------ LL| 0| if countdown < 1 || countdown > 5 || countdown != 9 { + ------------------ + | Branch (LL:16): [True: 0, False: 0] + | Branch (LL:33): [True: 0, False: 0] + | Branch (LL:50): [True: 0, False: 0] + ------------------ LL| 0| countdown = 0; LL| 0| } LL| 0| countdown -= 5; @@ -61,15 +106,29 @@ LL| | LL| 1| let mut countdown = 0; LL| 1| if true { + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| 1| countdown = 1; LL| 1| } ^0 LL| | LL| 1| let z = if countdown > 7 { ^0 + ------------------ + | Branch (LL:16): [True: 0, False: 1] + ------------------ LL| 0| countdown -= 4; LL| 1| } else if countdown > 2 { + ------------------ + | Branch (LL:15): [True: 0, False: 1] + ------------------ LL| 0| if countdown < 1 || countdown > 5 || countdown != 9 { + ------------------ + | Branch (LL:12): [True: 0, False: 0] + | Branch (LL:29): [True: 0, False: 0] + | Branch (LL:46): [True: 0, False: 0] + ------------------ LL| 0| countdown = 0; LL| 0| } LL| 0| countdown -= 5; @@ -80,9 +139,20 @@ LL| | }; LL| | LL| 0| let w = if countdown > 7 { + ------------------ + | Branch (LL:16): [True: 0, False: 0] + ------------------ LL| 0| countdown -= 4; LL| 0| } else if countdown > 2 { + ------------------ + | Branch (LL:15): [True: 0, False: 0] + ------------------ LL| 0| if countdown < 1 || countdown > 5 || countdown != 9 { + ------------------ + | Branch (LL:12): [True: 0, False: 0] + | Branch (LL:29): [True: 0, False: 0] + | Branch (LL:46): [True: 0, False: 0] + ------------------ LL| 0| countdown = 0; LL| 0| } LL| 0| countdown -= 5; diff --git a/tests/coverage/continue.cov-map b/tests/coverage/continue.cov-map index 810694d7f6623..88b06c3e0c53f 100644 --- a/tests/coverage/continue.cov-map +++ b/tests/coverage/continue.cov-map @@ -1,5 +1,5 @@ Function name: continue::main -Raw bytes (210): 0x[01, 01, 1c, 07, 09, 01, 05, 03, 0d, 1f, 15, 0d, 11, 1b, 19, 1f, 15, 0d, 11, 33, 21, 19, 1d, 2f, 25, 33, 21, 19, 1d, 47, 2d, 25, 29, 43, 31, 47, 2d, 25, 29, 31, 5f, 35, 39, 57, 3d, 31, 5f, 35, 39, 35, 39, 3d, 41, 6b, 45, 3d, 41, 49, 45, 1e, 01, 03, 01, 03, 12, 03, 04, 0e, 00, 13, 0a, 01, 0f, 00, 16, 05, 02, 11, 00, 19, 09, 02, 12, 04, 0e, 1b, 06, 0e, 00, 13, 16, 01, 0f, 00, 16, 15, 01, 16, 02, 0e, 11, 04, 11, 00, 19, 15, 03, 09, 00, 0e, 2f, 02, 0e, 00, 13, 2a, 01, 0f, 00, 16, 1d, 01, 15, 02, 0e, 21, 04, 11, 00, 19, 1d, 03, 09, 00, 0e, 43, 02, 0e, 00, 13, 3e, 01, 0c, 00, 13, 29, 01, 0d, 00, 15, 2d, 01, 0a, 01, 0e, 57, 03, 0e, 00, 13, 52, 01, 0f, 00, 16, 39, 01, 16, 02, 0e, 35, 03, 12, 02, 0e, 5f, 04, 09, 00, 0e, 6b, 02, 0e, 00, 13, 66, 01, 0f, 00, 16, 41, 01, 16, 02, 0e, 49, 04, 11, 00, 16, 41, 03, 09, 00, 0e, 6f, 02, 0d, 01, 02] +Raw bytes (217): 0x[01, 01, 1c, 07, 09, 01, 05, 03, 0d, 1f, 15, 0d, 11, 1b, 19, 1f, 15, 0d, 11, 33, 21, 19, 1d, 2f, 25, 33, 21, 19, 1d, 47, 2d, 25, 29, 43, 31, 47, 2d, 25, 29, 31, 5f, 35, 39, 57, 3d, 31, 5f, 35, 39, 35, 39, 3d, 41, 6b, 45, 3d, 41, 49, 45, 1f, 01, 03, 01, 03, 12, 03, 04, 0e, 00, 13, 0a, 01, 0f, 00, 16, 05, 02, 11, 00, 19, 09, 02, 12, 04, 0e, 1b, 06, 0e, 00, 13, 16, 01, 0f, 00, 16, 15, 01, 16, 02, 0e, 11, 04, 11, 00, 19, 15, 03, 09, 00, 0e, 2f, 02, 0e, 00, 13, 2a, 01, 0f, 00, 16, 1d, 01, 15, 02, 0e, 21, 04, 11, 00, 19, 1d, 03, 09, 00, 0e, 43, 02, 0e, 00, 13, 3e, 01, 0c, 00, 13, 20, 29, 2d, 00, 0c, 00, 13, 29, 01, 0d, 00, 15, 2d, 01, 0a, 01, 0e, 57, 03, 0e, 00, 13, 52, 01, 0f, 00, 16, 39, 01, 16, 02, 0e, 35, 03, 12, 02, 0e, 5f, 04, 09, 00, 0e, 6b, 02, 0e, 00, 13, 66, 01, 0f, 00, 16, 41, 01, 16, 02, 0e, 49, 04, 11, 00, 16, 41, 03, 09, 00, 0e, 6f, 02, 0d, 01, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 28 @@ -31,7 +31,7 @@ Number of expressions: 28 - expression 25 operands: lhs = Expression(26, Add), rhs = Counter(17) - expression 26 operands: lhs = Counter(15), rhs = Counter(16) - expression 27 operands: lhs = Counter(18), rhs = Counter(17) -Number of file 0 mappings: 30 +Number of file 0 mappings: 31 - Code(Counter(0)) at (prev + 3, 1) to (start + 3, 18) - Code(Expression(0, Add)) at (prev + 4, 14) to (start + 0, 19) = ((c0 + c1) + c2) @@ -57,6 +57,9 @@ Number of file 0 mappings: 30 = ((c9 + c10) + c11) - Code(Expression(15, Sub)) at (prev + 1, 12) to (start + 0, 19) = (((c9 + c10) + c11) - c12) +- Branch { true: Counter(10), false: Counter(11) } at (prev + 0, 12) to (start + 0, 19) + true = c10 + false = c11 - Code(Counter(10)) at (prev + 1, 13) to (start + 0, 21) - Code(Counter(11)) at (prev + 1, 10) to (start + 1, 14) - Code(Expression(21, Add)) at (prev + 3, 14) to (start + 0, 19) diff --git a/tests/coverage/continue.coverage b/tests/coverage/continue.coverage index 4916cac0038e6..b952a58ec11ed 100644 --- a/tests/coverage/continue.coverage +++ b/tests/coverage/continue.coverage @@ -39,6 +39,9 @@ LL| | } LL| 11| for _ in 0..10 { LL| 10| if is_true { + ------------------ + | Branch (LL:12): [True: 10, False: 0] + ------------------ LL| 10| continue; LL| 0| } LL| 0| x = 3; diff --git a/tests/coverage/coroutine.cov-map b/tests/coverage/coroutine.cov-map index 8dd03acc2f4dd..4be1cbe97471f 100644 --- a/tests/coverage/coroutine.cov-map +++ b/tests/coverage/coroutine.cov-map @@ -1,13 +1,16 @@ Function name: coroutine::get_u32 -Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 0b, 01, 01, 0b, 05, 01, 0e, 00, 13, 02, 00, 1d, 00, 3c, 07, 01, 01, 00, 02] +Raw bytes (35): 0x[01, 01, 02, 01, 05, 05, 02, 05, 01, 0b, 01, 01, 0b, 20, 05, 02, 01, 08, 00, 0b, 05, 00, 0e, 00, 13, 02, 00, 1d, 00, 3c, 07, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 11, 1) to (start + 1, 11) -- Code(Counter(1)) at (prev + 1, 14) to (start + 0, 19) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 1, 8) to (start + 0, 11) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 14) to (start + 0, 19) - Code(Expression(0, Sub)) at (prev + 0, 29) to (start + 0, 60) = (c0 - c1) - Code(Expression(1, Add)) at (prev + 1, 1) to (start + 0, 2) diff --git a/tests/coverage/coroutine.coverage b/tests/coverage/coroutine.coverage index 3a9791a0dbd8e..5c74f0acaa0c3 100644 --- a/tests/coverage/coroutine.coverage +++ b/tests/coverage/coroutine.coverage @@ -11,6 +11,9 @@ LL| 1|fn get_u32(val: bool) -> Result { LL| 1| if val { Ok(1) } else { Err(String::from("some error")) } ^0 + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| 1|} LL| | LL| 1|fn main() { diff --git a/tests/coverage/dead_code.cov-map b/tests/coverage/dead_code.cov-map index 0b8a40a8cde05..be240776c8323 100644 --- a/tests/coverage/dead_code.cov-map +++ b/tests/coverage/dead_code.cov-map @@ -1,37 +1,46 @@ Function name: dead_code::main -Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 1b, 01, 07, 0f, 05, 07, 10, 02, 06, 02, 02, 06, 00, 07, 07, 01, 01, 00, 02] +Raw bytes (35): 0x[01, 01, 02, 01, 05, 05, 02, 05, 01, 1b, 01, 07, 0f, 20, 05, 02, 07, 08, 00, 0f, 05, 00, 10, 02, 06, 02, 02, 06, 00, 07, 07, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 27, 1) to (start + 7, 15) -- Code(Counter(1)) at (prev + 7, 16) to (start + 2, 6) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 7, 8) to (start + 0, 15) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 16) to (start + 2, 6) - Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7) = (c0 - c1) - Code(Expression(1, Add)) at (prev + 1, 1) to (start + 0, 2) = (c1 + (c0 - c1)) Function name: dead_code::unused_fn (unused) -Raw bytes (24): 0x[01, 01, 00, 04, 00, 0f, 01, 07, 0f, 00, 07, 10, 02, 06, 00, 02, 06, 00, 07, 00, 01, 01, 00, 02] +Raw bytes (31): 0x[01, 01, 00, 05, 00, 0f, 01, 07, 0f, 20, 00, 00, 07, 08, 00, 0f, 00, 00, 10, 02, 06, 00, 02, 06, 00, 07, 00, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 0 -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Zero) at (prev + 15, 1) to (start + 7, 15) -- Code(Zero) at (prev + 7, 16) to (start + 2, 6) +- Branch { true: Zero, false: Zero } at (prev + 7, 8) to (start + 0, 15) + true = Zero + false = Zero +- Code(Zero) at (prev + 0, 16) to (start + 2, 6) - Code(Zero) at (prev + 2, 6) to (start + 0, 7) - Code(Zero) at (prev + 1, 1) to (start + 0, 2) Function name: dead_code::unused_pub_fn_not_in_library (unused) -Raw bytes (24): 0x[01, 01, 00, 04, 00, 03, 01, 07, 0f, 00, 07, 10, 02, 06, 00, 02, 06, 00, 07, 00, 01, 01, 00, 02] +Raw bytes (31): 0x[01, 01, 00, 05, 00, 03, 01, 07, 0f, 20, 00, 00, 07, 08, 00, 0f, 00, 00, 10, 02, 06, 00, 02, 06, 00, 07, 00, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 0 -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Zero) at (prev + 3, 1) to (start + 7, 15) -- Code(Zero) at (prev + 7, 16) to (start + 2, 6) +- Branch { true: Zero, false: Zero } at (prev + 7, 8) to (start + 0, 15) + true = Zero + false = Zero +- Code(Zero) at (prev + 0, 16) to (start + 2, 6) - Code(Zero) at (prev + 2, 6) to (start + 0, 7) - Code(Zero) at (prev + 1, 1) to (start + 0, 2) diff --git a/tests/coverage/dead_code.coverage b/tests/coverage/dead_code.coverage index c4ee9f23f082f..e8ecad66a964c 100644 --- a/tests/coverage/dead_code.coverage +++ b/tests/coverage/dead_code.coverage @@ -8,6 +8,9 @@ LL| 0| LL| 0| let mut countdown = 0; LL| 0| if is_true { + ------------------ + | Branch (LL:8): [Folded - Ignored] + ------------------ LL| 0| countdown = 10; LL| 0| } LL| 0|} @@ -20,6 +23,9 @@ LL| 0| LL| 0| let mut countdown = 0; LL| 0| if is_true { + ------------------ + | Branch (LL:8): [Folded - Ignored] + ------------------ LL| 0| countdown = 10; LL| 0| } LL| 0|} @@ -32,6 +38,9 @@ LL| 1| LL| 1| let mut countdown = 0; LL| 1| if is_true { + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| 1| countdown = 10; LL| 1| } ^0 diff --git a/tests/coverage/drop_trait.cov-map b/tests/coverage/drop_trait.cov-map index 203d1048b0547..1b6336f42e434 100644 --- a/tests/coverage/drop_trait.cov-map +++ b/tests/coverage/drop_trait.cov-map @@ -7,14 +7,17 @@ Number of file 0 mappings: 1 - Code(Counter(0)) at (prev + 9, 5) to (start + 2, 6) Function name: drop_trait::main -Raw bytes (26): 0x[01, 01, 01, 05, 00, 04, 01, 0e, 01, 05, 0c, 05, 06, 09, 01, 16, 00, 02, 06, 04, 0b, 03, 05, 01, 00, 02] +Raw bytes (33): 0x[01, 01, 01, 05, 00, 05, 01, 0e, 01, 05, 0c, 20, 05, 00, 05, 08, 00, 0c, 05, 01, 09, 01, 16, 00, 02, 06, 04, 0b, 03, 05, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 1 - expression 0 operands: lhs = Counter(1), rhs = Zero -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 14, 1) to (start + 5, 12) -- Code(Counter(1)) at (prev + 6, 9) to (start + 1, 22) +- Branch { true: Counter(1), false: Zero } at (prev + 5, 8) to (start + 0, 12) + true = c1 + false = Zero +- Code(Counter(1)) at (prev + 1, 9) to (start + 1, 22) - Code(Zero) at (prev + 2, 6) to (start + 4, 11) - Code(Expression(0, Add)) at (prev + 5, 1) to (start + 0, 2) = (c1 + Zero) diff --git a/tests/coverage/drop_trait.coverage b/tests/coverage/drop_trait.coverage index 2c9439a93b126..0942698b92b28 100644 --- a/tests/coverage/drop_trait.coverage +++ b/tests/coverage/drop_trait.coverage @@ -17,6 +17,9 @@ LL| 1| let _tnt = Firework { strength: 100 }; LL| 1| LL| 1| if true { + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| 1| println!("Exiting with error..."); LL| 1| return Err(1); LL| 0| } diff --git a/tests/coverage/generics.cov-map b/tests/coverage/generics.cov-map index 6079a433cd04e..dfe1e8a2165d7 100644 --- a/tests/coverage/generics.cov-map +++ b/tests/coverage/generics.cov-map @@ -31,14 +31,17 @@ Number of file 0 mappings: 1 - Code(Counter(0)) at (prev + 10, 5) to (start + 2, 6) Function name: generics::main -Raw bytes (26): 0x[01, 01, 01, 05, 00, 04, 01, 16, 01, 08, 0c, 05, 09, 09, 01, 16, 00, 02, 06, 04, 0b, 03, 05, 01, 00, 02] +Raw bytes (33): 0x[01, 01, 01, 05, 00, 05, 01, 16, 01, 08, 0c, 20, 05, 00, 08, 08, 00, 0c, 05, 01, 09, 01, 16, 00, 02, 06, 04, 0b, 03, 05, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 1 - expression 0 operands: lhs = Counter(1), rhs = Zero -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 22, 1) to (start + 8, 12) -- Code(Counter(1)) at (prev + 9, 9) to (start + 1, 22) +- Branch { true: Counter(1), false: Zero } at (prev + 8, 8) to (start + 0, 12) + true = c1 + false = Zero +- Code(Counter(1)) at (prev + 1, 9) to (start + 1, 22) - Code(Zero) at (prev + 2, 6) to (start + 4, 11) - Code(Expression(0, Add)) at (prev + 5, 1) to (start + 0, 2) = (c1 + Zero) diff --git a/tests/coverage/generics.coverage b/tests/coverage/generics.coverage index 0983918356634..7168a74aebadb 100644 --- a/tests/coverage/generics.coverage +++ b/tests/coverage/generics.coverage @@ -50,6 +50,9 @@ LL| 1| tnt.set_strength(300.3); LL| 1| LL| 1| if true { + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| 1| println!("Exiting with error..."); LL| 1| return Err(1); LL| 0| } diff --git a/tests/coverage/if.cov-map b/tests/coverage/if.cov-map index 391a69e0e821d..26f7b6be8d0e5 100644 --- a/tests/coverage/if.cov-map +++ b/tests/coverage/if.cov-map @@ -1,13 +1,16 @@ Function name: if::main -Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 03, 01, 12, 10, 05, 13, 05, 05, 06, 02, 05, 06, 00, 07, 07, 01, 01, 00, 02] +Raw bytes (35): 0x[01, 01, 02, 01, 05, 05, 02, 05, 01, 03, 01, 12, 10, 20, 05, 02, 12, 09, 00, 10, 05, 01, 05, 05, 06, 02, 05, 06, 00, 07, 07, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 3, 1) to (start + 18, 16) -- Code(Counter(1)) at (prev + 19, 5) to (start + 5, 6) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 18, 9) to (start + 0, 16) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 1, 5) to (start + 5, 6) - Code(Expression(0, Sub)) at (prev + 5, 6) to (start + 0, 7) = (c0 - c1) - Code(Expression(1, Add)) at (prev + 1, 1) to (start + 0, 2) diff --git a/tests/coverage/if.coverage b/tests/coverage/if.coverage index 2e6845190aabf..6a63dcaf5761a 100644 --- a/tests/coverage/if.coverage +++ b/tests/coverage/if.coverage @@ -19,6 +19,9 @@ LL| 1| ; LL| 1| if LL| 1| is_true + ------------------ + | Branch (LL:9): [True: 1, False: 0] + ------------------ LL| 1| { LL| 1| countdown LL| 1| = diff --git a/tests/coverage/if_else.cov-map b/tests/coverage/if_else.cov-map index da692ca3aa2a7..d7eabc4725e16 100644 --- a/tests/coverage/if_else.cov-map +++ b/tests/coverage/if_else.cov-map @@ -1,25 +1,33 @@ Function name: if_else::main -Raw bytes (53): 0x[01, 01, 07, 01, 05, 05, 02, 1b, 09, 05, 02, 09, 16, 1b, 09, 05, 02, 07, 01, 03, 01, 08, 10, 05, 09, 05, 05, 06, 02, 08, 09, 02, 10, 1b, 06, 09, 00, 10, 09, 01, 05, 05, 06, 16, 07, 05, 05, 06, 13, 06, 01, 00, 02] +Raw bytes (71): 0x[01, 01, 09, 01, 05, 05, 02, 23, 09, 05, 02, 23, 09, 05, 02, 09, 1e, 23, 09, 05, 02, 09, 01, 03, 01, 08, 10, 20, 05, 02, 08, 09, 00, 10, 05, 01, 05, 05, 06, 02, 08, 09, 02, 10, 23, 06, 09, 00, 10, 20, 09, 1e, 00, 09, 00, 10, 09, 01, 05, 05, 06, 1e, 07, 05, 05, 06, 1b, 06, 01, 00, 02] Number of files: 1 - file 0 => global file 1 -Number of expressions: 7 +Number of expressions: 9 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 2 operands: lhs = Expression(6, Add), rhs = Counter(2) +- expression 2 operands: lhs = Expression(8, Add), rhs = Counter(2) - expression 3 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 4 operands: lhs = Counter(2), rhs = Expression(5, Sub) -- expression 5 operands: lhs = Expression(6, Add), rhs = Counter(2) -- expression 6 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 7 +- expression 4 operands: lhs = Expression(8, Add), rhs = Counter(2) +- expression 5 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 6 operands: lhs = Counter(2), rhs = Expression(7, Sub) +- expression 7 operands: lhs = Expression(8, Add), rhs = Counter(2) +- expression 8 operands: lhs = Counter(1), rhs = Expression(0, Sub) +Number of file 0 mappings: 9 - Code(Counter(0)) at (prev + 3, 1) to (start + 8, 16) -- Code(Counter(1)) at (prev + 9, 5) to (start + 5, 6) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 8, 9) to (start + 0, 16) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 1, 5) to (start + 5, 6) - Code(Expression(0, Sub)) at (prev + 8, 9) to (start + 2, 16) = (c0 - c1) -- Code(Expression(6, Add)) at (prev + 6, 9) to (start + 0, 16) +- Code(Expression(8, Add)) at (prev + 6, 9) to (start + 0, 16) = (c1 + (c0 - c1)) +- Branch { true: Counter(2), false: Expression(7, Sub) } at (prev + 0, 9) to (start + 0, 16) + true = c2 + false = ((c1 + (c0 - c1)) - c2) - Code(Counter(2)) at (prev + 1, 5) to (start + 5, 6) -- Code(Expression(5, Sub)) at (prev + 7, 5) to (start + 5, 6) +- Code(Expression(7, Sub)) at (prev + 7, 5) to (start + 5, 6) = ((c1 + (c0 - c1)) - c2) -- Code(Expression(4, Add)) at (prev + 6, 1) to (start + 0, 2) +- Code(Expression(6, Add)) at (prev + 6, 1) to (start + 0, 2) = (c2 + ((c1 + (c0 - c1)) - c2)) diff --git a/tests/coverage/if_else.coverage b/tests/coverage/if_else.coverage index 0274401f0047c..4229f2f400b3d 100644 --- a/tests/coverage/if_else.coverage +++ b/tests/coverage/if_else.coverage @@ -9,6 +9,9 @@ LL| 1| let mut countdown = 0; LL| 1| if LL| 1| is_true + ------------------ + | Branch (LL:9): [True: 1, False: 0] + ------------------ LL| 1| { LL| 1| countdown LL| 1| = @@ -24,6 +27,9 @@ LL| | LL| | if LL| 1| is_true + ------------------ + | Branch (LL:9): [True: 1, False: 0] + ------------------ LL| 1| { LL| 1| countdown LL| 1| = diff --git a/tests/coverage/inline-dead.cov-map b/tests/coverage/inline-dead.cov-map index 958b423f24cf8..db524f50987f9 100644 --- a/tests/coverage/inline-dead.cov-map +++ b/tests/coverage/inline-dead.cov-map @@ -7,15 +7,18 @@ Number of file 0 mappings: 1 - Code(Zero) at (prev + 25, 1) to (start + 2, 2) Function name: inline_dead::live:: -Raw bytes (28): 0x[01, 01, 02, 01, 00, 00, 02, 04, 01, 10, 01, 01, 09, 00, 02, 09, 00, 0f, 02, 02, 09, 00, 0a, 07, 02, 01, 00, 02] +Raw bytes (35): 0x[01, 01, 02, 01, 00, 00, 02, 05, 01, 10, 01, 01, 09, 20, 00, 02, 01, 08, 00, 09, 00, 01, 09, 00, 0f, 02, 02, 09, 00, 0a, 07, 02, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Zero - expression 1 operands: lhs = Zero, rhs = Expression(0, Sub) -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 16, 1) to (start + 1, 9) -- Code(Zero) at (prev + 2, 9) to (start + 0, 15) +- Branch { true: Zero, false: Expression(0, Sub) } at (prev + 1, 8) to (start + 0, 9) + true = Zero + false = (c0 - Zero) +- Code(Zero) at (prev + 1, 9) to (start + 0, 15) - Code(Expression(0, Sub)) at (prev + 2, 9) to (start + 0, 10) = (c0 - Zero) - Code(Expression(1, Add)) at (prev + 2, 1) to (start + 0, 2) @@ -31,15 +34,21 @@ Number of file 0 mappings: 2 - Code(Counter(0)) at (prev + 7, 6) to (start + 2, 2) Function name: inline_dead::main::{closure#0} -Raw bytes (23): 0x[01, 01, 02, 00, 06, 01, 00, 03, 01, 07, 17, 00, 18, 00, 02, 0d, 00, 0e, 03, 02, 05, 00, 06] +Raw bytes (37): 0x[01, 01, 02, 01, 00, 00, 02, 05, 01, 07, 17, 00, 18, 20, 00, 02, 01, 09, 02, 0a, 00, 01, 0d, 00, 0e, 20, 00, 00, 00, 0d, 00, 0e, 07, 02, 05, 00, 06] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 -- expression 0 operands: lhs = Zero, rhs = Expression(1, Sub) -- expression 1 operands: lhs = Counter(0), rhs = Zero -Number of file 0 mappings: 3 +- expression 0 operands: lhs = Counter(0), rhs = Zero +- expression 1 operands: lhs = Zero, rhs = Expression(0, Sub) +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 7, 23) to (start + 0, 24) -- Code(Zero) at (prev + 2, 13) to (start + 0, 14) -- Code(Expression(0, Add)) at (prev + 2, 5) to (start + 0, 6) +- Branch { true: Zero, false: Expression(0, Sub) } at (prev + 1, 9) to (start + 2, 10) + true = Zero + false = (c0 - Zero) +- Code(Zero) at (prev + 1, 13) to (start + 0, 14) +- Branch { true: Zero, false: Zero } at (prev + 0, 13) to (start + 0, 14) + true = Zero + false = Zero +- Code(Expression(1, Add)) at (prev + 2, 5) to (start + 0, 6) = (Zero + (c0 - Zero)) diff --git a/tests/coverage/inline-dead.coverage b/tests/coverage/inline-dead.coverage index de96aa17acd62..ce51e26275a07 100644 --- a/tests/coverage/inline-dead.coverage +++ b/tests/coverage/inline-dead.coverage @@ -6,7 +6,13 @@ LL| 1| LL| 1| let f = |x: bool| { LL| | debug_assert!( + ------------------ + | Branch (LL:9): [True: 0, False: 1] + ------------------ LL| 0| x + ------------------ + | Branch (LL:13): [Folded - Ignored] + ------------------ LL| | ); LL| 1| }; LL| 1| f(false); @@ -15,6 +21,9 @@ LL| |#[inline] LL| 1|fn live() -> u32 { LL| 1| if B { + ------------------ + | Branch (LL:8): [True: 0, False: 1] + ------------------ LL| 0| dead() LL| | } else { LL| 1| 0 diff --git a/tests/coverage/inline.cov-map b/tests/coverage/inline.cov-map index 001c333ae6d90..d937cd3489ff9 100644 --- a/tests/coverage/inline.cov-map +++ b/tests/coverage/inline.cov-map @@ -39,25 +39,32 @@ Number of file 0 mappings: 1 - Code(Counter(0)) at (prev + 5, 1) to (start + 2, 2) Function name: inline::permutate:: -Raw bytes (52): 0x[01, 01, 04, 01, 05, 02, 0d, 05, 0f, 09, 0d, 08, 01, 0f, 01, 02, 0e, 05, 02, 0f, 02, 06, 02, 02, 0f, 00, 14, 11, 01, 0d, 00, 0e, 06, 00, 12, 00, 16, 11, 00, 17, 04, 0a, 0d, 05, 0c, 02, 06, 0b, 03, 01, 00, 02] +Raw bytes (68): 0x[01, 01, 05, 01, 05, 02, 0d, 02, 0d, 05, 13, 09, 0d, 0a, 01, 0f, 01, 02, 0e, 20, 05, 02, 02, 08, 00, 0e, 05, 00, 0f, 02, 06, 02, 02, 0f, 00, 14, 20, 0a, 0d, 00, 0f, 00, 14, 11, 01, 0d, 00, 0e, 0a, 00, 12, 00, 16, 11, 00, 17, 04, 0a, 0d, 05, 0c, 02, 06, 0f, 03, 01, 00, 02] Number of files: 1 - file 0 => global file 1 -Number of expressions: 4 +Number of expressions: 5 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Expression(0, Sub), rhs = Counter(3) -- expression 2 operands: lhs = Counter(1), rhs = Expression(3, Add) -- expression 3 operands: lhs = Counter(2), rhs = Counter(3) -Number of file 0 mappings: 8 +- expression 2 operands: lhs = Expression(0, Sub), rhs = Counter(3) +- expression 3 operands: lhs = Counter(1), rhs = Expression(4, Add) +- expression 4 operands: lhs = Counter(2), rhs = Counter(3) +Number of file 0 mappings: 10 - Code(Counter(0)) at (prev + 15, 1) to (start + 2, 14) -- Code(Counter(1)) at (prev + 2, 15) to (start + 2, 6) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 2, 8) to (start + 0, 14) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 15) to (start + 2, 6) - Code(Expression(0, Sub)) at (prev + 2, 15) to (start + 0, 20) = (c0 - c1) +- Branch { true: Expression(2, Sub), false: Counter(3) } at (prev + 0, 15) to (start + 0, 20) + true = ((c0 - c1) - c3) + false = c3 - Code(Counter(4)) at (prev + 1, 13) to (start + 0, 14) -- Code(Expression(1, Sub)) at (prev + 0, 18) to (start + 0, 22) +- Code(Expression(2, Sub)) at (prev + 0, 18) to (start + 0, 22) = ((c0 - c1) - c3) - Code(Counter(4)) at (prev + 0, 23) to (start + 4, 10) - Code(Counter(3)) at (prev + 5, 12) to (start + 2, 6) -- Code(Expression(2, Add)) at (prev + 3, 1) to (start + 0, 2) +- Code(Expression(3, Add)) at (prev + 3, 1) to (start + 0, 2) = (c1 + (c2 + c3)) Function name: inline::permutations:: diff --git a/tests/coverage/inline.coverage b/tests/coverage/inline.coverage index 68a2e408306d5..0881db4579718 100644 --- a/tests/coverage/inline.coverage +++ b/tests/coverage/inline.coverage @@ -15,8 +15,14 @@ LL| 16|fn permutate(xs: &mut [T], k: usize) { LL| 16| let n = length(xs); LL| 16| if k == n { + ------------------ + | Branch (LL:8): [True: 6, False: 10] + ------------------ LL| 6| display(xs); LL| 10| } else if k < n { + ------------------ + | Branch (LL:15): [True: 10, False: 0] + ------------------ LL| 15| for i in k..n { ^10 LL| 15| swap(xs, i, k); diff --git a/tests/coverage/inner_items.cov-map b/tests/coverage/inner_items.cov-map index 3f39d74efbaca..dc9d4bda3d3b0 100644 --- a/tests/coverage/inner_items.cov-map +++ b/tests/coverage/inner_items.cov-map @@ -15,28 +15,36 @@ Number of file 0 mappings: 1 - Code(Counter(0)) at (prev + 40, 9) to (start + 3, 10) Function name: inner_items::main -Raw bytes (53): 0x[01, 01, 07, 01, 05, 05, 02, 1b, 09, 05, 02, 09, 16, 1b, 09, 05, 02, 07, 01, 03, 01, 07, 0f, 05, 07, 10, 02, 06, 02, 02, 06, 00, 07, 1b, 24, 08, 00, 0f, 09, 00, 10, 02, 06, 16, 02, 06, 00, 07, 13, 02, 09, 05, 02] +Raw bytes (71): 0x[01, 01, 09, 01, 05, 05, 02, 23, 09, 05, 02, 23, 09, 05, 02, 09, 1e, 23, 09, 05, 02, 09, 01, 03, 01, 07, 0f, 20, 05, 02, 07, 08, 00, 0f, 05, 00, 10, 02, 06, 02, 02, 06, 00, 07, 23, 24, 08, 00, 0f, 20, 09, 1e, 00, 08, 00, 0f, 09, 00, 10, 02, 06, 1e, 02, 06, 00, 07, 1b, 02, 09, 05, 02] Number of files: 1 - file 0 => global file 1 -Number of expressions: 7 +Number of expressions: 9 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 2 operands: lhs = Expression(6, Add), rhs = Counter(2) +- expression 2 operands: lhs = Expression(8, Add), rhs = Counter(2) - expression 3 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 4 operands: lhs = Counter(2), rhs = Expression(5, Sub) -- expression 5 operands: lhs = Expression(6, Add), rhs = Counter(2) -- expression 6 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 7 +- expression 4 operands: lhs = Expression(8, Add), rhs = Counter(2) +- expression 5 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 6 operands: lhs = Counter(2), rhs = Expression(7, Sub) +- expression 7 operands: lhs = Expression(8, Add), rhs = Counter(2) +- expression 8 operands: lhs = Counter(1), rhs = Expression(0, Sub) +Number of file 0 mappings: 9 - Code(Counter(0)) at (prev + 3, 1) to (start + 7, 15) -- Code(Counter(1)) at (prev + 7, 16) to (start + 2, 6) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 7, 8) to (start + 0, 15) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 16) to (start + 2, 6) - Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7) = (c0 - c1) -- Code(Expression(6, Add)) at (prev + 36, 8) to (start + 0, 15) +- Code(Expression(8, Add)) at (prev + 36, 8) to (start + 0, 15) = (c1 + (c0 - c1)) +- Branch { true: Counter(2), false: Expression(7, Sub) } at (prev + 0, 8) to (start + 0, 15) + true = c2 + false = ((c1 + (c0 - c1)) - c2) - Code(Counter(2)) at (prev + 0, 16) to (start + 2, 6) -- Code(Expression(5, Sub)) at (prev + 2, 6) to (start + 0, 7) +- Code(Expression(7, Sub)) at (prev + 2, 6) to (start + 0, 7) = ((c1 + (c0 - c1)) - c2) -- Code(Expression(4, Add)) at (prev + 2, 9) to (start + 5, 2) +- Code(Expression(6, Add)) at (prev + 2, 9) to (start + 5, 2) = (c2 + ((c1 + (c0 - c1)) - c2)) Function name: inner_items::main::in_func diff --git a/tests/coverage/inner_items.coverage b/tests/coverage/inner_items.coverage index 65493bcd9db45..91d46519719f4 100644 --- a/tests/coverage/inner_items.coverage +++ b/tests/coverage/inner_items.coverage @@ -8,6 +8,9 @@ LL| 1| LL| 1| let mut countdown = 0; LL| 1| if is_true { + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| 1| countdown = 10; LL| 1| } ^0 @@ -47,6 +50,9 @@ LL| | type InType = String; LL| | LL| 1| if is_true { + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| 1| in_func(countdown); LL| 1| } ^0 diff --git a/tests/coverage/issue-83601.cov-map b/tests/coverage/issue-83601.cov-map index f5db3a89750c7..11458b9a46320 100644 --- a/tests/coverage/issue-83601.cov-map +++ b/tests/coverage/issue-83601.cov-map @@ -15,14 +15,22 @@ Number of file 0 mappings: 1 - Code(Counter(0)) at (prev + 3, 10) to (start + 0, 15) Function name: issue_83601::main -Raw bytes (21): 0x[01, 01, 01, 05, 09, 03, 01, 06, 01, 02, 1c, 05, 03, 09, 01, 1c, 02, 02, 05, 03, 02] +Raw bytes (39): 0x[01, 01, 03, 01, 05, 05, 09, 05, 09, 05, 01, 06, 01, 02, 1c, 20, 05, 02, 02, 05, 00, 1c, 05, 01, 09, 01, 1c, 20, 09, 0a, 01, 05, 00, 1c, 0a, 01, 05, 03, 02] Number of files: 1 - file 0 => global file 1 -Number of expressions: 1 -- expression 0 operands: lhs = Counter(1), rhs = Counter(2) -Number of file 0 mappings: 3 +Number of expressions: 3 +- expression 0 operands: lhs = Counter(0), rhs = Counter(1) +- expression 1 operands: lhs = Counter(1), rhs = Counter(2) +- expression 2 operands: lhs = Counter(1), rhs = Counter(2) +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 6, 1) to (start + 2, 28) -- Code(Counter(1)) at (prev + 3, 9) to (start + 1, 28) -- Code(Expression(0, Sub)) at (prev + 2, 5) to (start + 3, 2) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 2, 5) to (start + 0, 28) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 1, 9) to (start + 1, 28) +- Branch { true: Counter(2), false: Expression(2, Sub) } at (prev + 1, 5) to (start + 0, 28) + true = c2 + false = (c1 - c2) +- Code(Expression(2, Sub)) at (prev + 1, 5) to (start + 3, 2) = (c1 - c2) diff --git a/tests/coverage/issue-83601.coverage b/tests/coverage/issue-83601.coverage index 7995332cad339..b4ef3470126d0 100644 --- a/tests/coverage/issue-83601.coverage +++ b/tests/coverage/issue-83601.coverage @@ -7,8 +7,14 @@ LL| 1|fn main() { LL| 1| let bar = Foo(1); LL| 1| assert_eq!(bar, Foo(1)); + ------------------ + | Branch (LL:5): [True: 1, False: 0] + ------------------ LL| 1| let baz = Foo(0); LL| 1| assert_ne!(baz, Foo(1)); + ------------------ + | Branch (LL:5): [True: 0, False: 1] + ------------------ LL| 1| println!("{:?}", Foo(1)); LL| 1| println!("{:?}", bar); LL| 1| println!("{:?}", baz); diff --git a/tests/coverage/issue-84561.cov-map b/tests/coverage/issue-84561.cov-map index 82582b309bfcf..ea9c49513a5c0 100644 --- a/tests/coverage/issue-84561.cov-map +++ b/tests/coverage/issue-84561.cov-map @@ -30,50 +30,80 @@ Number of file 0 mappings: 1 - Code(Counter(0)) at (prev + 178, 1) to (start + 4, 2) Function name: issue_84561::test1 -Raw bytes (78): 0x[01, 01, 0e, 05, 06, 01, 05, 09, 36, 03, 09, 0d, 2e, 33, 0d, 09, 36, 03, 09, 11, 26, 2b, 11, 0d, 2e, 33, 0d, 09, 36, 03, 09, 09, 01, 98, 01, 01, 01, 0b, 05, 01, 0c, 00, 1e, 03, 01, 05, 00, 0b, 09, 00, 0c, 00, 1e, 33, 01, 0d, 01, 0b, 0d, 01, 0c, 00, 1e, 2b, 01, 05, 03, 0b, 11, 03, 0c, 00, 1e, 23, 01, 01, 00, 02] +Raw bytes (136): 0x[01, 01, 1d, 01, 05, 05, 02, 73, 09, 05, 02, 09, 6e, 73, 09, 05, 02, 6b, 0d, 09, 6e, 73, 09, 05, 02, 0d, 66, 6b, 0d, 09, 6e, 73, 09, 05, 02, 63, 11, 0d, 66, 6b, 0d, 09, 6e, 73, 09, 05, 02, 11, 5e, 63, 11, 0d, 66, 6b, 0d, 09, 6e, 73, 09, 05, 02, 0d, 01, 98, 01, 01, 01, 0b, 20, 05, 02, 01, 05, 00, 1f, 05, 00, 0c, 00, 1e, 73, 01, 05, 00, 0b, 20, 09, 6e, 00, 05, 00, 1f, 09, 00, 0c, 00, 1e, 6b, 01, 0d, 01, 0b, 20, 0d, 66, 01, 05, 00, 1f, 0d, 00, 0c, 00, 1e, 63, 01, 05, 03, 0b, 20, 11, 5e, 03, 05, 00, 1f, 11, 00, 0c, 00, 1e, 5b, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 -Number of expressions: 14 -- expression 0 operands: lhs = Counter(1), rhs = Expression(1, Sub) -- expression 1 operands: lhs = Counter(0), rhs = Counter(1) -- expression 2 operands: lhs = Counter(2), rhs = Expression(13, Sub) -- expression 3 operands: lhs = Expression(0, Add), rhs = Counter(2) -- expression 4 operands: lhs = Counter(3), rhs = Expression(11, Sub) -- expression 5 operands: lhs = Expression(12, Add), rhs = Counter(3) -- expression 6 operands: lhs = Counter(2), rhs = Expression(13, Sub) -- expression 7 operands: lhs = Expression(0, Add), rhs = Counter(2) -- expression 8 operands: lhs = Counter(4), rhs = Expression(9, Sub) -- expression 9 operands: lhs = Expression(10, Add), rhs = Counter(4) -- expression 10 operands: lhs = Counter(3), rhs = Expression(11, Sub) -- expression 11 operands: lhs = Expression(12, Add), rhs = Counter(3) -- expression 12 operands: lhs = Counter(2), rhs = Expression(13, Sub) -- expression 13 operands: lhs = Expression(0, Add), rhs = Counter(2) -Number of file 0 mappings: 9 +Number of expressions: 29 +- expression 0 operands: lhs = Counter(0), rhs = Counter(1) +- expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 2 operands: lhs = Expression(28, Add), rhs = Counter(2) +- expression 3 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 4 operands: lhs = Counter(2), rhs = Expression(27, Sub) +- expression 5 operands: lhs = Expression(28, Add), rhs = Counter(2) +- expression 6 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 7 operands: lhs = Expression(26, Add), rhs = Counter(3) +- expression 8 operands: lhs = Counter(2), rhs = Expression(27, Sub) +- expression 9 operands: lhs = Expression(28, Add), rhs = Counter(2) +- expression 10 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 11 operands: lhs = Counter(3), rhs = Expression(25, Sub) +- expression 12 operands: lhs = Expression(26, Add), rhs = Counter(3) +- expression 13 operands: lhs = Counter(2), rhs = Expression(27, Sub) +- expression 14 operands: lhs = Expression(28, Add), rhs = Counter(2) +- expression 15 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 16 operands: lhs = Expression(24, Add), rhs = Counter(4) +- expression 17 operands: lhs = Counter(3), rhs = Expression(25, Sub) +- expression 18 operands: lhs = Expression(26, Add), rhs = Counter(3) +- expression 19 operands: lhs = Counter(2), rhs = Expression(27, Sub) +- expression 20 operands: lhs = Expression(28, Add), rhs = Counter(2) +- expression 21 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 22 operands: lhs = Counter(4), rhs = Expression(23, Sub) +- expression 23 operands: lhs = Expression(24, Add), rhs = Counter(4) +- expression 24 operands: lhs = Counter(3), rhs = Expression(25, Sub) +- expression 25 operands: lhs = Expression(26, Add), rhs = Counter(3) +- expression 26 operands: lhs = Counter(2), rhs = Expression(27, Sub) +- expression 27 operands: lhs = Expression(28, Add), rhs = Counter(2) +- expression 28 operands: lhs = Counter(1), rhs = Expression(0, Sub) +Number of file 0 mappings: 13 - Code(Counter(0)) at (prev + 152, 1) to (start + 1, 11) -- Code(Counter(1)) at (prev + 1, 12) to (start + 0, 30) -- Code(Expression(0, Add)) at (prev + 1, 5) to (start + 0, 11) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 1, 5) to (start + 0, 31) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 12) to (start + 0, 30) +- Code(Expression(28, Add)) at (prev + 1, 5) to (start + 0, 11) = (c1 + (c0 - c1)) +- Branch { true: Counter(2), false: Expression(27, Sub) } at (prev + 0, 5) to (start + 0, 31) + true = c2 + false = ((c1 + (c0 - c1)) - c2) - Code(Counter(2)) at (prev + 0, 12) to (start + 0, 30) -- Code(Expression(12, Add)) at (prev + 1, 13) to (start + 1, 11) +- Code(Expression(26, Add)) at (prev + 1, 13) to (start + 1, 11) = (c2 + ((c1 + (c0 - c1)) - c2)) -- Code(Counter(3)) at (prev + 1, 12) to (start + 0, 30) -- Code(Expression(10, Add)) at (prev + 1, 5) to (start + 3, 11) +- Branch { true: Counter(3), false: Expression(25, Sub) } at (prev + 1, 5) to (start + 0, 31) + true = c3 + false = ((c2 + ((c1 + (c0 - c1)) - c2)) - c3) +- Code(Counter(3)) at (prev + 0, 12) to (start + 0, 30) +- Code(Expression(24, Add)) at (prev + 1, 5) to (start + 3, 11) = (c3 + ((c2 + ((c1 + (c0 - c1)) - c2)) - c3)) -- Code(Counter(4)) at (prev + 3, 12) to (start + 0, 30) -- Code(Expression(8, Add)) at (prev + 1, 1) to (start + 0, 2) +- Branch { true: Counter(4), false: Expression(23, Sub) } at (prev + 3, 5) to (start + 0, 31) + true = c4 + false = ((c3 + ((c2 + ((c1 + (c0 - c1)) - c2)) - c3)) - c4) +- Code(Counter(4)) at (prev + 0, 12) to (start + 0, 30) +- Code(Expression(22, Add)) at (prev + 1, 1) to (start + 0, 2) = (c4 + ((c3 + ((c2 + ((c1 + (c0 - c1)) - c2)) - c3)) - c4)) Function name: issue_84561::test2 -Raw bytes (24): 0x[01, 01, 02, 05, 06, 01, 05, 03, 01, ae, 01, 01, 01, 10, 05, 01, 11, 00, 23, 03, 01, 01, 00, 02] +Raw bytes (31): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, ae, 01, 01, 01, 10, 20, 05, 02, 01, 05, 00, 24, 05, 00, 11, 00, 23, 07, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 -- expression 0 operands: lhs = Counter(1), rhs = Expression(1, Sub) -- expression 1 operands: lhs = Counter(0), rhs = Counter(1) -Number of file 0 mappings: 3 +- expression 0 operands: lhs = Counter(0), rhs = Counter(1) +- expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) +Number of file 0 mappings: 4 - Code(Counter(0)) at (prev + 174, 1) to (start + 1, 16) -- Code(Counter(1)) at (prev + 1, 17) to (start + 0, 35) -- Code(Expression(0, Add)) at (prev + 1, 1) to (start + 0, 2) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 1, 5) to (start + 0, 36) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 17) to (start + 0, 35) +- Code(Expression(1, Add)) at (prev + 1, 1) to (start + 0, 2) = (c1 + (c0 - c1)) Function name: issue_84561::test2::call_print @@ -85,148 +115,312 @@ Number of file 0 mappings: 1 - Code(Counter(0)) at (prev + 165, 9) to (start + 2, 10) Function name: issue_84561::test3 -Raw bytes (436): 0x[01, 01, 41, 05, 09, 0d, 00, 15, 19, 12, 00, 15, 19, 21, 00, 1e, 00, 21, 00, 31, 00, 3d, 41, 2e, 45, 3d, 41, 42, 49, 45, 00, 3f, 51, 42, 49, 45, 00, 5d, 8a, 01, 8f, 01, 5d, 92, 01, 55, 51, 00, 92, 01, 55, 51, 00, 8f, 01, 5d, 92, 01, 55, 51, 00, 87, 01, 61, 5d, 8a, 01, 8f, 01, 5d, 92, 01, 55, 51, 00, 82, 01, 65, 87, 01, 61, 5d, 8a, 01, 8f, 01, 5d, 92, 01, 55, 51, 00, 75, f6, 01, fb, 01, 79, 71, fe, 01, 82, 02, 71, 69, 6d, 71, fe, 01, 82, 02, 71, 69, 6d, 69, 6d, 82, 02, 71, 69, 6d, fb, 01, 79, 71, fe, 01, 82, 02, 71, 69, 6d, f3, 01, 7d, 75, f6, 01, fb, 01, 79, 71, fe, 01, 82, 02, 71, 69, 6d, ee, 01, 00, f3, 01, 7d, 75, f6, 01, fb, 01, 79, 71, fe, 01, 82, 02, 71, 69, 6d, 33, 01, 06, 01, 03, 1c, 05, 04, 09, 01, 1c, 02, 02, 05, 04, 1f, 0d, 05, 05, 00, 1f, 06, 01, 05, 00, 1f, 15, 01, 09, 01, 1c, 12, 02, 05, 00, 1f, 0e, 01, 05, 00, 0f, 00, 00, 20, 00, 30, 21, 01, 05, 03, 0f, 00, 03, 20, 00, 30, 00, 00, 33, 00, 41, 00, 00, 4b, 00, 5a, 1e, 01, 05, 00, 0f, 00, 05, 09, 03, 10, 00, 05, 0d, 00, 1b, 00, 02, 0d, 00, 1c, 1a, 04, 09, 05, 06, 31, 06, 05, 03, 06, 22, 04, 05, 03, 06, 3d, 04, 09, 04, 06, 2e, 05, 08, 00, 0f, 45, 01, 09, 03, 0a, 2a, 05, 09, 03, 0a, 3f, 05, 08, 00, 0f, 51, 01, 09, 00, 13, 00, 03, 0d, 00, 1d, 3a, 03, 09, 00, 13, 00, 03, 0d, 00, 1d, 87, 01, 03, 05, 00, 0f, 8f, 01, 01, 0c, 00, 13, 5d, 01, 0d, 00, 13, 8a, 01, 02, 0d, 00, 13, 82, 01, 04, 05, 02, 13, 65, 03, 0d, 00, 13, 7e, 02, 0d, 00, 13, f3, 01, 03, 05, 00, 0f, 69, 01, 0c, 00, 13, 6d, 01, 0d, 03, 0e, 75, 04, 0d, 00, 13, fb, 01, 02, 0d, 00, 17, 82, 02, 01, 14, 00, 1b, 71, 01, 15, 00, 1b, fe, 01, 02, 15, 00, 1b, f6, 01, 04, 0d, 00, 13, 7d, 03, 09, 00, 19, ee, 01, 02, 05, 00, 0f, ea, 01, 03, 09, 00, 22, 00, 02, 05, 00, 0f, 00, 03, 09, 00, 2c, 00, 02, 01, 00, 02] +Raw bytes (859): 0x[01, 01, 82, 01, 01, 05, 05, 09, 05, 09, 12, 0d, 05, 09, 0d, 00, 0d, 00, 22, 15, 0d, 00, 15, 19, 15, 19, 3a, 00, 15, 19, 3a, 00, 15, 19, 21, 00, 21, 00, 5e, 00, 21, 00, 5e, 00, 21, 00, 5a, 31, 5e, 00, 21, 00, 31, 00, 31, 00, 6e, 3d, 31, 00, 3d, 41, 3d, 41, 96, 01, 45, 3d, 41, 45, 00, 96, 01, 45, 3d, 41, 92, 01, 49, 96, 01, 45, 3d, 41, ba, 01, 49, 45, 00, b7, 01, 51, ba, 01, 49, 45, 00, 51, 00, b7, 01, 51, ba, 01, 49, 45, 00, 5d, ba, 02, bf, 02, 5d, c2, 02, 55, 51, 00, b7, 02, 61, 5d, ba, 02, bf, 02, 5d, c2, 02, 55, 51, 00, c2, 02, 55, 51, 00, bf, 02, 5d, c2, 02, 55, 51, 00, bf, 02, 5d, c2, 02, 55, 51, 00, b7, 02, 61, 5d, ba, 02, bf, 02, 5d, c2, 02, 55, 51, 00, b2, 02, 65, b7, 02, 61, 5d, ba, 02, bf, 02, 5d, c2, 02, 55, 51, 00, b2, 02, 65, b7, 02, 61, 5d, ba, 02, bf, 02, 5d, c2, 02, 55, 51, 00, 79, fa, 03, ff, 03, 7d, 75, 82, 04, 86, 04, 75, 6d, 71, f7, 03, 81, 01, 79, fa, 03, ff, 03, 7d, 75, 82, 04, 86, 04, 75, 6d, 71, 6d, 71, 71, 79, 75, 82, 04, 86, 04, 75, 6d, 71, ff, 03, 7d, 75, 82, 04, 86, 04, 75, 6d, 71, 6d, 71, 86, 04, 75, 6d, 71, 86, 04, 75, 6d, 71, ff, 03, 7d, 75, 82, 04, 86, 04, 75, 6d, 71, f7, 03, 81, 01, 79, fa, 03, ff, 03, 7d, 75, 82, 04, 86, 04, 75, 6d, 71, f2, 03, 00, f7, 03, 81, 01, 79, fa, 03, ff, 03, 7d, 75, 82, 04, 86, 04, 75, 6d, 71, f2, 03, 00, f7, 03, 81, 01, 79, fa, 03, ff, 03, 7d, 75, 82, 04, 86, 04, 75, 6d, 71, 54, 01, 06, 01, 03, 1c, 20, 05, 02, 03, 05, 00, 1c, 05, 01, 09, 01, 1c, 20, 09, 12, 01, 05, 00, 1c, 12, 01, 05, 04, 1f, 20, 0d, 0e, 04, 05, 00, 1f, 0d, 01, 05, 00, 1f, 20, 00, 22, 00, 05, 00, 1f, 22, 01, 05, 00, 1f, 20, 15, 1e, 00, 05, 00, 1f, 15, 01, 09, 01, 1c, 20, 19, 3a, 01, 05, 00, 1c, 3a, 01, 05, 00, 1f, 20, 00, 36, 00, 05, 00, 1f, 36, 01, 05, 00, 0f, 20, 21, 00, 00, 05, 00, 31, 00, 00, 20, 00, 30, 21, 01, 05, 03, 0f, 20, 00, 5e, 03, 05, 00, 5d, 00, 00, 20, 00, 30, 20, 00, 00, 00, 29, 00, 30, 00, 00, 33, 00, 41, 00, 00, 4b, 00, 5a, 5e, 01, 05, 00, 0f, 20, 00, 5a, 00, 05, 0e, 06, 00, 05, 09, 03, 10, 20, 00, 00, 03, 09, 00, 10, 00, 02, 0d, 00, 1b, 00, 02, 0d, 00, 1c, 5a, 04, 09, 05, 06, 20, 31, 56, 02, 05, 03, 06, 31, 04, 05, 03, 06, 20, 00, 6e, 00, 05, 03, 06, 6e, 04, 05, 03, 06, 20, 3d, 6a, 00, 05, 03, 06, 3d, 04, 09, 04, 06, 20, 41, 96, 01, 01, 05, 03, 06, 96, 01, 04, 08, 00, 0f, 20, 45, 92, 01, 00, 08, 00, 0f, 45, 01, 09, 03, 0a, 20, 00, ba, 01, 00, 09, 03, 0a, 92, 01, 05, 09, 03, 0a, 20, 49, 8e, 01, 00, 09, 03, 0a, b7, 01, 05, 08, 00, 0f, 20, 51, b2, 01, 00, 08, 00, 0f, 51, 01, 09, 00, 13, 20, 00, c2, 02, 00, 09, 04, 0a, 00, 03, 0d, 00, 1d, b2, 01, 03, 09, 00, 13, 20, 55, 00, 00, 09, 04, 0a, 00, 03, 0d, 00, 1d, b7, 02, 03, 05, 00, 0f, 20, 61, b2, 02, 00, 05, 07, 06, bf, 02, 01, 0c, 00, 13, 20, 5d, ba, 02, 00, 0c, 00, 13, 5d, 01, 0d, 00, 13, ba, 02, 02, 0d, 00, 13, b2, 02, 04, 05, 02, 13, 20, 69, 6d, 00, 05, 07, 06, 20, 65, ae, 02, 02, 0c, 00, 13, 65, 01, 0d, 00, 13, ae, 02, 02, 0d, 00, 13, f7, 03, 03, 05, 00, 0f, 20, 81, 01, f2, 03, 00, 05, 14, 06, 6d, 01, 0c, 00, 13, 20, 71, 86, 04, 00, 0c, 00, 13, 71, 01, 0d, 03, 0e, 20, 79, f6, 02, 00, 0d, 03, 0e, 79, 04, 0d, 00, 13, ff, 03, 02, 0d, 00, 17, 20, 7d, fa, 03, 00, 0d, 07, 0e, 86, 04, 01, 14, 00, 1b, 20, 75, 82, 04, 00, 14, 00, 1b, 75, 01, 15, 00, 1b, 82, 04, 02, 15, 00, 1b, fa, 03, 04, 0d, 00, 13, 81, 01, 03, 09, 00, 19, f2, 03, 02, 05, 00, 0f, 20, 00, ee, 03, 00, 05, 04, 06, ee, 03, 03, 09, 00, 22, 00, 02, 05, 00, 0f, 20, 00, 00, 00, 05, 04, 06, 00, 03, 09, 00, 2c, 00, 02, 01, 00, 02] Number of files: 1 - file 0 => global file 1 -Number of expressions: 65 -- expression 0 operands: lhs = Counter(1), rhs = Counter(2) -- expression 1 operands: lhs = Counter(3), rhs = Zero -- expression 2 operands: lhs = Counter(5), rhs = Counter(6) -- expression 3 operands: lhs = Expression(4, Sub), rhs = Zero -- expression 4 operands: lhs = Counter(5), rhs = Counter(6) -- expression 5 operands: lhs = Counter(8), rhs = Zero -- expression 6 operands: lhs = Expression(7, Sub), rhs = Zero -- expression 7 operands: lhs = Counter(8), rhs = Zero -- expression 8 operands: lhs = Counter(12), rhs = Zero -- expression 9 operands: lhs = Counter(15), rhs = Counter(16) -- expression 10 operands: lhs = Expression(11, Sub), rhs = Counter(17) -- expression 11 operands: lhs = Counter(15), rhs = Counter(16) -- expression 12 operands: lhs = Expression(16, Sub), rhs = Counter(18) -- expression 13 operands: lhs = Counter(17), rhs = Zero -- expression 14 operands: lhs = Expression(15, Add), rhs = Counter(20) -- expression 15 operands: lhs = Expression(16, Sub), rhs = Counter(18) -- expression 16 operands: lhs = Counter(17), rhs = Zero -- expression 17 operands: lhs = Counter(23), rhs = Expression(34, Sub) -- expression 18 operands: lhs = Expression(35, Add), rhs = Counter(23) -- expression 19 operands: lhs = Expression(36, Sub), rhs = Counter(21) -- expression 20 operands: lhs = Counter(20), rhs = Zero -- expression 21 operands: lhs = Expression(36, Sub), rhs = Counter(21) -- expression 22 operands: lhs = Counter(20), rhs = Zero -- expression 23 operands: lhs = Expression(35, Add), rhs = Counter(23) -- expression 24 operands: lhs = Expression(36, Sub), rhs = Counter(21) -- expression 25 operands: lhs = Counter(20), rhs = Zero -- expression 26 operands: lhs = Expression(33, Add), rhs = Counter(24) -- expression 27 operands: lhs = Counter(23), rhs = Expression(34, Sub) -- expression 28 operands: lhs = Expression(35, Add), rhs = Counter(23) -- expression 29 operands: lhs = Expression(36, Sub), rhs = Counter(21) -- expression 30 operands: lhs = Counter(20), rhs = Zero -- expression 31 operands: lhs = Expression(32, Sub), rhs = Counter(25) -- expression 32 operands: lhs = Expression(33, Add), rhs = Counter(24) -- expression 33 operands: lhs = Counter(23), rhs = Expression(34, Sub) -- expression 34 operands: lhs = Expression(35, Add), rhs = Counter(23) -- expression 35 operands: lhs = Expression(36, Sub), rhs = Counter(21) -- expression 36 operands: lhs = Counter(20), rhs = Zero -- expression 37 operands: lhs = Counter(29), rhs = Expression(61, Sub) -- expression 38 operands: lhs = Expression(62, Add), rhs = Counter(30) -- expression 39 operands: lhs = Counter(28), rhs = Expression(63, Sub) -- expression 40 operands: lhs = Expression(64, Sub), rhs = Counter(28) -- expression 41 operands: lhs = Counter(26), rhs = Counter(27) -- expression 42 operands: lhs = Counter(28), rhs = Expression(63, Sub) -- expression 43 operands: lhs = Expression(64, Sub), rhs = Counter(28) -- expression 44 operands: lhs = Counter(26), rhs = Counter(27) -- expression 45 operands: lhs = Counter(26), rhs = Counter(27) -- expression 46 operands: lhs = Expression(64, Sub), rhs = Counter(28) -- expression 47 operands: lhs = Counter(26), rhs = Counter(27) -- expression 48 operands: lhs = Expression(62, Add), rhs = Counter(30) -- expression 49 operands: lhs = Counter(28), rhs = Expression(63, Sub) -- expression 50 operands: lhs = Expression(64, Sub), rhs = Counter(28) -- expression 51 operands: lhs = Counter(26), rhs = Counter(27) -- expression 52 operands: lhs = Expression(60, Add), rhs = Counter(31) -- expression 53 operands: lhs = Counter(29), rhs = Expression(61, Sub) -- expression 54 operands: lhs = Expression(62, Add), rhs = Counter(30) -- expression 55 operands: lhs = Counter(28), rhs = Expression(63, Sub) -- expression 56 operands: lhs = Expression(64, Sub), rhs = Counter(28) -- expression 57 operands: lhs = Counter(26), rhs = Counter(27) -- expression 58 operands: lhs = Expression(59, Sub), rhs = Zero -- expression 59 operands: lhs = Expression(60, Add), rhs = Counter(31) -- expression 60 operands: lhs = Counter(29), rhs = Expression(61, Sub) -- expression 61 operands: lhs = Expression(62, Add), rhs = Counter(30) -- expression 62 operands: lhs = Counter(28), rhs = Expression(63, Sub) -- expression 63 operands: lhs = Expression(64, Sub), rhs = Counter(28) -- expression 64 operands: lhs = Counter(26), rhs = Counter(27) -Number of file 0 mappings: 51 +Number of expressions: 130 +- expression 0 operands: lhs = Counter(0), rhs = Counter(1) +- expression 1 operands: lhs = Counter(1), rhs = Counter(2) +- expression 2 operands: lhs = Counter(1), rhs = Counter(2) +- expression 3 operands: lhs = Expression(4, Sub), rhs = Counter(3) +- expression 4 operands: lhs = Counter(1), rhs = Counter(2) +- expression 5 operands: lhs = Counter(3), rhs = Zero +- expression 6 operands: lhs = Counter(3), rhs = Zero +- expression 7 operands: lhs = Expression(8, Sub), rhs = Counter(5) +- expression 8 operands: lhs = Counter(3), rhs = Zero +- expression 9 operands: lhs = Counter(5), rhs = Counter(6) +- expression 10 operands: lhs = Counter(5), rhs = Counter(6) +- expression 11 operands: lhs = Expression(14, Sub), rhs = Zero +- expression 12 operands: lhs = Counter(5), rhs = Counter(6) +- expression 13 operands: lhs = Expression(14, Sub), rhs = Zero +- expression 14 operands: lhs = Counter(5), rhs = Counter(6) +- expression 15 operands: lhs = Counter(8), rhs = Zero +- expression 16 operands: lhs = Counter(8), rhs = Zero +- expression 17 operands: lhs = Expression(23, Sub), rhs = Zero +- expression 18 operands: lhs = Counter(8), rhs = Zero +- expression 19 operands: lhs = Expression(23, Sub), rhs = Zero +- expression 20 operands: lhs = Counter(8), rhs = Zero +- expression 21 operands: lhs = Expression(22, Sub), rhs = Counter(12) +- expression 22 operands: lhs = Expression(23, Sub), rhs = Zero +- expression 23 operands: lhs = Counter(8), rhs = Zero +- expression 24 operands: lhs = Counter(12), rhs = Zero +- expression 25 operands: lhs = Counter(12), rhs = Zero +- expression 26 operands: lhs = Expression(27, Sub), rhs = Counter(15) +- expression 27 operands: lhs = Counter(12), rhs = Zero +- expression 28 operands: lhs = Counter(15), rhs = Counter(16) +- expression 29 operands: lhs = Counter(15), rhs = Counter(16) +- expression 30 operands: lhs = Expression(37, Sub), rhs = Counter(17) +- expression 31 operands: lhs = Counter(15), rhs = Counter(16) +- expression 32 operands: lhs = Counter(17), rhs = Zero +- expression 33 operands: lhs = Expression(37, Sub), rhs = Counter(17) +- expression 34 operands: lhs = Counter(15), rhs = Counter(16) +- expression 35 operands: lhs = Expression(36, Sub), rhs = Counter(18) +- expression 36 operands: lhs = Expression(37, Sub), rhs = Counter(17) +- expression 37 operands: lhs = Counter(15), rhs = Counter(16) +- expression 38 operands: lhs = Expression(46, Sub), rhs = Counter(18) +- expression 39 operands: lhs = Counter(17), rhs = Zero +- expression 40 operands: lhs = Expression(45, Add), rhs = Counter(20) +- expression 41 operands: lhs = Expression(46, Sub), rhs = Counter(18) +- expression 42 operands: lhs = Counter(17), rhs = Zero +- expression 43 operands: lhs = Counter(20), rhs = Zero +- expression 44 operands: lhs = Expression(45, Add), rhs = Counter(20) +- expression 45 operands: lhs = Expression(46, Sub), rhs = Counter(18) +- expression 46 operands: lhs = Counter(17), rhs = Zero +- expression 47 operands: lhs = Counter(23), rhs = Expression(78, Sub) +- expression 48 operands: lhs = Expression(79, Add), rhs = Counter(23) +- expression 49 operands: lhs = Expression(80, Sub), rhs = Counter(21) +- expression 50 operands: lhs = Counter(20), rhs = Zero +- expression 51 operands: lhs = Expression(77, Add), rhs = Counter(24) +- expression 52 operands: lhs = Counter(23), rhs = Expression(78, Sub) +- expression 53 operands: lhs = Expression(79, Add), rhs = Counter(23) +- expression 54 operands: lhs = Expression(80, Sub), rhs = Counter(21) +- expression 55 operands: lhs = Counter(20), rhs = Zero +- expression 56 operands: lhs = Expression(80, Sub), rhs = Counter(21) +- expression 57 operands: lhs = Counter(20), rhs = Zero +- expression 58 operands: lhs = Expression(79, Add), rhs = Counter(23) +- expression 59 operands: lhs = Expression(80, Sub), rhs = Counter(21) +- expression 60 operands: lhs = Counter(20), rhs = Zero +- expression 61 operands: lhs = Expression(79, Add), rhs = Counter(23) +- expression 62 operands: lhs = Expression(80, Sub), rhs = Counter(21) +- expression 63 operands: lhs = Counter(20), rhs = Zero +- expression 64 operands: lhs = Expression(77, Add), rhs = Counter(24) +- expression 65 operands: lhs = Counter(23), rhs = Expression(78, Sub) +- expression 66 operands: lhs = Expression(79, Add), rhs = Counter(23) +- expression 67 operands: lhs = Expression(80, Sub), rhs = Counter(21) +- expression 68 operands: lhs = Counter(20), rhs = Zero +- expression 69 operands: lhs = Expression(76, Sub), rhs = Counter(25) +- expression 70 operands: lhs = Expression(77, Add), rhs = Counter(24) +- expression 71 operands: lhs = Counter(23), rhs = Expression(78, Sub) +- expression 72 operands: lhs = Expression(79, Add), rhs = Counter(23) +- expression 73 operands: lhs = Expression(80, Sub), rhs = Counter(21) +- expression 74 operands: lhs = Counter(20), rhs = Zero +- expression 75 operands: lhs = Expression(76, Sub), rhs = Counter(25) +- expression 76 operands: lhs = Expression(77, Add), rhs = Counter(24) +- expression 77 operands: lhs = Counter(23), rhs = Expression(78, Sub) +- expression 78 operands: lhs = Expression(79, Add), rhs = Counter(23) +- expression 79 operands: lhs = Expression(80, Sub), rhs = Counter(21) +- expression 80 operands: lhs = Counter(20), rhs = Zero +- expression 81 operands: lhs = Counter(30), rhs = Expression(126, Sub) +- expression 82 operands: lhs = Expression(127, Add), rhs = Counter(31) +- expression 83 operands: lhs = Counter(29), rhs = Expression(128, Sub) +- expression 84 operands: lhs = Expression(129, Sub), rhs = Counter(29) +- expression 85 operands: lhs = Counter(27), rhs = Counter(28) +- expression 86 operands: lhs = Expression(125, Add), rhs = Counter(32) +- expression 87 operands: lhs = Counter(30), rhs = Expression(126, Sub) +- expression 88 operands: lhs = Expression(127, Add), rhs = Counter(31) +- expression 89 operands: lhs = Counter(29), rhs = Expression(128, Sub) +- expression 90 operands: lhs = Expression(129, Sub), rhs = Counter(29) +- expression 91 operands: lhs = Counter(27), rhs = Counter(28) +- expression 92 operands: lhs = Counter(27), rhs = Counter(28) +- expression 93 operands: lhs = Counter(28), rhs = Counter(30) +- expression 94 operands: lhs = Counter(29), rhs = Expression(128, Sub) +- expression 95 operands: lhs = Expression(129, Sub), rhs = Counter(29) +- expression 96 operands: lhs = Counter(27), rhs = Counter(28) +- expression 97 operands: lhs = Expression(127, Add), rhs = Counter(31) +- expression 98 operands: lhs = Counter(29), rhs = Expression(128, Sub) +- expression 99 operands: lhs = Expression(129, Sub), rhs = Counter(29) +- expression 100 operands: lhs = Counter(27), rhs = Counter(28) +- expression 101 operands: lhs = Counter(27), rhs = Counter(28) +- expression 102 operands: lhs = Expression(129, Sub), rhs = Counter(29) +- expression 103 operands: lhs = Counter(27), rhs = Counter(28) +- expression 104 operands: lhs = Expression(129, Sub), rhs = Counter(29) +- expression 105 operands: lhs = Counter(27), rhs = Counter(28) +- expression 106 operands: lhs = Expression(127, Add), rhs = Counter(31) +- expression 107 operands: lhs = Counter(29), rhs = Expression(128, Sub) +- expression 108 operands: lhs = Expression(129, Sub), rhs = Counter(29) +- expression 109 operands: lhs = Counter(27), rhs = Counter(28) +- expression 110 operands: lhs = Expression(125, Add), rhs = Counter(32) +- expression 111 operands: lhs = Counter(30), rhs = Expression(126, Sub) +- expression 112 operands: lhs = Expression(127, Add), rhs = Counter(31) +- expression 113 operands: lhs = Counter(29), rhs = Expression(128, Sub) +- expression 114 operands: lhs = Expression(129, Sub), rhs = Counter(29) +- expression 115 operands: lhs = Counter(27), rhs = Counter(28) +- expression 116 operands: lhs = Expression(124, Sub), rhs = Zero +- expression 117 operands: lhs = Expression(125, Add), rhs = Counter(32) +- expression 118 operands: lhs = Counter(30), rhs = Expression(126, Sub) +- expression 119 operands: lhs = Expression(127, Add), rhs = Counter(31) +- expression 120 operands: lhs = Counter(29), rhs = Expression(128, Sub) +- expression 121 operands: lhs = Expression(129, Sub), rhs = Counter(29) +- expression 122 operands: lhs = Counter(27), rhs = Counter(28) +- expression 123 operands: lhs = Expression(124, Sub), rhs = Zero +- expression 124 operands: lhs = Expression(125, Add), rhs = Counter(32) +- expression 125 operands: lhs = Counter(30), rhs = Expression(126, Sub) +- expression 126 operands: lhs = Expression(127, Add), rhs = Counter(31) +- expression 127 operands: lhs = Counter(29), rhs = Expression(128, Sub) +- expression 128 operands: lhs = Expression(129, Sub), rhs = Counter(29) +- expression 129 operands: lhs = Counter(27), rhs = Counter(28) +Number of file 0 mappings: 84 - Code(Counter(0)) at (prev + 6, 1) to (start + 3, 28) -- Code(Counter(1)) at (prev + 4, 9) to (start + 1, 28) -- Code(Expression(0, Sub)) at (prev + 2, 5) to (start + 4, 31) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 3, 5) to (start + 0, 28) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 1, 9) to (start + 1, 28) +- Branch { true: Counter(2), false: Expression(4, Sub) } at (prev + 1, 5) to (start + 0, 28) + true = c2 + false = (c1 - c2) +- Code(Expression(4, Sub)) at (prev + 1, 5) to (start + 4, 31) = (c1 - c2) -- Code(Counter(3)) at (prev + 5, 5) to (start + 0, 31) -- Code(Expression(1, Sub)) at (prev + 1, 5) to (start + 0, 31) +- Branch { true: Counter(3), false: Expression(3, Sub) } at (prev + 4, 5) to (start + 0, 31) + true = c3 + false = ((c1 - c2) - c3) +- Code(Counter(3)) at (prev + 1, 5) to (start + 0, 31) +- Branch { true: Zero, false: Expression(8, Sub) } at (prev + 0, 5) to (start + 0, 31) + true = Zero + false = (c3 - Zero) +- Code(Expression(8, Sub)) at (prev + 1, 5) to (start + 0, 31) = (c3 - Zero) +- Branch { true: Counter(5), false: Expression(7, Sub) } at (prev + 0, 5) to (start + 0, 31) + true = c5 + false = ((c3 - Zero) - c5) - Code(Counter(5)) at (prev + 1, 9) to (start + 1, 28) -- Code(Expression(4, Sub)) at (prev + 2, 5) to (start + 0, 31) +- Branch { true: Counter(6), false: Expression(14, Sub) } at (prev + 1, 5) to (start + 0, 28) + true = c6 + false = (c5 - c6) +- Code(Expression(14, Sub)) at (prev + 1, 5) to (start + 0, 31) = (c5 - c6) -- Code(Expression(3, Sub)) at (prev + 1, 5) to (start + 0, 15) +- Branch { true: Zero, false: Expression(13, Sub) } at (prev + 0, 5) to (start + 0, 31) + true = Zero + false = ((c5 - c6) - Zero) +- Code(Expression(13, Sub)) at (prev + 1, 5) to (start + 0, 15) = ((c5 - c6) - Zero) +- Branch { true: Counter(8), false: Zero } at (prev + 0, 5) to (start + 0, 49) + true = c8 + false = Zero - Code(Zero) at (prev + 0, 32) to (start + 0, 48) - Code(Counter(8)) at (prev + 1, 5) to (start + 3, 15) -- Code(Zero) at (prev + 3, 32) to (start + 0, 48) +- Branch { true: Zero, false: Expression(23, Sub) } at (prev + 3, 5) to (start + 0, 93) + true = Zero + false = (c8 - Zero) +- Code(Zero) at (prev + 0, 32) to (start + 0, 48) +- Branch { true: Zero, false: Zero } at (prev + 0, 41) to (start + 0, 48) + true = Zero + false = Zero - Code(Zero) at (prev + 0, 51) to (start + 0, 65) - Code(Zero) at (prev + 0, 75) to (start + 0, 90) -- Code(Expression(7, Sub)) at (prev + 1, 5) to (start + 0, 15) +- Code(Expression(23, Sub)) at (prev + 1, 5) to (start + 0, 15) = (c8 - Zero) +- Branch { true: Zero, false: Expression(22, Sub) } at (prev + 0, 5) to (start + 14, 6) + true = Zero + false = ((c8 - Zero) - Zero) - Code(Zero) at (prev + 5, 9) to (start + 3, 16) -- Code(Zero) at (prev + 5, 13) to (start + 0, 27) +- Branch { true: Zero, false: Zero } at (prev + 3, 9) to (start + 0, 16) + true = Zero + false = Zero +- Code(Zero) at (prev + 2, 13) to (start + 0, 27) - Code(Zero) at (prev + 2, 13) to (start + 0, 28) -- Code(Expression(6, Sub)) at (prev + 4, 9) to (start + 5, 6) +- Code(Expression(22, Sub)) at (prev + 4, 9) to (start + 5, 6) = ((c8 - Zero) - Zero) -- Code(Counter(12)) at (prev + 6, 5) to (start + 3, 6) -- Code(Expression(8, Sub)) at (prev + 4, 5) to (start + 3, 6) +- Branch { true: Counter(12), false: Expression(21, Sub) } at (prev + 2, 5) to (start + 3, 6) + true = c12 + false = (((c8 - Zero) - Zero) - c12) +- Code(Counter(12)) at (prev + 4, 5) to (start + 3, 6) +- Branch { true: Zero, false: Expression(27, Sub) } at (prev + 0, 5) to (start + 3, 6) + true = Zero + false = (c12 - Zero) +- Code(Expression(27, Sub)) at (prev + 4, 5) to (start + 3, 6) = (c12 - Zero) +- Branch { true: Counter(15), false: Expression(26, Sub) } at (prev + 0, 5) to (start + 3, 6) + true = c15 + false = ((c12 - Zero) - c15) - Code(Counter(15)) at (prev + 4, 9) to (start + 4, 6) -- Code(Expression(11, Sub)) at (prev + 5, 8) to (start + 0, 15) +- Branch { true: Counter(16), false: Expression(37, Sub) } at (prev + 1, 5) to (start + 3, 6) + true = c16 + false = (c15 - c16) +- Code(Expression(37, Sub)) at (prev + 4, 8) to (start + 0, 15) = (c15 - c16) +- Branch { true: Counter(17), false: Expression(36, Sub) } at (prev + 0, 8) to (start + 0, 15) + true = c17 + false = ((c15 - c16) - c17) - Code(Counter(17)) at (prev + 1, 9) to (start + 3, 10) -- Code(Expression(10, Sub)) at (prev + 5, 9) to (start + 3, 10) +- Branch { true: Zero, false: Expression(46, Sub) } at (prev + 0, 9) to (start + 3, 10) + true = Zero + false = (c17 - Zero) +- Code(Expression(36, Sub)) at (prev + 5, 9) to (start + 3, 10) = ((c15 - c16) - c17) -- Code(Expression(15, Add)) at (prev + 5, 8) to (start + 0, 15) +- Branch { true: Counter(18), false: Expression(35, Sub) } at (prev + 0, 9) to (start + 3, 10) + true = c18 + false = (((c15 - c16) - c17) - c18) +- Code(Expression(45, Add)) at (prev + 5, 8) to (start + 0, 15) = ((c17 - Zero) + c18) +- Branch { true: Counter(20), false: Expression(44, Sub) } at (prev + 0, 8) to (start + 0, 15) + true = c20 + false = (((c17 - Zero) + c18) - c20) - Code(Counter(20)) at (prev + 1, 9) to (start + 0, 19) +- Branch { true: Zero, false: Expression(80, Sub) } at (prev + 0, 9) to (start + 4, 10) + true = Zero + false = (c20 - Zero) - Code(Zero) at (prev + 3, 13) to (start + 0, 29) -- Code(Expression(14, Sub)) at (prev + 3, 9) to (start + 0, 19) +- Code(Expression(44, Sub)) at (prev + 3, 9) to (start + 0, 19) = (((c17 - Zero) + c18) - c20) +- Branch { true: Counter(21), false: Zero } at (prev + 0, 9) to (start + 4, 10) + true = c21 + false = Zero - Code(Zero) at (prev + 3, 13) to (start + 0, 29) -- Code(Expression(33, Add)) at (prev + 3, 5) to (start + 0, 15) +- Code(Expression(77, Add)) at (prev + 3, 5) to (start + 0, 15) = (c23 + (((c20 - Zero) + c21) - c23)) -- Code(Expression(35, Add)) at (prev + 1, 12) to (start + 0, 19) +- Branch { true: Counter(24), false: Expression(76, Sub) } at (prev + 0, 5) to (start + 7, 6) + true = c24 + false = ((c23 + (((c20 - Zero) + c21) - c23)) - c24) +- Code(Expression(79, Add)) at (prev + 1, 12) to (start + 0, 19) = ((c20 - Zero) + c21) +- Branch { true: Counter(23), false: Expression(78, Sub) } at (prev + 0, 12) to (start + 0, 19) + true = c23 + false = (((c20 - Zero) + c21) - c23) - Code(Counter(23)) at (prev + 1, 13) to (start + 0, 19) -- Code(Expression(34, Sub)) at (prev + 2, 13) to (start + 0, 19) +- Code(Expression(78, Sub)) at (prev + 2, 13) to (start + 0, 19) = (((c20 - Zero) + c21) - c23) -- Code(Expression(32, Sub)) at (prev + 4, 5) to (start + 2, 19) +- Code(Expression(76, Sub)) at (prev + 4, 5) to (start + 2, 19) = ((c23 + (((c20 - Zero) + c21) - c23)) - c24) -- Code(Counter(25)) at (prev + 3, 13) to (start + 0, 19) -- Code(Expression(31, Sub)) at (prev + 2, 13) to (start + 0, 19) +- Branch { true: Counter(26), false: Counter(27) } at (prev + 0, 5) to (start + 7, 6) + true = c26 + false = c27 +- Branch { true: Counter(25), false: Expression(75, Sub) } at (prev + 2, 12) to (start + 0, 19) + true = c25 + false = (((c23 + (((c20 - Zero) + c21) - c23)) - c24) - c25) +- Code(Counter(25)) at (prev + 1, 13) to (start + 0, 19) +- Code(Expression(75, Sub)) at (prev + 2, 13) to (start + 0, 19) = (((c23 + (((c20 - Zero) + c21) - c23)) - c24) - c25) -- Code(Expression(60, Add)) at (prev + 3, 5) to (start + 0, 15) - = (c29 + ((c28 + ((c26 - c27) - c28)) - c30)) -- Code(Counter(26)) at (prev + 1, 12) to (start + 0, 19) -- Code(Counter(27)) at (prev + 1, 13) to (start + 3, 14) -- Code(Counter(29)) at (prev + 4, 13) to (start + 0, 19) -- Code(Expression(62, Add)) at (prev + 2, 13) to (start + 0, 23) - = (c28 + ((c26 - c27) - c28)) -- Code(Expression(64, Sub)) at (prev + 1, 20) to (start + 0, 27) - = (c26 - c27) -- Code(Counter(28)) at (prev + 1, 21) to (start + 0, 27) -- Code(Expression(63, Sub)) at (prev + 2, 21) to (start + 0, 27) - = ((c26 - c27) - c28) -- Code(Expression(61, Sub)) at (prev + 4, 13) to (start + 0, 19) - = ((c28 + ((c26 - c27) - c28)) - c30) -- Code(Counter(31)) at (prev + 3, 9) to (start + 0, 25) -- Code(Expression(59, Sub)) at (prev + 2, 5) to (start + 0, 15) - = ((c29 + ((c28 + ((c26 - c27) - c28)) - c30)) - c31) -- Code(Expression(58, Sub)) at (prev + 3, 9) to (start + 0, 34) - = (((c29 + ((c28 + ((c26 - c27) - c28)) - c30)) - c31) - Zero) +- Code(Expression(125, Add)) at (prev + 3, 5) to (start + 0, 15) + = (c30 + ((c29 + ((c27 - c28) - c29)) - c31)) +- Branch { true: Counter(32), false: Expression(124, Sub) } at (prev + 0, 5) to (start + 20, 6) + true = c32 + false = ((c30 + ((c29 + ((c27 - c28) - c29)) - c31)) - c32) +- Code(Counter(27)) at (prev + 1, 12) to (start + 0, 19) +- Branch { true: Counter(28), false: Expression(129, Sub) } at (prev + 0, 12) to (start + 0, 19) + true = c28 + false = (c27 - c28) +- Code(Counter(28)) at (prev + 1, 13) to (start + 3, 14) +- Branch { true: Counter(30), false: Expression(93, Sub) } at (prev + 0, 13) to (start + 3, 14) + true = c30 + false = (c28 - c30) +- Code(Counter(30)) at (prev + 4, 13) to (start + 0, 19) +- Code(Expression(127, Add)) at (prev + 2, 13) to (start + 0, 23) + = (c29 + ((c27 - c28) - c29)) +- Branch { true: Counter(31), false: Expression(126, Sub) } at (prev + 0, 13) to (start + 7, 14) + true = c31 + false = ((c29 + ((c27 - c28) - c29)) - c31) +- Code(Expression(129, Sub)) at (prev + 1, 20) to (start + 0, 27) + = (c27 - c28) +- Branch { true: Counter(29), false: Expression(128, Sub) } at (prev + 0, 20) to (start + 0, 27) + true = c29 + false = ((c27 - c28) - c29) +- Code(Counter(29)) at (prev + 1, 21) to (start + 0, 27) +- Code(Expression(128, Sub)) at (prev + 2, 21) to (start + 0, 27) + = ((c27 - c28) - c29) +- Code(Expression(126, Sub)) at (prev + 4, 13) to (start + 0, 19) + = ((c29 + ((c27 - c28) - c29)) - c31) +- Code(Counter(32)) at (prev + 3, 9) to (start + 0, 25) +- Code(Expression(124, Sub)) at (prev + 2, 5) to (start + 0, 15) + = ((c30 + ((c29 + ((c27 - c28) - c29)) - c31)) - c32) +- Branch { true: Zero, false: Expression(123, Sub) } at (prev + 0, 5) to (start + 4, 6) + true = Zero + false = (((c30 + ((c29 + ((c27 - c28) - c29)) - c31)) - c32) - Zero) +- Code(Expression(123, Sub)) at (prev + 3, 9) to (start + 0, 34) + = (((c30 + ((c29 + ((c27 - c28) - c29)) - c31)) - c32) - Zero) - Code(Zero) at (prev + 2, 5) to (start + 0, 15) +- Branch { true: Zero, false: Zero } at (prev + 0, 5) to (start + 4, 6) + true = Zero + false = Zero - Code(Zero) at (prev + 3, 9) to (start + 0, 44) - Code(Zero) at (prev + 2, 1) to (start + 0, 2) diff --git a/tests/coverage/issue-84561.coverage b/tests/coverage/issue-84561.coverage index e693866e27760..961aa2b3b9d76 100644 --- a/tests/coverage/issue-84561.coverage +++ b/tests/coverage/issue-84561.coverage @@ -7,26 +7,57 @@ LL| 1| let is_true = std::env::args().len() == 1; LL| 1| let bar = Foo(1); LL| 1| assert_eq!(bar, Foo(1)); + ------------------ + | Branch (LL:5): [True: 1, False: 0] + ------------------ LL| 1| let baz = Foo(0); LL| 1| assert_ne!(baz, Foo(1)); + ------------------ + | Branch (LL:5): [True: 0, False: 1] + ------------------ LL| 1| println!("{:?}", Foo(1)); LL| 1| println!("{:?}", bar); LL| 1| println!("{:?}", baz); LL| 1| LL| 1| assert_eq!(Foo(1), Foo(1)); + ------------------ + | Branch (LL:5): [True: 1, False: 0] + ------------------ LL| 1| assert_ne!(Foo(0), Foo(1)); + ------------------ + | Branch (LL:5): [True: 0, False: 1] + ------------------ LL| 1| assert_eq!(Foo(2), Foo(2)); + ------------------ + | Branch (LL:5): [True: 1, False: 0] + ------------------ LL| 1| let bar = Foo(0); LL| 1| assert_ne!(bar, Foo(3)); + ------------------ + | Branch (LL:5): [True: 0, False: 1] + ------------------ LL| 1| assert_ne!(Foo(0), Foo(4)); + ------------------ + | Branch (LL:5): [True: 0, False: 1] + ------------------ LL| 1| assert_eq!(Foo(3), Foo(3), "with a message"); ^0 + ------------------ + | Branch (LL:5): [True: 1, False: 0] + ------------------ LL| 1| println!("{:?}", bar); LL| 1| println!("{:?}", Foo(1)); LL| 1| LL| 1| assert_ne!(Foo(0), Foo(5), "{}", if is_true { "true message" } else { "false message" }); ^0 ^0 ^0 + ------------------ + | Branch (LL:5): [True: 0, False: 1] + | Branch (LL:41): [Folded - Ignored] + ------------------ LL| 1| assert_ne!( + ------------------ + | Branch (LL:5): [True: 0, False: 1] + ------------------ LL| | Foo(0) LL| | , LL| | Foo(5) @@ -35,6 +66,9 @@ LL| 0| , LL| 0| if LL| 0| is_true + ------------------ + | Branch (LL:9): [Folded - Ignored] + ------------------ LL| | { LL| 0| "true message" LL| | } else { @@ -45,48 +79,84 @@ LL| 1| let is_true = std::env::args().len() == 1; LL| 1| LL| 1| assert_eq!( + ------------------ + | Branch (LL:5): [True: 1, False: 0] + ------------------ LL| 1| Foo(1), LL| 1| Foo(1) LL| 1| ); LL| 1| assert_ne!( + ------------------ + | Branch (LL:5): [True: 0, False: 1] + ------------------ LL| 1| Foo(0), LL| 1| Foo(1) LL| 1| ); LL| 1| assert_eq!( + ------------------ + | Branch (LL:5): [True: 1, False: 0] + ------------------ LL| 1| Foo(2), LL| 1| Foo(2) LL| 1| ); LL| 1| let bar = Foo(1); LL| 1| assert_ne!( + ------------------ + | Branch (LL:5): [True: 0, False: 1] + ------------------ LL| 1| bar, LL| 1| Foo(3) LL| 1| ); LL| 1| if is_true { + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| 1| assert_ne!( + ------------------ + | Branch (LL:9): [True: 0, False: 1] + ------------------ LL| 1| Foo(0), LL| 1| Foo(4) LL| 1| ); LL| | } else { LL| 0| assert_eq!( + ------------------ + | Branch (LL:9): [True: 0, False: 0] + ------------------ LL| 0| Foo(3), LL| 0| Foo(3) LL| 0| ); LL| | } LL| 1| if is_true { + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| 1| assert_ne!( + ------------------ + | Branch (LL:9): [True: 0, False: 1] + ------------------ LL| | Foo(0), LL| | Foo(4), LL| 0| "with a message" LL| | ); LL| | } else { LL| 0| assert_eq!( + ------------------ + | Branch (LL:9): [True: 0, False: 0] + ------------------ LL| | Foo(3), LL| | Foo(3), LL| 0| "with a message" LL| | ); LL| | } LL| 1| assert_ne!( + ------------------ + | Branch (LL:5): [True: 0, False: 1] + ------------------ LL| 1| if is_true { + ------------------ + | Branch (LL:12): [True: 1, False: 0] + ------------------ LL| 1| Foo(0) LL| | } else { LL| 0| Foo(1) @@ -94,23 +164,44 @@ LL| | Foo(5) LL| | ); LL| 1| assert_ne!( + ------------------ + | Branch (LL:5): [True: 0, False: 1] + ------------------ LL| 1| Foo(5), LL| 1| if is_true { + ------------------ + | Branch (LL:12): [True: 1, False: 0] + ------------------ LL| 1| Foo(0) LL| | } else { LL| 0| Foo(1) LL| | } LL| | ); LL| 1| assert_ne!( + ------------------ + | Branch (LL:5): [True: 0, False: 1] + ------------------ LL| 1| if is_true { + ------------------ + | Branch (LL:12): [True: 1, False: 0] + ------------------ LL| 1| assert_eq!( + ------------------ + | Branch (LL:13): [True: 1, False: 0] + ------------------ LL| 1| Foo(3), LL| 1| Foo(3) LL| 1| ); LL| 1| Foo(0) LL| | } else { LL| 0| assert_ne!( + ------------------ + | Branch (LL:13): [True: 0, False: 0] + ------------------ LL| 0| if is_true { + ------------------ + | Branch (LL:20): [True: 0, False: 0] + ------------------ LL| 0| Foo(0) LL| | } else { LL| 0| Foo(1) @@ -123,11 +214,17 @@ LL| 0| "with a message" LL| | ); LL| 1| assert_eq!( + ------------------ + | Branch (LL:5): [True: 0, False: 1] + ------------------ LL| | Foo(1), LL| | Foo(3), LL| 1| "this assert should fail" LL| | ); LL| 0| assert_eq!( + ------------------ + | Branch (LL:5): [Folded - Ignored] + ------------------ LL| | Foo(3), LL| | Foo(3), LL| 0| "this assert should not be reached" @@ -155,15 +252,27 @@ LL| 1|fn test1() { LL| 1| debug!("debug is enabled"); ^0 + ------------------ + | Branch (LL:5): [True: 0, False: 1] + ------------------ LL| 1| debug!("debug is enabled"); ^0 + ------------------ + | Branch (LL:5): [True: 0, False: 1] + ------------------ LL| 1| let _ = 0; LL| 1| debug!("debug is enabled"); ^0 + ------------------ + | Branch (LL:5): [True: 0, False: 1] + ------------------ LL| 1| unsafe { LL| 1| DEBUG_LEVEL_ENABLED = true; LL| 1| } LL| 1| debug!("debug is enabled"); + ------------------ + | Branch (LL:5): [True: 1, False: 0] + ------------------ LL| 1|} LL| | LL| |macro_rules! call_debug { @@ -179,6 +288,9 @@ LL| | LL| 1|fn test2() { LL| 1| call_debug!("debug is enabled"); + ------------------ + | Branch (LL:5): [True: 1, False: 0] + ------------------ LL| 1|} LL| | LL| 1|fn main() { diff --git a/tests/coverage/lazy_boolean.cov-map b/tests/coverage/lazy_boolean.cov-map index 0ad393c40fa77..ff06f407f785c 100644 --- a/tests/coverage/lazy_boolean.cov-map +++ b/tests/coverage/lazy_boolean.cov-map @@ -1,219 +1,318 @@ Function name: lazy_boolean::main -Raw bytes (636): 0x[01, 01, a4, 01, 01, 05, 09, 8a, 05, 8f, 05, 09, 05, 02, 05, 02, 8f, 05, 09, 05, 02, 0d, 82, 05, 87, 05, 0d, 09, 8a, 05, 8f, 05, 09, 05, 02, 09, 8a, 05, 8f, 05, 09, 05, 02, 87, 05, 0d, 09, 8a, 05, 8f, 05, 09, 05, 02, 11, fa, 04, ff, 04, 11, 0d, 82, 05, 87, 05, 0d, 09, 8a, 05, 8f, 05, 09, 05, 02, 0d, 82, 05, 87, 05, 0d, 09, 8a, 05, 8f, 05, 09, 05, 02, 15, f2, 04, f7, 04, 15, 11, fa, 04, ff, 04, 11, 0d, 82, 05, 87, 05, 0d, 09, 8a, 05, 8f, 05, 09, 05, 02, 11, fa, 04, ff, 04, 11, 0d, 82, 05, 87, 05, 0d, 09, 8a, 05, 8f, 05, 09, 05, 02, 15, f2, 04, f7, 04, 15, 11, fa, 04, ff, 04, 11, 0d, 82, 05, 87, 05, 0d, 09, 8a, 05, 8f, 05, 09, 05, 02, ef, 04, 19, 15, f2, 04, f7, 04, 15, 11, fa, 04, ff, 04, 11, 0d, 82, 05, 87, 05, 0d, 09, 8a, 05, 8f, 05, 09, 05, 02, 19, ea, 04, ef, 04, 19, 15, f2, 04, f7, 04, 15, 11, fa, 04, ff, 04, 11, 0d, 82, 05, 87, 05, 0d, 09, 8a, 05, 8f, 05, 09, 05, 02, e7, 04, 1d, 19, ea, 04, ef, 04, 19, 15, f2, 04, f7, 04, 15, 11, fa, 04, ff, 04, 11, 0d, 82, 05, 87, 05, 0d, 09, 8a, 05, 8f, 05, 09, 05, 02, 1d, e2, 04, e7, 04, 1d, 19, ea, 04, ef, 04, 19, 15, f2, 04, f7, 04, 15, 11, fa, 04, ff, 04, 11, 0d, 82, 05, 87, 05, 0d, 09, 8a, 05, 8f, 05, 09, 05, 02, df, 04, 21, 1d, e2, 04, e7, 04, 1d, 19, ea, 04, ef, 04, 19, 15, f2, 04, f7, 04, 15, 11, fa, 04, ff, 04, 11, 0d, 82, 05, 87, 05, 0d, 09, 8a, 05, 8f, 05, 09, 05, 02, 21, da, 04, df, 04, 21, 1d, e2, 04, e7, 04, 1d, 19, ea, 04, ef, 04, 19, 15, f2, 04, f7, 04, 15, 11, fa, 04, ff, 04, 11, 0d, 82, 05, 87, 05, 0d, 09, 8a, 05, 8f, 05, 09, 05, 02, d7, 04, 25, 21, da, 04, df, 04, 21, 1d, e2, 04, e7, 04, 1d, 19, ea, 04, ef, 04, 19, 15, f2, 04, f7, 04, 15, 11, fa, 04, ff, 04, 11, 0d, 82, 05, 87, 05, 0d, 09, 8a, 05, 8f, 05, 09, 05, 02, 25, d2, 04, d7, 04, 25, 21, da, 04, df, 04, 21, 1d, e2, 04, e7, 04, 1d, 19, ea, 04, ef, 04, 19, 15, f2, 04, f7, 04, 15, 11, fa, 04, ff, 04, 11, 0d, 82, 05, 87, 05, 0d, 09, 8a, 05, 8f, 05, 09, 05, 02, 1c, 01, 03, 01, 07, 0f, 05, 07, 10, 04, 06, 02, 04, 06, 00, 07, 87, 05, 02, 09, 00, 11, 8f, 05, 02, 0d, 00, 12, 8a, 05, 02, 0d, 00, 12, ff, 04, 03, 09, 00, 11, 87, 05, 02, 0d, 00, 12, 82, 05, 02, 0d, 00, 12, f7, 04, 02, 09, 00, 11, ff, 04, 00, 14, 00, 19, 11, 00, 1d, 00, 22, ef, 04, 01, 09, 00, 11, f7, 04, 00, 14, 00, 19, 15, 00, 1d, 00, 22, ef, 04, 04, 09, 00, 10, ea, 04, 01, 05, 03, 06, 19, 03, 06, 00, 07, e7, 04, 03, 09, 00, 10, 1d, 01, 05, 03, 06, e2, 04, 05, 05, 03, 06, df, 04, 05, 09, 00, 10, da, 04, 00, 11, 02, 06, 21, 02, 06, 00, 07, d7, 04, 02, 08, 00, 0f, 25, 00, 10, 02, 06, d2, 04, 02, 0c, 02, 06, cf, 04, 03, 01, 00, 02] +Raw bytes (915): 0x[01, 01, ec, 01, 01, 05, 09, aa, 07, af, 07, 09, 05, 02, 05, 02, af, 07, 09, 05, 02, af, 07, 09, 05, 02, 0d, a2, 07, a7, 07, 0d, 09, aa, 07, af, 07, 09, 05, 02, 09, aa, 07, af, 07, 09, 05, 02, a7, 07, 0d, 09, aa, 07, af, 07, 09, 05, 02, a7, 07, 0d, 09, aa, 07, af, 07, 09, 05, 02, 11, 9a, 07, 9f, 07, 11, 0d, a2, 07, a7, 07, 0d, 09, aa, 07, af, 07, 09, 05, 02, 0d, a2, 07, a7, 07, 0d, 09, aa, 07, af, 07, 09, 05, 02, 9f, 07, 11, 0d, a2, 07, a7, 07, 0d, 09, aa, 07, af, 07, 09, 05, 02, 15, 92, 07, 97, 07, 15, 11, 9a, 07, 9f, 07, 11, 0d, a2, 07, a7, 07, 0d, 09, aa, 07, af, 07, 09, 05, 02, 11, 9a, 07, 9f, 07, 11, 0d, a2, 07, a7, 07, 0d, 09, aa, 07, af, 07, 09, 05, 02, 97, 07, 15, 11, 9a, 07, 9f, 07, 11, 0d, a2, 07, a7, 07, 0d, 09, aa, 07, af, 07, 09, 05, 02, 15, 92, 07, 97, 07, 15, 11, 9a, 07, 9f, 07, 11, 0d, a2, 07, a7, 07, 0d, 09, aa, 07, af, 07, 09, 05, 02, 8f, 07, 19, 15, 92, 07, 97, 07, 15, 11, 9a, 07, 9f, 07, 11, 0d, a2, 07, a7, 07, 0d, 09, aa, 07, af, 07, 09, 05, 02, 8f, 07, 19, 15, 92, 07, 97, 07, 15, 11, 9a, 07, 9f, 07, 11, 0d, a2, 07, a7, 07, 0d, 09, aa, 07, af, 07, 09, 05, 02, 19, 8a, 07, 8f, 07, 19, 15, 92, 07, 97, 07, 15, 11, 9a, 07, 9f, 07, 11, 0d, a2, 07, a7, 07, 0d, 09, aa, 07, af, 07, 09, 05, 02, 87, 07, 1d, 19, 8a, 07, 8f, 07, 19, 15, 92, 07, 97, 07, 15, 11, 9a, 07, 9f, 07, 11, 0d, a2, 07, a7, 07, 0d, 09, aa, 07, af, 07, 09, 05, 02, 87, 07, 1d, 19, 8a, 07, 8f, 07, 19, 15, 92, 07, 97, 07, 15, 11, 9a, 07, 9f, 07, 11, 0d, a2, 07, a7, 07, 0d, 09, aa, 07, af, 07, 09, 05, 02, 1d, 82, 07, 87, 07, 1d, 19, 8a, 07, 8f, 07, 19, 15, 92, 07, 97, 07, 15, 11, 9a, 07, 9f, 07, 11, 0d, a2, 07, a7, 07, 0d, 09, aa, 07, af, 07, 09, 05, 02, ff, 06, 21, 1d, 82, 07, 87, 07, 1d, 19, 8a, 07, 8f, 07, 19, 15, 92, 07, 97, 07, 15, 11, 9a, 07, 9f, 07, 11, 0d, a2, 07, a7, 07, 0d, 09, aa, 07, af, 07, 09, 05, 02, ff, 06, 21, 1d, 82, 07, 87, 07, 1d, 19, 8a, 07, 8f, 07, 19, 15, 92, 07, 97, 07, 15, 11, 9a, 07, 9f, 07, 11, 0d, a2, 07, a7, 07, 0d, 09, aa, 07, af, 07, 09, 05, 02, 21, fa, 06, ff, 06, 21, 1d, 82, 07, 87, 07, 1d, 19, 8a, 07, 8f, 07, 19, 15, 92, 07, 97, 07, 15, 11, 9a, 07, 9f, 07, 11, 0d, a2, 07, a7, 07, 0d, 09, aa, 07, af, 07, 09, 05, 02, f7, 06, 25, 21, fa, 06, ff, 06, 21, 1d, 82, 07, 87, 07, 1d, 19, 8a, 07, 8f, 07, 19, 15, 92, 07, 97, 07, 15, 11, 9a, 07, 9f, 07, 11, 0d, a2, 07, a7, 07, 0d, 09, aa, 07, af, 07, 09, 05, 02, f7, 06, 25, 21, fa, 06, ff, 06, 21, 1d, 82, 07, 87, 07, 1d, 19, 8a, 07, 8f, 07, 19, 15, 92, 07, 97, 07, 15, 11, 9a, 07, 9f, 07, 11, 0d, a2, 07, a7, 07, 0d, 09, aa, 07, af, 07, 09, 05, 02, 25, f2, 06, f7, 06, 25, 21, fa, 06, ff, 06, 21, 1d, 82, 07, 87, 07, 1d, 19, 8a, 07, 8f, 07, 19, 15, 92, 07, 97, 07, 15, 11, 9a, 07, 9f, 07, 11, 0d, a2, 07, a7, 07, 0d, 09, aa, 07, af, 07, 09, 05, 02, 25, 01, 03, 01, 07, 0f, 20, 05, 02, 07, 08, 00, 0f, 05, 00, 10, 04, 06, 02, 04, 06, 00, 07, a7, 07, 02, 09, 00, 11, af, 07, 02, 0d, 00, 12, 20, 09, aa, 07, 00, 0d, 00, 12, aa, 07, 02, 0d, 00, 12, 9f, 07, 03, 09, 00, 11, a7, 07, 02, 0d, 00, 12, 20, 0d, a2, 07, 00, 0d, 00, 12, a2, 07, 02, 0d, 00, 12, 97, 07, 02, 09, 00, 11, 9f, 07, 00, 14, 00, 19, 20, 11, 9a, 07, 00, 14, 00, 19, 11, 00, 1d, 00, 22, 8f, 07, 01, 09, 00, 11, 97, 07, 00, 14, 00, 19, 20, 15, 92, 07, 00, 14, 00, 19, 15, 00, 1d, 00, 22, 8f, 07, 04, 09, 00, 10, 20, 19, 8a, 07, 00, 09, 00, 10, 8a, 07, 01, 05, 03, 06, 19, 03, 06, 00, 07, 87, 07, 03, 09, 00, 10, 20, 1d, 82, 07, 00, 09, 00, 10, 1d, 01, 05, 03, 06, 82, 07, 05, 05, 03, 06, ff, 06, 05, 09, 00, 10, 20, 21, fa, 06, 00, 09, 00, 10, fa, 06, 00, 11, 02, 06, 21, 02, 06, 00, 07, f7, 06, 02, 08, 00, 0f, 20, 25, f2, 06, 00, 08, 00, 0f, 25, 00, 10, 02, 06, f2, 06, 02, 0c, 02, 06, ef, 06, 03, 01, 00, 02] Number of files: 1 - file 0 => global file 1 -Number of expressions: 164 +Number of expressions: 236 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) -- expression 1 operands: lhs = Counter(2), rhs = Expression(162, Sub) -- expression 2 operands: lhs = Expression(163, Add), rhs = Counter(2) +- expression 1 operands: lhs = Counter(2), rhs = Expression(234, Sub) +- expression 2 operands: lhs = Expression(235, Add), rhs = Counter(2) - expression 3 operands: lhs = Counter(1), rhs = Expression(0, Sub) - expression 4 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 5 operands: lhs = Expression(163, Add), rhs = Counter(2) +- expression 5 operands: lhs = Expression(235, Add), rhs = Counter(2) - expression 6 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 7 operands: lhs = Counter(3), rhs = Expression(160, Sub) -- expression 8 operands: lhs = Expression(161, Add), rhs = Counter(3) -- expression 9 operands: lhs = Counter(2), rhs = Expression(162, Sub) -- expression 10 operands: lhs = Expression(163, Add), rhs = Counter(2) -- expression 11 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 12 operands: lhs = Counter(2), rhs = Expression(162, Sub) -- expression 13 operands: lhs = Expression(163, Add), rhs = Counter(2) -- expression 14 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 15 operands: lhs = Expression(161, Add), rhs = Counter(3) -- expression 16 operands: lhs = Counter(2), rhs = Expression(162, Sub) -- expression 17 operands: lhs = Expression(163, Add), rhs = Counter(2) -- expression 18 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 19 operands: lhs = Counter(4), rhs = Expression(158, Sub) -- expression 20 operands: lhs = Expression(159, Add), rhs = Counter(4) -- expression 21 operands: lhs = Counter(3), rhs = Expression(160, Sub) -- expression 22 operands: lhs = Expression(161, Add), rhs = Counter(3) -- expression 23 operands: lhs = Counter(2), rhs = Expression(162, Sub) -- expression 24 operands: lhs = Expression(163, Add), rhs = Counter(2) -- expression 25 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 26 operands: lhs = Counter(3), rhs = Expression(160, Sub) -- expression 27 operands: lhs = Expression(161, Add), rhs = Counter(3) -- expression 28 operands: lhs = Counter(2), rhs = Expression(162, Sub) -- expression 29 operands: lhs = Expression(163, Add), rhs = Counter(2) -- expression 30 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 31 operands: lhs = Counter(5), rhs = Expression(156, Sub) -- expression 32 operands: lhs = Expression(157, Add), rhs = Counter(5) -- expression 33 operands: lhs = Counter(4), rhs = Expression(158, Sub) -- expression 34 operands: lhs = Expression(159, Add), rhs = Counter(4) -- expression 35 operands: lhs = Counter(3), rhs = Expression(160, Sub) -- expression 36 operands: lhs = Expression(161, Add), rhs = Counter(3) -- expression 37 operands: lhs = Counter(2), rhs = Expression(162, Sub) -- expression 38 operands: lhs = Expression(163, Add), rhs = Counter(2) -- expression 39 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 40 operands: lhs = Counter(4), rhs = Expression(158, Sub) -- expression 41 operands: lhs = Expression(159, Add), rhs = Counter(4) -- expression 42 operands: lhs = Counter(3), rhs = Expression(160, Sub) -- expression 43 operands: lhs = Expression(161, Add), rhs = Counter(3) -- expression 44 operands: lhs = Counter(2), rhs = Expression(162, Sub) -- expression 45 operands: lhs = Expression(163, Add), rhs = Counter(2) -- expression 46 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 47 operands: lhs = Counter(5), rhs = Expression(156, Sub) -- expression 48 operands: lhs = Expression(157, Add), rhs = Counter(5) -- expression 49 operands: lhs = Counter(4), rhs = Expression(158, Sub) -- expression 50 operands: lhs = Expression(159, Add), rhs = Counter(4) -- expression 51 operands: lhs = Counter(3), rhs = Expression(160, Sub) -- expression 52 operands: lhs = Expression(161, Add), rhs = Counter(3) -- expression 53 operands: lhs = Counter(2), rhs = Expression(162, Sub) -- expression 54 operands: lhs = Expression(163, Add), rhs = Counter(2) -- expression 55 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 56 operands: lhs = Expression(155, Add), rhs = Counter(6) -- expression 57 operands: lhs = Counter(5), rhs = Expression(156, Sub) -- expression 58 operands: lhs = Expression(157, Add), rhs = Counter(5) -- expression 59 operands: lhs = Counter(4), rhs = Expression(158, Sub) -- expression 60 operands: lhs = Expression(159, Add), rhs = Counter(4) -- expression 61 operands: lhs = Counter(3), rhs = Expression(160, Sub) -- expression 62 operands: lhs = Expression(161, Add), rhs = Counter(3) -- expression 63 operands: lhs = Counter(2), rhs = Expression(162, Sub) -- expression 64 operands: lhs = Expression(163, Add), rhs = Counter(2) -- expression 65 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 66 operands: lhs = Counter(6), rhs = Expression(154, Sub) -- expression 67 operands: lhs = Expression(155, Add), rhs = Counter(6) -- expression 68 operands: lhs = Counter(5), rhs = Expression(156, Sub) -- expression 69 operands: lhs = Expression(157, Add), rhs = Counter(5) -- expression 70 operands: lhs = Counter(4), rhs = Expression(158, Sub) -- expression 71 operands: lhs = Expression(159, Add), rhs = Counter(4) -- expression 72 operands: lhs = Counter(3), rhs = Expression(160, Sub) -- expression 73 operands: lhs = Expression(161, Add), rhs = Counter(3) -- expression 74 operands: lhs = Counter(2), rhs = Expression(162, Sub) -- expression 75 operands: lhs = Expression(163, Add), rhs = Counter(2) -- expression 76 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 77 operands: lhs = Expression(153, Add), rhs = Counter(7) -- expression 78 operands: lhs = Counter(6), rhs = Expression(154, Sub) -- expression 79 operands: lhs = Expression(155, Add), rhs = Counter(6) -- expression 80 operands: lhs = Counter(5), rhs = Expression(156, Sub) -- expression 81 operands: lhs = Expression(157, Add), rhs = Counter(5) -- expression 82 operands: lhs = Counter(4), rhs = Expression(158, Sub) -- expression 83 operands: lhs = Expression(159, Add), rhs = Counter(4) -- expression 84 operands: lhs = Counter(3), rhs = Expression(160, Sub) -- expression 85 operands: lhs = Expression(161, Add), rhs = Counter(3) -- expression 86 operands: lhs = Counter(2), rhs = Expression(162, Sub) -- expression 87 operands: lhs = Expression(163, Add), rhs = Counter(2) -- expression 88 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 89 operands: lhs = Counter(7), rhs = Expression(152, Sub) -- expression 90 operands: lhs = Expression(153, Add), rhs = Counter(7) -- expression 91 operands: lhs = Counter(6), rhs = Expression(154, Sub) -- expression 92 operands: lhs = Expression(155, Add), rhs = Counter(6) -- expression 93 operands: lhs = Counter(5), rhs = Expression(156, Sub) -- expression 94 operands: lhs = Expression(157, Add), rhs = Counter(5) -- expression 95 operands: lhs = Counter(4), rhs = Expression(158, Sub) -- expression 96 operands: lhs = Expression(159, Add), rhs = Counter(4) -- expression 97 operands: lhs = Counter(3), rhs = Expression(160, Sub) -- expression 98 operands: lhs = Expression(161, Add), rhs = Counter(3) -- expression 99 operands: lhs = Counter(2), rhs = Expression(162, Sub) -- expression 100 operands: lhs = Expression(163, Add), rhs = Counter(2) -- expression 101 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 102 operands: lhs = Expression(151, Add), rhs = Counter(8) -- expression 103 operands: lhs = Counter(7), rhs = Expression(152, Sub) -- expression 104 operands: lhs = Expression(153, Add), rhs = Counter(7) -- expression 105 operands: lhs = Counter(6), rhs = Expression(154, Sub) -- expression 106 operands: lhs = Expression(155, Add), rhs = Counter(6) -- expression 107 operands: lhs = Counter(5), rhs = Expression(156, Sub) -- expression 108 operands: lhs = Expression(157, Add), rhs = Counter(5) -- expression 109 operands: lhs = Counter(4), rhs = Expression(158, Sub) -- expression 110 operands: lhs = Expression(159, Add), rhs = Counter(4) -- expression 111 operands: lhs = Counter(3), rhs = Expression(160, Sub) -- expression 112 operands: lhs = Expression(161, Add), rhs = Counter(3) -- expression 113 operands: lhs = Counter(2), rhs = Expression(162, Sub) -- expression 114 operands: lhs = Expression(163, Add), rhs = Counter(2) -- expression 115 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 116 operands: lhs = Counter(8), rhs = Expression(150, Sub) -- expression 117 operands: lhs = Expression(151, Add), rhs = Counter(8) -- expression 118 operands: lhs = Counter(7), rhs = Expression(152, Sub) -- expression 119 operands: lhs = Expression(153, Add), rhs = Counter(7) -- expression 120 operands: lhs = Counter(6), rhs = Expression(154, Sub) -- expression 121 operands: lhs = Expression(155, Add), rhs = Counter(6) -- expression 122 operands: lhs = Counter(5), rhs = Expression(156, Sub) -- expression 123 operands: lhs = Expression(157, Add), rhs = Counter(5) -- expression 124 operands: lhs = Counter(4), rhs = Expression(158, Sub) -- expression 125 operands: lhs = Expression(159, Add), rhs = Counter(4) -- expression 126 operands: lhs = Counter(3), rhs = Expression(160, Sub) -- expression 127 operands: lhs = Expression(161, Add), rhs = Counter(3) -- expression 128 operands: lhs = Counter(2), rhs = Expression(162, Sub) -- expression 129 operands: lhs = Expression(163, Add), rhs = Counter(2) +- expression 7 operands: lhs = Expression(235, Add), rhs = Counter(2) +- expression 8 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 9 operands: lhs = Counter(3), rhs = Expression(232, Sub) +- expression 10 operands: lhs = Expression(233, Add), rhs = Counter(3) +- expression 11 operands: lhs = Counter(2), rhs = Expression(234, Sub) +- expression 12 operands: lhs = Expression(235, Add), rhs = Counter(2) +- expression 13 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 14 operands: lhs = Counter(2), rhs = Expression(234, Sub) +- expression 15 operands: lhs = Expression(235, Add), rhs = Counter(2) +- expression 16 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 17 operands: lhs = Expression(233, Add), rhs = Counter(3) +- expression 18 operands: lhs = Counter(2), rhs = Expression(234, Sub) +- expression 19 operands: lhs = Expression(235, Add), rhs = Counter(2) +- expression 20 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 21 operands: lhs = Expression(233, Add), rhs = Counter(3) +- expression 22 operands: lhs = Counter(2), rhs = Expression(234, Sub) +- expression 23 operands: lhs = Expression(235, Add), rhs = Counter(2) +- expression 24 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 25 operands: lhs = Counter(4), rhs = Expression(230, Sub) +- expression 26 operands: lhs = Expression(231, Add), rhs = Counter(4) +- expression 27 operands: lhs = Counter(3), rhs = Expression(232, Sub) +- expression 28 operands: lhs = Expression(233, Add), rhs = Counter(3) +- expression 29 operands: lhs = Counter(2), rhs = Expression(234, Sub) +- expression 30 operands: lhs = Expression(235, Add), rhs = Counter(2) +- expression 31 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 32 operands: lhs = Counter(3), rhs = Expression(232, Sub) +- expression 33 operands: lhs = Expression(233, Add), rhs = Counter(3) +- expression 34 operands: lhs = Counter(2), rhs = Expression(234, Sub) +- expression 35 operands: lhs = Expression(235, Add), rhs = Counter(2) +- expression 36 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 37 operands: lhs = Expression(231, Add), rhs = Counter(4) +- expression 38 operands: lhs = Counter(3), rhs = Expression(232, Sub) +- expression 39 operands: lhs = Expression(233, Add), rhs = Counter(3) +- expression 40 operands: lhs = Counter(2), rhs = Expression(234, Sub) +- expression 41 operands: lhs = Expression(235, Add), rhs = Counter(2) +- expression 42 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 43 operands: lhs = Counter(5), rhs = Expression(228, Sub) +- expression 44 operands: lhs = Expression(229, Add), rhs = Counter(5) +- expression 45 operands: lhs = Counter(4), rhs = Expression(230, Sub) +- expression 46 operands: lhs = Expression(231, Add), rhs = Counter(4) +- expression 47 operands: lhs = Counter(3), rhs = Expression(232, Sub) +- expression 48 operands: lhs = Expression(233, Add), rhs = Counter(3) +- expression 49 operands: lhs = Counter(2), rhs = Expression(234, Sub) +- expression 50 operands: lhs = Expression(235, Add), rhs = Counter(2) +- expression 51 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 52 operands: lhs = Counter(4), rhs = Expression(230, Sub) +- expression 53 operands: lhs = Expression(231, Add), rhs = Counter(4) +- expression 54 operands: lhs = Counter(3), rhs = Expression(232, Sub) +- expression 55 operands: lhs = Expression(233, Add), rhs = Counter(3) +- expression 56 operands: lhs = Counter(2), rhs = Expression(234, Sub) +- expression 57 operands: lhs = Expression(235, Add), rhs = Counter(2) +- expression 58 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 59 operands: lhs = Expression(229, Add), rhs = Counter(5) +- expression 60 operands: lhs = Counter(4), rhs = Expression(230, Sub) +- expression 61 operands: lhs = Expression(231, Add), rhs = Counter(4) +- expression 62 operands: lhs = Counter(3), rhs = Expression(232, Sub) +- expression 63 operands: lhs = Expression(233, Add), rhs = Counter(3) +- expression 64 operands: lhs = Counter(2), rhs = Expression(234, Sub) +- expression 65 operands: lhs = Expression(235, Add), rhs = Counter(2) +- expression 66 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 67 operands: lhs = Counter(5), rhs = Expression(228, Sub) +- expression 68 operands: lhs = Expression(229, Add), rhs = Counter(5) +- expression 69 operands: lhs = Counter(4), rhs = Expression(230, Sub) +- expression 70 operands: lhs = Expression(231, Add), rhs = Counter(4) +- expression 71 operands: lhs = Counter(3), rhs = Expression(232, Sub) +- expression 72 operands: lhs = Expression(233, Add), rhs = Counter(3) +- expression 73 operands: lhs = Counter(2), rhs = Expression(234, Sub) +- expression 74 operands: lhs = Expression(235, Add), rhs = Counter(2) +- expression 75 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 76 operands: lhs = Expression(227, Add), rhs = Counter(6) +- expression 77 operands: lhs = Counter(5), rhs = Expression(228, Sub) +- expression 78 operands: lhs = Expression(229, Add), rhs = Counter(5) +- expression 79 operands: lhs = Counter(4), rhs = Expression(230, Sub) +- expression 80 operands: lhs = Expression(231, Add), rhs = Counter(4) +- expression 81 operands: lhs = Counter(3), rhs = Expression(232, Sub) +- expression 82 operands: lhs = Expression(233, Add), rhs = Counter(3) +- expression 83 operands: lhs = Counter(2), rhs = Expression(234, Sub) +- expression 84 operands: lhs = Expression(235, Add), rhs = Counter(2) +- expression 85 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 86 operands: lhs = Expression(227, Add), rhs = Counter(6) +- expression 87 operands: lhs = Counter(5), rhs = Expression(228, Sub) +- expression 88 operands: lhs = Expression(229, Add), rhs = Counter(5) +- expression 89 operands: lhs = Counter(4), rhs = Expression(230, Sub) +- expression 90 operands: lhs = Expression(231, Add), rhs = Counter(4) +- expression 91 operands: lhs = Counter(3), rhs = Expression(232, Sub) +- expression 92 operands: lhs = Expression(233, Add), rhs = Counter(3) +- expression 93 operands: lhs = Counter(2), rhs = Expression(234, Sub) +- expression 94 operands: lhs = Expression(235, Add), rhs = Counter(2) +- expression 95 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 96 operands: lhs = Counter(6), rhs = Expression(226, Sub) +- expression 97 operands: lhs = Expression(227, Add), rhs = Counter(6) +- expression 98 operands: lhs = Counter(5), rhs = Expression(228, Sub) +- expression 99 operands: lhs = Expression(229, Add), rhs = Counter(5) +- expression 100 operands: lhs = Counter(4), rhs = Expression(230, Sub) +- expression 101 operands: lhs = Expression(231, Add), rhs = Counter(4) +- expression 102 operands: lhs = Counter(3), rhs = Expression(232, Sub) +- expression 103 operands: lhs = Expression(233, Add), rhs = Counter(3) +- expression 104 operands: lhs = Counter(2), rhs = Expression(234, Sub) +- expression 105 operands: lhs = Expression(235, Add), rhs = Counter(2) +- expression 106 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 107 operands: lhs = Expression(225, Add), rhs = Counter(7) +- expression 108 operands: lhs = Counter(6), rhs = Expression(226, Sub) +- expression 109 operands: lhs = Expression(227, Add), rhs = Counter(6) +- expression 110 operands: lhs = Counter(5), rhs = Expression(228, Sub) +- expression 111 operands: lhs = Expression(229, Add), rhs = Counter(5) +- expression 112 operands: lhs = Counter(4), rhs = Expression(230, Sub) +- expression 113 operands: lhs = Expression(231, Add), rhs = Counter(4) +- expression 114 operands: lhs = Counter(3), rhs = Expression(232, Sub) +- expression 115 operands: lhs = Expression(233, Add), rhs = Counter(3) +- expression 116 operands: lhs = Counter(2), rhs = Expression(234, Sub) +- expression 117 operands: lhs = Expression(235, Add), rhs = Counter(2) +- expression 118 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 119 operands: lhs = Expression(225, Add), rhs = Counter(7) +- expression 120 operands: lhs = Counter(6), rhs = Expression(226, Sub) +- expression 121 operands: lhs = Expression(227, Add), rhs = Counter(6) +- expression 122 operands: lhs = Counter(5), rhs = Expression(228, Sub) +- expression 123 operands: lhs = Expression(229, Add), rhs = Counter(5) +- expression 124 operands: lhs = Counter(4), rhs = Expression(230, Sub) +- expression 125 operands: lhs = Expression(231, Add), rhs = Counter(4) +- expression 126 operands: lhs = Counter(3), rhs = Expression(232, Sub) +- expression 127 operands: lhs = Expression(233, Add), rhs = Counter(3) +- expression 128 operands: lhs = Counter(2), rhs = Expression(234, Sub) +- expression 129 operands: lhs = Expression(235, Add), rhs = Counter(2) - expression 130 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 131 operands: lhs = Expression(149, Add), rhs = Counter(9) -- expression 132 operands: lhs = Counter(8), rhs = Expression(150, Sub) -- expression 133 operands: lhs = Expression(151, Add), rhs = Counter(8) -- expression 134 operands: lhs = Counter(7), rhs = Expression(152, Sub) -- expression 135 operands: lhs = Expression(153, Add), rhs = Counter(7) -- expression 136 operands: lhs = Counter(6), rhs = Expression(154, Sub) -- expression 137 operands: lhs = Expression(155, Add), rhs = Counter(6) -- expression 138 operands: lhs = Counter(5), rhs = Expression(156, Sub) -- expression 139 operands: lhs = Expression(157, Add), rhs = Counter(5) -- expression 140 operands: lhs = Counter(4), rhs = Expression(158, Sub) -- expression 141 operands: lhs = Expression(159, Add), rhs = Counter(4) -- expression 142 operands: lhs = Counter(3), rhs = Expression(160, Sub) -- expression 143 operands: lhs = Expression(161, Add), rhs = Counter(3) -- expression 144 operands: lhs = Counter(2), rhs = Expression(162, Sub) -- expression 145 operands: lhs = Expression(163, Add), rhs = Counter(2) -- expression 146 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 147 operands: lhs = Counter(9), rhs = Expression(148, Sub) -- expression 148 operands: lhs = Expression(149, Add), rhs = Counter(9) -- expression 149 operands: lhs = Counter(8), rhs = Expression(150, Sub) -- expression 150 operands: lhs = Expression(151, Add), rhs = Counter(8) -- expression 151 operands: lhs = Counter(7), rhs = Expression(152, Sub) -- expression 152 operands: lhs = Expression(153, Add), rhs = Counter(7) -- expression 153 operands: lhs = Counter(6), rhs = Expression(154, Sub) -- expression 154 operands: lhs = Expression(155, Add), rhs = Counter(6) -- expression 155 operands: lhs = Counter(5), rhs = Expression(156, Sub) -- expression 156 operands: lhs = Expression(157, Add), rhs = Counter(5) -- expression 157 operands: lhs = Counter(4), rhs = Expression(158, Sub) -- expression 158 operands: lhs = Expression(159, Add), rhs = Counter(4) -- expression 159 operands: lhs = Counter(3), rhs = Expression(160, Sub) -- expression 160 operands: lhs = Expression(161, Add), rhs = Counter(3) -- expression 161 operands: lhs = Counter(2), rhs = Expression(162, Sub) -- expression 162 operands: lhs = Expression(163, Add), rhs = Counter(2) -- expression 163 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 28 +- expression 131 operands: lhs = Counter(7), rhs = Expression(224, Sub) +- expression 132 operands: lhs = Expression(225, Add), rhs = Counter(7) +- expression 133 operands: lhs = Counter(6), rhs = Expression(226, Sub) +- expression 134 operands: lhs = Expression(227, Add), rhs = Counter(6) +- expression 135 operands: lhs = Counter(5), rhs = Expression(228, Sub) +- expression 136 operands: lhs = Expression(229, Add), rhs = Counter(5) +- expression 137 operands: lhs = Counter(4), rhs = Expression(230, Sub) +- expression 138 operands: lhs = Expression(231, Add), rhs = Counter(4) +- expression 139 operands: lhs = Counter(3), rhs = Expression(232, Sub) +- expression 140 operands: lhs = Expression(233, Add), rhs = Counter(3) +- expression 141 operands: lhs = Counter(2), rhs = Expression(234, Sub) +- expression 142 operands: lhs = Expression(235, Add), rhs = Counter(2) +- expression 143 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 144 operands: lhs = Expression(223, Add), rhs = Counter(8) +- expression 145 operands: lhs = Counter(7), rhs = Expression(224, Sub) +- expression 146 operands: lhs = Expression(225, Add), rhs = Counter(7) +- expression 147 operands: lhs = Counter(6), rhs = Expression(226, Sub) +- expression 148 operands: lhs = Expression(227, Add), rhs = Counter(6) +- expression 149 operands: lhs = Counter(5), rhs = Expression(228, Sub) +- expression 150 operands: lhs = Expression(229, Add), rhs = Counter(5) +- expression 151 operands: lhs = Counter(4), rhs = Expression(230, Sub) +- expression 152 operands: lhs = Expression(231, Add), rhs = Counter(4) +- expression 153 operands: lhs = Counter(3), rhs = Expression(232, Sub) +- expression 154 operands: lhs = Expression(233, Add), rhs = Counter(3) +- expression 155 operands: lhs = Counter(2), rhs = Expression(234, Sub) +- expression 156 operands: lhs = Expression(235, Add), rhs = Counter(2) +- expression 157 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 158 operands: lhs = Expression(223, Add), rhs = Counter(8) +- expression 159 operands: lhs = Counter(7), rhs = Expression(224, Sub) +- expression 160 operands: lhs = Expression(225, Add), rhs = Counter(7) +- expression 161 operands: lhs = Counter(6), rhs = Expression(226, Sub) +- expression 162 operands: lhs = Expression(227, Add), rhs = Counter(6) +- expression 163 operands: lhs = Counter(5), rhs = Expression(228, Sub) +- expression 164 operands: lhs = Expression(229, Add), rhs = Counter(5) +- expression 165 operands: lhs = Counter(4), rhs = Expression(230, Sub) +- expression 166 operands: lhs = Expression(231, Add), rhs = Counter(4) +- expression 167 operands: lhs = Counter(3), rhs = Expression(232, Sub) +- expression 168 operands: lhs = Expression(233, Add), rhs = Counter(3) +- expression 169 operands: lhs = Counter(2), rhs = Expression(234, Sub) +- expression 170 operands: lhs = Expression(235, Add), rhs = Counter(2) +- expression 171 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 172 operands: lhs = Counter(8), rhs = Expression(222, Sub) +- expression 173 operands: lhs = Expression(223, Add), rhs = Counter(8) +- expression 174 operands: lhs = Counter(7), rhs = Expression(224, Sub) +- expression 175 operands: lhs = Expression(225, Add), rhs = Counter(7) +- expression 176 operands: lhs = Counter(6), rhs = Expression(226, Sub) +- expression 177 operands: lhs = Expression(227, Add), rhs = Counter(6) +- expression 178 operands: lhs = Counter(5), rhs = Expression(228, Sub) +- expression 179 operands: lhs = Expression(229, Add), rhs = Counter(5) +- expression 180 operands: lhs = Counter(4), rhs = Expression(230, Sub) +- expression 181 operands: lhs = Expression(231, Add), rhs = Counter(4) +- expression 182 operands: lhs = Counter(3), rhs = Expression(232, Sub) +- expression 183 operands: lhs = Expression(233, Add), rhs = Counter(3) +- expression 184 operands: lhs = Counter(2), rhs = Expression(234, Sub) +- expression 185 operands: lhs = Expression(235, Add), rhs = Counter(2) +- expression 186 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 187 operands: lhs = Expression(221, Add), rhs = Counter(9) +- expression 188 operands: lhs = Counter(8), rhs = Expression(222, Sub) +- expression 189 operands: lhs = Expression(223, Add), rhs = Counter(8) +- expression 190 operands: lhs = Counter(7), rhs = Expression(224, Sub) +- expression 191 operands: lhs = Expression(225, Add), rhs = Counter(7) +- expression 192 operands: lhs = Counter(6), rhs = Expression(226, Sub) +- expression 193 operands: lhs = Expression(227, Add), rhs = Counter(6) +- expression 194 operands: lhs = Counter(5), rhs = Expression(228, Sub) +- expression 195 operands: lhs = Expression(229, Add), rhs = Counter(5) +- expression 196 operands: lhs = Counter(4), rhs = Expression(230, Sub) +- expression 197 operands: lhs = Expression(231, Add), rhs = Counter(4) +- expression 198 operands: lhs = Counter(3), rhs = Expression(232, Sub) +- expression 199 operands: lhs = Expression(233, Add), rhs = Counter(3) +- expression 200 operands: lhs = Counter(2), rhs = Expression(234, Sub) +- expression 201 operands: lhs = Expression(235, Add), rhs = Counter(2) +- expression 202 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 203 operands: lhs = Expression(221, Add), rhs = Counter(9) +- expression 204 operands: lhs = Counter(8), rhs = Expression(222, Sub) +- expression 205 operands: lhs = Expression(223, Add), rhs = Counter(8) +- expression 206 operands: lhs = Counter(7), rhs = Expression(224, Sub) +- expression 207 operands: lhs = Expression(225, Add), rhs = Counter(7) +- expression 208 operands: lhs = Counter(6), rhs = Expression(226, Sub) +- expression 209 operands: lhs = Expression(227, Add), rhs = Counter(6) +- expression 210 operands: lhs = Counter(5), rhs = Expression(228, Sub) +- expression 211 operands: lhs = Expression(229, Add), rhs = Counter(5) +- expression 212 operands: lhs = Counter(4), rhs = Expression(230, Sub) +- expression 213 operands: lhs = Expression(231, Add), rhs = Counter(4) +- expression 214 operands: lhs = Counter(3), rhs = Expression(232, Sub) +- expression 215 operands: lhs = Expression(233, Add), rhs = Counter(3) +- expression 216 operands: lhs = Counter(2), rhs = Expression(234, Sub) +- expression 217 operands: lhs = Expression(235, Add), rhs = Counter(2) +- expression 218 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 219 operands: lhs = Counter(9), rhs = Expression(220, Sub) +- expression 220 operands: lhs = Expression(221, Add), rhs = Counter(9) +- expression 221 operands: lhs = Counter(8), rhs = Expression(222, Sub) +- expression 222 operands: lhs = Expression(223, Add), rhs = Counter(8) +- expression 223 operands: lhs = Counter(7), rhs = Expression(224, Sub) +- expression 224 operands: lhs = Expression(225, Add), rhs = Counter(7) +- expression 225 operands: lhs = Counter(6), rhs = Expression(226, Sub) +- expression 226 operands: lhs = Expression(227, Add), rhs = Counter(6) +- expression 227 operands: lhs = Counter(5), rhs = Expression(228, Sub) +- expression 228 operands: lhs = Expression(229, Add), rhs = Counter(5) +- expression 229 operands: lhs = Counter(4), rhs = Expression(230, Sub) +- expression 230 operands: lhs = Expression(231, Add), rhs = Counter(4) +- expression 231 operands: lhs = Counter(3), rhs = Expression(232, Sub) +- expression 232 operands: lhs = Expression(233, Add), rhs = Counter(3) +- expression 233 operands: lhs = Counter(2), rhs = Expression(234, Sub) +- expression 234 operands: lhs = Expression(235, Add), rhs = Counter(2) +- expression 235 operands: lhs = Counter(1), rhs = Expression(0, Sub) +Number of file 0 mappings: 37 - Code(Counter(0)) at (prev + 3, 1) to (start + 7, 15) -- Code(Counter(1)) at (prev + 7, 16) to (start + 4, 6) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 7, 8) to (start + 0, 15) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 16) to (start + 4, 6) - Code(Expression(0, Sub)) at (prev + 4, 6) to (start + 0, 7) = (c0 - c1) -- Code(Expression(161, Add)) at (prev + 2, 9) to (start + 0, 17) +- Code(Expression(233, Add)) at (prev + 2, 9) to (start + 0, 17) = (c2 + ((c1 + (c0 - c1)) - c2)) -- Code(Expression(163, Add)) at (prev + 2, 13) to (start + 0, 18) +- Code(Expression(235, Add)) at (prev + 2, 13) to (start + 0, 18) = (c1 + (c0 - c1)) -- Code(Expression(162, Sub)) at (prev + 2, 13) to (start + 0, 18) +- Branch { true: Counter(2), false: Expression(234, Sub) } at (prev + 0, 13) to (start + 0, 18) + true = c2 + false = ((c1 + (c0 - c1)) - c2) +- Code(Expression(234, Sub)) at (prev + 2, 13) to (start + 0, 18) = ((c1 + (c0 - c1)) - c2) -- Code(Expression(159, Add)) at (prev + 3, 9) to (start + 0, 17) +- Code(Expression(231, Add)) at (prev + 3, 9) to (start + 0, 17) = (c3 + ((c2 + ((c1 + (c0 - c1)) - c2)) - c3)) -- Code(Expression(161, Add)) at (prev + 2, 13) to (start + 0, 18) +- Code(Expression(233, Add)) at (prev + 2, 13) to (start + 0, 18) = (c2 + ((c1 + (c0 - c1)) - c2)) -- Code(Expression(160, Sub)) at (prev + 2, 13) to (start + 0, 18) +- Branch { true: Counter(3), false: Expression(232, Sub) } at (prev + 0, 13) to (start + 0, 18) + true = c3 + false = ((c2 + ((c1 + (c0 - c1)) - c2)) - c3) +- Code(Expression(232, Sub)) at (prev + 2, 13) to (start + 0, 18) = ((c2 + ((c1 + (c0 - c1)) - c2)) - c3) -- Code(Expression(157, Add)) at (prev + 2, 9) to (start + 0, 17) +- Code(Expression(229, Add)) at (prev + 2, 9) to (start + 0, 17) = (c4 + ((c3 + ((c2 + ((c1 + (c0 - c1)) - c2)) - c3)) - c4)) -- Code(Expression(159, Add)) at (prev + 0, 20) to (start + 0, 25) +- Code(Expression(231, Add)) at (prev + 0, 20) to (start + 0, 25) = (c3 + ((c2 + ((c1 + (c0 - c1)) - c2)) - c3)) +- Branch { true: Counter(4), false: Expression(230, Sub) } at (prev + 0, 20) to (start + 0, 25) + true = c4 + false = ((c3 + ((c2 + ((c1 + (c0 - c1)) - c2)) - c3)) - c4) - Code(Counter(4)) at (prev + 0, 29) to (start + 0, 34) -- Code(Expression(155, Add)) at (prev + 1, 9) to (start + 0, 17) +- Code(Expression(227, Add)) at (prev + 1, 9) to (start + 0, 17) = (c5 + ((c4 + ((c3 + ((c2 + ((c1 + (c0 - c1)) - c2)) - c3)) - c4)) - c5)) -- Code(Expression(157, Add)) at (prev + 0, 20) to (start + 0, 25) +- Code(Expression(229, Add)) at (prev + 0, 20) to (start + 0, 25) = (c4 + ((c3 + ((c2 + ((c1 + (c0 - c1)) - c2)) - c3)) - c4)) +- Branch { true: Counter(5), false: Expression(228, Sub) } at (prev + 0, 20) to (start + 0, 25) + true = c5 + false = ((c4 + ((c3 + ((c2 + ((c1 + (c0 - c1)) - c2)) - c3)) - c4)) - c5) - Code(Counter(5)) at (prev + 0, 29) to (start + 0, 34) -- Code(Expression(155, Add)) at (prev + 4, 9) to (start + 0, 16) +- Code(Expression(227, Add)) at (prev + 4, 9) to (start + 0, 16) = (c5 + ((c4 + ((c3 + ((c2 + ((c1 + (c0 - c1)) - c2)) - c3)) - c4)) - c5)) -- Code(Expression(154, Sub)) at (prev + 1, 5) to (start + 3, 6) +- Branch { true: Counter(6), false: Expression(226, Sub) } at (prev + 0, 9) to (start + 0, 16) + true = c6 + false = ((c5 + ((c4 + ((c3 + ((c2 + ((c1 + (c0 - c1)) - c2)) - c3)) - c4)) - c5)) - c6) +- Code(Expression(226, Sub)) at (prev + 1, 5) to (start + 3, 6) = ((c5 + ((c4 + ((c3 + ((c2 + ((c1 + (c0 - c1)) - c2)) - c3)) - c4)) - c5)) - c6) - Code(Counter(6)) at (prev + 3, 6) to (start + 0, 7) -- Code(Expression(153, Add)) at (prev + 3, 9) to (start + 0, 16) +- Code(Expression(225, Add)) at (prev + 3, 9) to (start + 0, 16) = (c6 + ((c5 + ((c4 + ((c3 + ((c2 + ((c1 + (c0 - c1)) - c2)) - c3)) - c4)) - c5)) - c6)) +- Branch { true: Counter(7), false: Expression(224, Sub) } at (prev + 0, 9) to (start + 0, 16) + true = c7 + false = ((c6 + ((c5 + ((c4 + ((c3 + ((c2 + ((c1 + (c0 - c1)) - c2)) - c3)) - c4)) - c5)) - c6)) - c7) - Code(Counter(7)) at (prev + 1, 5) to (start + 3, 6) -- Code(Expression(152, Sub)) at (prev + 5, 5) to (start + 3, 6) +- Code(Expression(224, Sub)) at (prev + 5, 5) to (start + 3, 6) = ((c6 + ((c5 + ((c4 + ((c3 + ((c2 + ((c1 + (c0 - c1)) - c2)) - c3)) - c4)) - c5)) - c6)) - c7) -- Code(Expression(151, Add)) at (prev + 5, 9) to (start + 0, 16) +- Code(Expression(223, Add)) at (prev + 5, 9) to (start + 0, 16) = (c7 + ((c6 + ((c5 + ((c4 + ((c3 + ((c2 + ((c1 + (c0 - c1)) - c2)) - c3)) - c4)) - c5)) - c6)) - c7)) -- Code(Expression(150, Sub)) at (prev + 0, 17) to (start + 2, 6) +- Branch { true: Counter(8), false: Expression(222, Sub) } at (prev + 0, 9) to (start + 0, 16) + true = c8 + false = ((c7 + ((c6 + ((c5 + ((c4 + ((c3 + ((c2 + ((c1 + (c0 - c1)) - c2)) - c3)) - c4)) - c5)) - c6)) - c7)) - c8) +- Code(Expression(222, Sub)) at (prev + 0, 17) to (start + 2, 6) = ((c7 + ((c6 + ((c5 + ((c4 + ((c3 + ((c2 + ((c1 + (c0 - c1)) - c2)) - c3)) - c4)) - c5)) - c6)) - c7)) - c8) - Code(Counter(8)) at (prev + 2, 6) to (start + 0, 7) -- Code(Expression(149, Add)) at (prev + 2, 8) to (start + 0, 15) +- Code(Expression(221, Add)) at (prev + 2, 8) to (start + 0, 15) = (c8 + ((c7 + ((c6 + ((c5 + ((c4 + ((c3 + ((c2 + ((c1 + (c0 - c1)) - c2)) - c3)) - c4)) - c5)) - c6)) - c7)) - c8)) +- Branch { true: Counter(9), false: Expression(220, Sub) } at (prev + 0, 8) to (start + 0, 15) + true = c9 + false = ((c8 + ((c7 + ((c6 + ((c5 + ((c4 + ((c3 + ((c2 + ((c1 + (c0 - c1)) - c2)) - c3)) - c4)) - c5)) - c6)) - c7)) - c8)) - c9) - Code(Counter(9)) at (prev + 0, 16) to (start + 2, 6) -- Code(Expression(148, Sub)) at (prev + 2, 12) to (start + 2, 6) +- Code(Expression(220, Sub)) at (prev + 2, 12) to (start + 2, 6) = ((c8 + ((c7 + ((c6 + ((c5 + ((c4 + ((c3 + ((c2 + ((c1 + (c0 - c1)) - c2)) - c3)) - c4)) - c5)) - c6)) - c7)) - c8)) - c9) -- Code(Expression(147, Add)) at (prev + 3, 1) to (start + 0, 2) +- Code(Expression(219, Add)) at (prev + 3, 1) to (start + 0, 2) = (c9 + ((c8 + ((c7 + ((c6 + ((c5 + ((c4 + ((c3 + ((c2 + ((c1 + (c0 - c1)) - c2)) - c3)) - c4)) - c5)) - c6)) - c7)) - c8)) - c9)) diff --git a/tests/coverage/lazy_boolean.coverage b/tests/coverage/lazy_boolean.coverage index 8f14082ef6825..6b1f782a850cb 100644 --- a/tests/coverage/lazy_boolean.coverage +++ b/tests/coverage/lazy_boolean.coverage @@ -8,6 +8,9 @@ LL| 1| LL| 1| let (mut a, mut b, mut c) = (0, 0, 0); LL| 1| if is_true { + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| 1| a = 1; LL| 1| b = 10; LL| 1| c = 100; @@ -17,6 +20,9 @@ LL| 1| somebool LL| | = LL| 1| a < b + ------------------ + | Branch (LL:13): [True: 1, False: 0] + ------------------ LL| | || LL| 0| b < c LL| | ; @@ -24,16 +30,28 @@ LL| 1| somebool LL| | = LL| 1| b < a + ------------------ + | Branch (LL:13): [True: 0, False: 1] + ------------------ LL| | || LL| 1| b < c LL| | ; LL| 1| let somebool = a < b && b < c; + ------------------ + | Branch (LL:20): [True: 1, False: 0] + ------------------ LL| 1| let somebool = b < a && b < c; ^0 + ------------------ + | Branch (LL:20): [True: 0, False: 1] + ------------------ LL| | LL| | if LL| | ! LL| 1| is_true + ------------------ + | Branch (LL:9): [True: 1, False: 0] + ------------------ LL| 0| { LL| 0| a = 2 LL| 0| ; @@ -41,6 +59,9 @@ LL| | LL| | if LL| 1| is_true + ------------------ + | Branch (LL:9): [True: 1, False: 0] + ------------------ LL| 1| { LL| 1| b = 30 LL| 1| ; @@ -52,10 +73,16 @@ LL| 0| } LL| | LL| 1| if !is_true { + ------------------ + | Branch (LL:9): [True: 1, False: 0] + ------------------ LL| 0| a = 2; LL| 1| } LL| | LL| 1| if is_true { + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| 1| b = 30; LL| 1| } else { LL| 0| c = 400; diff --git a/tests/coverage/loops_branches.cov-map b/tests/coverage/loops_branches.cov-map index 8dc35321133b8..8c27fdf28cf69 100644 --- a/tests/coverage/loops_branches.cov-map +++ b/tests/coverage/loops_branches.cov-map @@ -1,61 +1,81 @@ Function name: ::fmt -Raw bytes (249): 0x[01, 01, 31, 05, 00, 00, 02, bb, 01, 19, bf, 01, c3, 01, 0d, 00, 11, 00, bf, 01, c3, 01, 0d, 00, 11, 00, bb, 01, 19, bf, 01, c3, 01, 0d, 00, 11, 00, b6, 01, 00, bb, 01, 19, bf, 01, c3, 01, 0d, 00, 11, 00, b2, 01, 00, b6, 01, 00, bb, 01, 19, bf, 01, c3, 01, 0d, 00, 11, 00, 00, ae, 01, b2, 01, 00, b6, 01, 00, bb, 01, 19, bf, 01, c3, 01, 0d, 00, 11, 00, ab, 01, 11, 00, ae, 01, b2, 01, 00, b6, 01, 00, bb, 01, 19, bf, 01, c3, 01, 0d, 00, 11, 00, a3, 01, 19, 25, a6, 01, ab, 01, 11, 00, ae, 01, b2, 01, 00, b6, 01, 00, bb, 01, 19, bf, 01, c3, 01, 0d, 00, 11, 00, 14, 01, 09, 05, 01, 10, 05, 02, 10, 00, 15, 00, 01, 17, 00, 1b, 00, 00, 1c, 00, 1e, 02, 01, 0e, 00, 0f, 07, 01, 0d, 00, 1e, 25, 00, 1e, 00, 1f, 00, 01, 10, 01, 0a, b6, 01, 03, 0d, 00, 0e, bb, 01, 00, 12, 00, 17, b6, 01, 01, 10, 00, 14, b2, 01, 01, 14, 00, 19, 00, 01, 1b, 00, 1f, 00, 00, 20, 00, 22, ae, 01, 01, 12, 00, 13, ab, 01, 01, 11, 00, 22, a6, 01, 00, 22, 00, 23, 00, 01, 14, 01, 0e, 19, 03, 09, 00, 0f, 9f, 01, 01, 05, 00, 06] +Raw bytes (324): 0x[01, 01, 3c, 05, 00, 00, 02, e7, 01, 19, eb, 01, ef, 01, 0d, 00, 11, 00, eb, 01, ef, 01, 0d, 00, 11, 00, e7, 01, 19, eb, 01, ef, 01, 0d, 00, 11, 00, e2, 01, 00, e7, 01, 19, eb, 01, ef, 01, 0d, 00, 11, 00, e2, 01, 00, e7, 01, 19, eb, 01, ef, 01, 0d, 00, 11, 00, de, 01, 00, e2, 01, 00, e7, 01, 19, eb, 01, ef, 01, 0d, 00, 11, 00, de, 01, 00, e2, 01, 00, e7, 01, 19, eb, 01, ef, 01, 0d, 00, 11, 00, 00, da, 01, de, 01, 00, e2, 01, 00, e7, 01, 19, eb, 01, ef, 01, 0d, 00, 11, 00, d7, 01, 11, 00, da, 01, de, 01, 00, e2, 01, 00, e7, 01, 19, eb, 01, ef, 01, 0d, 00, 11, 00, cf, 01, 19, 25, d2, 01, d7, 01, 11, 00, da, 01, de, 01, 00, e2, 01, 00, e7, 01, 19, eb, 01, ef, 01, 0d, 00, 11, 00, 1a, 01, 09, 05, 01, 10, 20, 05, 00, 01, 0c, 00, 10, 05, 01, 10, 00, 15, 20, 00, 02, 00, 10, 00, 15, 00, 01, 17, 00, 1b, 20, 00, 00, 00, 17, 00, 1b, 00, 00, 1c, 00, 1e, 02, 01, 0e, 00, 0f, 07, 01, 0d, 00, 1e, 25, 00, 1e, 00, 1f, 00, 01, 10, 01, 0a, e2, 01, 03, 0d, 00, 0e, e7, 01, 00, 12, 00, 17, e2, 01, 01, 10, 00, 14, 20, de, 01, 00, 00, 10, 00, 14, de, 01, 01, 14, 00, 19, 20, 00, da, 01, 00, 14, 00, 19, 00, 01, 1b, 00, 1f, 20, 00, 00, 00, 1b, 00, 1f, 00, 00, 20, 00, 22, da, 01, 01, 12, 00, 13, d7, 01, 01, 11, 00, 22, d2, 01, 00, 22, 00, 23, 00, 01, 14, 01, 0e, 19, 03, 09, 00, 0f, cb, 01, 01, 05, 00, 06] Number of files: 1 - file 0 => global file 1 -Number of expressions: 49 +Number of expressions: 60 - expression 0 operands: lhs = Counter(1), rhs = Zero - expression 1 operands: lhs = Zero, rhs = Expression(0, Sub) -- expression 2 operands: lhs = Expression(46, Add), rhs = Counter(6) -- expression 3 operands: lhs = Expression(47, Add), rhs = Expression(48, Add) +- expression 2 operands: lhs = Expression(57, Add), rhs = Counter(6) +- expression 3 operands: lhs = Expression(58, Add), rhs = Expression(59, Add) - expression 4 operands: lhs = Counter(3), rhs = Zero - expression 5 operands: lhs = Counter(4), rhs = Zero -- expression 6 operands: lhs = Expression(47, Add), rhs = Expression(48, Add) +- expression 6 operands: lhs = Expression(58, Add), rhs = Expression(59, Add) - expression 7 operands: lhs = Counter(3), rhs = Zero - expression 8 operands: lhs = Counter(4), rhs = Zero -- expression 9 operands: lhs = Expression(46, Add), rhs = Counter(6) -- expression 10 operands: lhs = Expression(47, Add), rhs = Expression(48, Add) +- expression 9 operands: lhs = Expression(57, Add), rhs = Counter(6) +- expression 10 operands: lhs = Expression(58, Add), rhs = Expression(59, Add) - expression 11 operands: lhs = Counter(3), rhs = Zero - expression 12 operands: lhs = Counter(4), rhs = Zero -- expression 13 operands: lhs = Expression(45, Sub), rhs = Zero -- expression 14 operands: lhs = Expression(46, Add), rhs = Counter(6) -- expression 15 operands: lhs = Expression(47, Add), rhs = Expression(48, Add) +- expression 13 operands: lhs = Expression(56, Sub), rhs = Zero +- expression 14 operands: lhs = Expression(57, Add), rhs = Counter(6) +- expression 15 operands: lhs = Expression(58, Add), rhs = Expression(59, Add) - expression 16 operands: lhs = Counter(3), rhs = Zero - expression 17 operands: lhs = Counter(4), rhs = Zero -- expression 18 operands: lhs = Expression(44, Sub), rhs = Zero -- expression 19 operands: lhs = Expression(45, Sub), rhs = Zero -- expression 20 operands: lhs = Expression(46, Add), rhs = Counter(6) -- expression 21 operands: lhs = Expression(47, Add), rhs = Expression(48, Add) -- expression 22 operands: lhs = Counter(3), rhs = Zero -- expression 23 operands: lhs = Counter(4), rhs = Zero -- expression 24 operands: lhs = Zero, rhs = Expression(43, Sub) -- expression 25 operands: lhs = Expression(44, Sub), rhs = Zero -- expression 26 operands: lhs = Expression(45, Sub), rhs = Zero -- expression 27 operands: lhs = Expression(46, Add), rhs = Counter(6) -- expression 28 operands: lhs = Expression(47, Add), rhs = Expression(48, Add) -- expression 29 operands: lhs = Counter(3), rhs = Zero -- expression 30 operands: lhs = Counter(4), rhs = Zero -- expression 31 operands: lhs = Expression(42, Add), rhs = Counter(4) -- expression 32 operands: lhs = Zero, rhs = Expression(43, Sub) -- expression 33 operands: lhs = Expression(44, Sub), rhs = Zero -- expression 34 operands: lhs = Expression(45, Sub), rhs = Zero -- expression 35 operands: lhs = Expression(46, Add), rhs = Counter(6) -- expression 36 operands: lhs = Expression(47, Add), rhs = Expression(48, Add) -- expression 37 operands: lhs = Counter(3), rhs = Zero -- expression 38 operands: lhs = Counter(4), rhs = Zero -- expression 39 operands: lhs = Expression(40, Add), rhs = Counter(6) -- expression 40 operands: lhs = Counter(9), rhs = Expression(41, Sub) -- expression 41 operands: lhs = Expression(42, Add), rhs = Counter(4) -- expression 42 operands: lhs = Zero, rhs = Expression(43, Sub) -- expression 43 operands: lhs = Expression(44, Sub), rhs = Zero -- expression 44 operands: lhs = Expression(45, Sub), rhs = Zero -- expression 45 operands: lhs = Expression(46, Add), rhs = Counter(6) -- expression 46 operands: lhs = Expression(47, Add), rhs = Expression(48, Add) -- expression 47 operands: lhs = Counter(3), rhs = Zero -- expression 48 operands: lhs = Counter(4), rhs = Zero -Number of file 0 mappings: 20 +- expression 18 operands: lhs = Expression(56, Sub), rhs = Zero +- expression 19 operands: lhs = Expression(57, Add), rhs = Counter(6) +- expression 20 operands: lhs = Expression(58, Add), rhs = Expression(59, Add) +- expression 21 operands: lhs = Counter(3), rhs = Zero +- expression 22 operands: lhs = Counter(4), rhs = Zero +- expression 23 operands: lhs = Expression(55, Sub), rhs = Zero +- expression 24 operands: lhs = Expression(56, Sub), rhs = Zero +- expression 25 operands: lhs = Expression(57, Add), rhs = Counter(6) +- expression 26 operands: lhs = Expression(58, Add), rhs = Expression(59, Add) +- expression 27 operands: lhs = Counter(3), rhs = Zero +- expression 28 operands: lhs = Counter(4), rhs = Zero +- expression 29 operands: lhs = Expression(55, Sub), rhs = Zero +- expression 30 operands: lhs = Expression(56, Sub), rhs = Zero +- expression 31 operands: lhs = Expression(57, Add), rhs = Counter(6) +- expression 32 operands: lhs = Expression(58, Add), rhs = Expression(59, Add) +- expression 33 operands: lhs = Counter(3), rhs = Zero +- expression 34 operands: lhs = Counter(4), rhs = Zero +- expression 35 operands: lhs = Zero, rhs = Expression(54, Sub) +- expression 36 operands: lhs = Expression(55, Sub), rhs = Zero +- expression 37 operands: lhs = Expression(56, Sub), rhs = Zero +- expression 38 operands: lhs = Expression(57, Add), rhs = Counter(6) +- expression 39 operands: lhs = Expression(58, Add), rhs = Expression(59, Add) +- expression 40 operands: lhs = Counter(3), rhs = Zero +- expression 41 operands: lhs = Counter(4), rhs = Zero +- expression 42 operands: lhs = Expression(53, Add), rhs = Counter(4) +- expression 43 operands: lhs = Zero, rhs = Expression(54, Sub) +- expression 44 operands: lhs = Expression(55, Sub), rhs = Zero +- expression 45 operands: lhs = Expression(56, Sub), rhs = Zero +- expression 46 operands: lhs = Expression(57, Add), rhs = Counter(6) +- expression 47 operands: lhs = Expression(58, Add), rhs = Expression(59, Add) +- expression 48 operands: lhs = Counter(3), rhs = Zero +- expression 49 operands: lhs = Counter(4), rhs = Zero +- expression 50 operands: lhs = Expression(51, Add), rhs = Counter(6) +- expression 51 operands: lhs = Counter(9), rhs = Expression(52, Sub) +- expression 52 operands: lhs = Expression(53, Add), rhs = Counter(4) +- expression 53 operands: lhs = Zero, rhs = Expression(54, Sub) +- expression 54 operands: lhs = Expression(55, Sub), rhs = Zero +- expression 55 operands: lhs = Expression(56, Sub), rhs = Zero +- expression 56 operands: lhs = Expression(57, Add), rhs = Counter(6) +- expression 57 operands: lhs = Expression(58, Add), rhs = Expression(59, Add) +- expression 58 operands: lhs = Counter(3), rhs = Zero +- expression 59 operands: lhs = Counter(4), rhs = Zero +Number of file 0 mappings: 26 - Code(Counter(0)) at (prev + 9, 5) to (start + 1, 16) -- Code(Counter(1)) at (prev + 2, 16) to (start + 0, 21) +- Branch { true: Counter(1), false: Zero } at (prev + 1, 12) to (start + 0, 16) + true = c1 + false = Zero +- Code(Counter(1)) at (prev + 1, 16) to (start + 0, 21) +- Branch { true: Zero, false: Expression(0, Sub) } at (prev + 0, 16) to (start + 0, 21) + true = Zero + false = (c1 - Zero) - Code(Zero) at (prev + 1, 23) to (start + 0, 27) +- Branch { true: Zero, false: Zero } at (prev + 0, 23) to (start + 0, 27) + true = Zero + false = Zero - Code(Zero) at (prev + 0, 28) to (start + 0, 30) - Code(Expression(0, Sub)) at (prev + 1, 14) to (start + 0, 15) = (c1 - Zero) @@ -63,114 +83,153 @@ Number of file 0 mappings: 20 = (Zero + (c1 - Zero)) - Code(Counter(9)) at (prev + 0, 30) to (start + 0, 31) - Code(Zero) at (prev + 1, 16) to (start + 1, 10) -- Code(Expression(45, Sub)) at (prev + 3, 13) to (start + 0, 14) +- Code(Expression(56, Sub)) at (prev + 3, 13) to (start + 0, 14) = (((c3 + Zero) + (c4 + Zero)) - c6) -- Code(Expression(46, Add)) at (prev + 0, 18) to (start + 0, 23) +- Code(Expression(57, Add)) at (prev + 0, 18) to (start + 0, 23) = ((c3 + Zero) + (c4 + Zero)) -- Code(Expression(45, Sub)) at (prev + 1, 16) to (start + 0, 20) +- Code(Expression(56, Sub)) at (prev + 1, 16) to (start + 0, 20) = (((c3 + Zero) + (c4 + Zero)) - c6) -- Code(Expression(44, Sub)) at (prev + 1, 20) to (start + 0, 25) +- Branch { true: Expression(55, Sub), false: Zero } at (prev + 0, 16) to (start + 0, 20) + true = ((((c3 + Zero) + (c4 + Zero)) - c6) - Zero) + false = Zero +- Code(Expression(55, Sub)) at (prev + 1, 20) to (start + 0, 25) = ((((c3 + Zero) + (c4 + Zero)) - c6) - Zero) +- Branch { true: Zero, false: Expression(54, Sub) } at (prev + 0, 20) to (start + 0, 25) + true = Zero + false = (((((c3 + Zero) + (c4 + Zero)) - c6) - Zero) - Zero) - Code(Zero) at (prev + 1, 27) to (start + 0, 31) +- Branch { true: Zero, false: Zero } at (prev + 0, 27) to (start + 0, 31) + true = Zero + false = Zero - Code(Zero) at (prev + 0, 32) to (start + 0, 34) -- Code(Expression(43, Sub)) at (prev + 1, 18) to (start + 0, 19) +- Code(Expression(54, Sub)) at (prev + 1, 18) to (start + 0, 19) = (((((c3 + Zero) + (c4 + Zero)) - c6) - Zero) - Zero) -- Code(Expression(42, Add)) at (prev + 1, 17) to (start + 0, 34) +- Code(Expression(53, Add)) at (prev + 1, 17) to (start + 0, 34) = (Zero + (((((c3 + Zero) + (c4 + Zero)) - c6) - Zero) - Zero)) -- Code(Expression(41, Sub)) at (prev + 0, 34) to (start + 0, 35) +- Code(Expression(52, Sub)) at (prev + 0, 34) to (start + 0, 35) = ((Zero + (((((c3 + Zero) + (c4 + Zero)) - c6) - Zero) - Zero)) - c4) - Code(Zero) at (prev + 1, 20) to (start + 1, 14) - Code(Counter(6)) at (prev + 3, 9) to (start + 0, 15) -- Code(Expression(39, Add)) at (prev + 1, 5) to (start + 0, 6) +- Code(Expression(50, Add)) at (prev + 1, 5) to (start + 0, 6) = ((c9 + ((Zero + (((((c3 + Zero) + (c4 + Zero)) - c6) - Zero) - Zero)) - c4)) + c6) Function name: ::fmt -Raw bytes (253): 0x[01, 01, 33, 01, 00, 02, 00, 00, 0e, 02, 00, c3, 01, 19, c7, 01, cb, 01, 00, 0d, 00, 15, c7, 01, cb, 01, 00, 0d, 00, 15, c3, 01, 19, c7, 01, cb, 01, 00, 0d, 00, 15, be, 01, 00, c3, 01, 19, c7, 01, cb, 01, 00, 0d, 00, 15, ba, 01, 00, be, 01, 00, c3, 01, 19, c7, 01, cb, 01, 00, 0d, 00, 15, 00, b6, 01, ba, 01, 00, be, 01, 00, c3, 01, 19, c7, 01, cb, 01, 00, 0d, 00, 15, b3, 01, 15, 00, b6, 01, ba, 01, 00, be, 01, 00, c3, 01, 19, c7, 01, cb, 01, 00, 0d, 00, 15, ab, 01, 25, ae, 01, 19, b3, 01, 15, 00, b6, 01, ba, 01, 00, be, 01, 00, c3, 01, 19, c7, 01, cb, 01, 00, 0d, 00, 15, 14, 01, 22, 05, 01, 11, 00, 01, 12, 01, 0a, 02, 02, 10, 00, 15, 00, 01, 17, 00, 1b, 00, 00, 1c, 00, 1e, 0e, 01, 0e, 00, 0f, 0b, 01, 0d, 00, 1e, 25, 00, 1e, 00, 1f, be, 01, 02, 0d, 00, 0e, c3, 01, 00, 12, 00, 17, be, 01, 01, 10, 00, 15, 00, 00, 16, 01, 0e, ba, 01, 02, 14, 00, 19, 00, 01, 1b, 00, 1f, 00, 00, 20, 00, 22, b6, 01, 01, 12, 00, 13, b3, 01, 01, 11, 00, 22, ae, 01, 00, 22, 00, 23, 19, 03, 09, 00, 0f, a7, 01, 01, 05, 00, 06] +Raw bytes (330): 0x[01, 01, 3f, 01, 00, 02, 00, 02, 00, 00, 12, 02, 00, f3, 01, 19, f7, 01, fb, 01, 00, 0d, 00, 15, f7, 01, fb, 01, 00, 0d, 00, 15, f3, 01, 19, f7, 01, fb, 01, 00, 0d, 00, 15, ee, 01, 00, f3, 01, 19, f7, 01, fb, 01, 00, 0d, 00, 15, ee, 01, 00, f3, 01, 19, f7, 01, fb, 01, 00, 0d, 00, 15, ea, 01, 00, ee, 01, 00, f3, 01, 19, f7, 01, fb, 01, 00, 0d, 00, 15, ea, 01, 00, ee, 01, 00, f3, 01, 19, f7, 01, fb, 01, 00, 0d, 00, 15, 00, e6, 01, ea, 01, 00, ee, 01, 00, f3, 01, 19, f7, 01, fb, 01, 00, 0d, 00, 15, e3, 01, 15, 00, e6, 01, ea, 01, 00, ee, 01, 00, f3, 01, 19, f7, 01, fb, 01, 00, 0d, 00, 15, db, 01, 25, de, 01, 19, e3, 01, 15, 00, e6, 01, ea, 01, 00, ee, 01, 00, f3, 01, 19, f7, 01, fb, 01, 00, 0d, 00, 15, 1a, 01, 22, 05, 01, 11, 20, 00, 02, 01, 0c, 00, 11, 00, 00, 12, 01, 0a, 02, 02, 10, 00, 15, 20, 00, 12, 00, 10, 00, 15, 00, 01, 17, 00, 1b, 20, 00, 00, 00, 17, 00, 1b, 00, 00, 1c, 00, 1e, 12, 01, 0e, 00, 0f, 0f, 01, 0d, 00, 1e, 25, 00, 1e, 00, 1f, ee, 01, 02, 0d, 00, 0e, f3, 01, 00, 12, 00, 17, ee, 01, 01, 10, 00, 15, 20, 00, ea, 01, 00, 10, 00, 15, 00, 00, 16, 01, 0e, ea, 01, 02, 14, 00, 19, 20, 00, e6, 01, 00, 14, 00, 19, 00, 01, 1b, 00, 1f, 20, 00, 00, 00, 1b, 00, 1f, 00, 00, 20, 00, 22, e6, 01, 01, 12, 00, 13, e3, 01, 01, 11, 00, 22, de, 01, 00, 22, 00, 23, 19, 03, 09, 00, 0f, d7, 01, 01, 05, 00, 06] Number of files: 1 - file 0 => global file 1 -Number of expressions: 51 +Number of expressions: 63 - expression 0 operands: lhs = Counter(0), rhs = Zero - expression 1 operands: lhs = Expression(0, Sub), rhs = Zero -- expression 2 operands: lhs = Zero, rhs = Expression(3, Sub) -- expression 3 operands: lhs = Expression(0, Sub), rhs = Zero -- expression 4 operands: lhs = Expression(48, Add), rhs = Counter(6) -- expression 5 operands: lhs = Expression(49, Add), rhs = Expression(50, Add) -- expression 6 operands: lhs = Zero, rhs = Counter(3) -- expression 7 operands: lhs = Zero, rhs = Counter(5) -- expression 8 operands: lhs = Expression(49, Add), rhs = Expression(50, Add) -- expression 9 operands: lhs = Zero, rhs = Counter(3) -- expression 10 operands: lhs = Zero, rhs = Counter(5) -- expression 11 operands: lhs = Expression(48, Add), rhs = Counter(6) -- expression 12 operands: lhs = Expression(49, Add), rhs = Expression(50, Add) -- expression 13 operands: lhs = Zero, rhs = Counter(3) -- expression 14 operands: lhs = Zero, rhs = Counter(5) -- expression 15 operands: lhs = Expression(47, Sub), rhs = Zero -- expression 16 operands: lhs = Expression(48, Add), rhs = Counter(6) -- expression 17 operands: lhs = Expression(49, Add), rhs = Expression(50, Add) -- expression 18 operands: lhs = Zero, rhs = Counter(3) -- expression 19 operands: lhs = Zero, rhs = Counter(5) -- expression 20 operands: lhs = Expression(46, Sub), rhs = Zero -- expression 21 operands: lhs = Expression(47, Sub), rhs = Zero -- expression 22 operands: lhs = Expression(48, Add), rhs = Counter(6) -- expression 23 operands: lhs = Expression(49, Add), rhs = Expression(50, Add) +- expression 2 operands: lhs = Expression(0, Sub), rhs = Zero +- expression 3 operands: lhs = Zero, rhs = Expression(4, Sub) +- expression 4 operands: lhs = Expression(0, Sub), rhs = Zero +- expression 5 operands: lhs = Expression(60, Add), rhs = Counter(6) +- expression 6 operands: lhs = Expression(61, Add), rhs = Expression(62, Add) +- expression 7 operands: lhs = Zero, rhs = Counter(3) +- expression 8 operands: lhs = Zero, rhs = Counter(5) +- expression 9 operands: lhs = Expression(61, Add), rhs = Expression(62, Add) +- expression 10 operands: lhs = Zero, rhs = Counter(3) +- expression 11 operands: lhs = Zero, rhs = Counter(5) +- expression 12 operands: lhs = Expression(60, Add), rhs = Counter(6) +- expression 13 operands: lhs = Expression(61, Add), rhs = Expression(62, Add) +- expression 14 operands: lhs = Zero, rhs = Counter(3) +- expression 15 operands: lhs = Zero, rhs = Counter(5) +- expression 16 operands: lhs = Expression(59, Sub), rhs = Zero +- expression 17 operands: lhs = Expression(60, Add), rhs = Counter(6) +- expression 18 operands: lhs = Expression(61, Add), rhs = Expression(62, Add) +- expression 19 operands: lhs = Zero, rhs = Counter(3) +- expression 20 operands: lhs = Zero, rhs = Counter(5) +- expression 21 operands: lhs = Expression(59, Sub), rhs = Zero +- expression 22 operands: lhs = Expression(60, Add), rhs = Counter(6) +- expression 23 operands: lhs = Expression(61, Add), rhs = Expression(62, Add) - expression 24 operands: lhs = Zero, rhs = Counter(3) - expression 25 operands: lhs = Zero, rhs = Counter(5) -- expression 26 operands: lhs = Zero, rhs = Expression(45, Sub) -- expression 27 operands: lhs = Expression(46, Sub), rhs = Zero -- expression 28 operands: lhs = Expression(47, Sub), rhs = Zero -- expression 29 operands: lhs = Expression(48, Add), rhs = Counter(6) -- expression 30 operands: lhs = Expression(49, Add), rhs = Expression(50, Add) -- expression 31 operands: lhs = Zero, rhs = Counter(3) -- expression 32 operands: lhs = Zero, rhs = Counter(5) -- expression 33 operands: lhs = Expression(44, Add), rhs = Counter(5) -- expression 34 operands: lhs = Zero, rhs = Expression(45, Sub) -- expression 35 operands: lhs = Expression(46, Sub), rhs = Zero -- expression 36 operands: lhs = Expression(47, Sub), rhs = Zero -- expression 37 operands: lhs = Expression(48, Add), rhs = Counter(6) -- expression 38 operands: lhs = Expression(49, Add), rhs = Expression(50, Add) -- expression 39 operands: lhs = Zero, rhs = Counter(3) -- expression 40 operands: lhs = Zero, rhs = Counter(5) -- expression 41 operands: lhs = Expression(42, Add), rhs = Counter(9) -- expression 42 operands: lhs = Expression(43, Sub), rhs = Counter(6) -- expression 43 operands: lhs = Expression(44, Add), rhs = Counter(5) -- expression 44 operands: lhs = Zero, rhs = Expression(45, Sub) -- expression 45 operands: lhs = Expression(46, Sub), rhs = Zero -- expression 46 operands: lhs = Expression(47, Sub), rhs = Zero -- expression 47 operands: lhs = Expression(48, Add), rhs = Counter(6) -- expression 48 operands: lhs = Expression(49, Add), rhs = Expression(50, Add) -- expression 49 operands: lhs = Zero, rhs = Counter(3) -- expression 50 operands: lhs = Zero, rhs = Counter(5) -Number of file 0 mappings: 20 +- expression 26 operands: lhs = Expression(58, Sub), rhs = Zero +- expression 27 operands: lhs = Expression(59, Sub), rhs = Zero +- expression 28 operands: lhs = Expression(60, Add), rhs = Counter(6) +- expression 29 operands: lhs = Expression(61, Add), rhs = Expression(62, Add) +- expression 30 operands: lhs = Zero, rhs = Counter(3) +- expression 31 operands: lhs = Zero, rhs = Counter(5) +- expression 32 operands: lhs = Expression(58, Sub), rhs = Zero +- expression 33 operands: lhs = Expression(59, Sub), rhs = Zero +- expression 34 operands: lhs = Expression(60, Add), rhs = Counter(6) +- expression 35 operands: lhs = Expression(61, Add), rhs = Expression(62, Add) +- expression 36 operands: lhs = Zero, rhs = Counter(3) +- expression 37 operands: lhs = Zero, rhs = Counter(5) +- expression 38 operands: lhs = Zero, rhs = Expression(57, Sub) +- expression 39 operands: lhs = Expression(58, Sub), rhs = Zero +- expression 40 operands: lhs = Expression(59, Sub), rhs = Zero +- expression 41 operands: lhs = Expression(60, Add), rhs = Counter(6) +- expression 42 operands: lhs = Expression(61, Add), rhs = Expression(62, Add) +- expression 43 operands: lhs = Zero, rhs = Counter(3) +- expression 44 operands: lhs = Zero, rhs = Counter(5) +- expression 45 operands: lhs = Expression(56, Add), rhs = Counter(5) +- expression 46 operands: lhs = Zero, rhs = Expression(57, Sub) +- expression 47 operands: lhs = Expression(58, Sub), rhs = Zero +- expression 48 operands: lhs = Expression(59, Sub), rhs = Zero +- expression 49 operands: lhs = Expression(60, Add), rhs = Counter(6) +- expression 50 operands: lhs = Expression(61, Add), rhs = Expression(62, Add) +- expression 51 operands: lhs = Zero, rhs = Counter(3) +- expression 52 operands: lhs = Zero, rhs = Counter(5) +- expression 53 operands: lhs = Expression(54, Add), rhs = Counter(9) +- expression 54 operands: lhs = Expression(55, Sub), rhs = Counter(6) +- expression 55 operands: lhs = Expression(56, Add), rhs = Counter(5) +- expression 56 operands: lhs = Zero, rhs = Expression(57, Sub) +- expression 57 operands: lhs = Expression(58, Sub), rhs = Zero +- expression 58 operands: lhs = Expression(59, Sub), rhs = Zero +- expression 59 operands: lhs = Expression(60, Add), rhs = Counter(6) +- expression 60 operands: lhs = Expression(61, Add), rhs = Expression(62, Add) +- expression 61 operands: lhs = Zero, rhs = Counter(3) +- expression 62 operands: lhs = Zero, rhs = Counter(5) +Number of file 0 mappings: 26 - Code(Counter(0)) at (prev + 34, 5) to (start + 1, 17) -- Code(Zero) at (prev + 1, 18) to (start + 1, 10) +- Branch { true: Zero, false: Expression(0, Sub) } at (prev + 1, 12) to (start + 0, 17) + true = Zero + false = (c0 - Zero) +- Code(Zero) at (prev + 0, 18) to (start + 1, 10) - Code(Expression(0, Sub)) at (prev + 2, 16) to (start + 0, 21) = (c0 - Zero) +- Branch { true: Zero, false: Expression(4, Sub) } at (prev + 0, 16) to (start + 0, 21) + true = Zero + false = ((c0 - Zero) - Zero) - Code(Zero) at (prev + 1, 23) to (start + 0, 27) +- Branch { true: Zero, false: Zero } at (prev + 0, 23) to (start + 0, 27) + true = Zero + false = Zero - Code(Zero) at (prev + 0, 28) to (start + 0, 30) -- Code(Expression(3, Sub)) at (prev + 1, 14) to (start + 0, 15) +- Code(Expression(4, Sub)) at (prev + 1, 14) to (start + 0, 15) = ((c0 - Zero) - Zero) -- Code(Expression(2, Add)) at (prev + 1, 13) to (start + 0, 30) +- Code(Expression(3, Add)) at (prev + 1, 13) to (start + 0, 30) = (Zero + ((c0 - Zero) - Zero)) - Code(Counter(9)) at (prev + 0, 30) to (start + 0, 31) -- Code(Expression(47, Sub)) at (prev + 2, 13) to (start + 0, 14) +- Code(Expression(59, Sub)) at (prev + 2, 13) to (start + 0, 14) = (((Zero + c3) + (Zero + c5)) - c6) -- Code(Expression(48, Add)) at (prev + 0, 18) to (start + 0, 23) +- Code(Expression(60, Add)) at (prev + 0, 18) to (start + 0, 23) = ((Zero + c3) + (Zero + c5)) -- Code(Expression(47, Sub)) at (prev + 1, 16) to (start + 0, 21) +- Code(Expression(59, Sub)) at (prev + 1, 16) to (start + 0, 21) = (((Zero + c3) + (Zero + c5)) - c6) +- Branch { true: Zero, false: Expression(58, Sub) } at (prev + 0, 16) to (start + 0, 21) + true = Zero + false = ((((Zero + c3) + (Zero + c5)) - c6) - Zero) - Code(Zero) at (prev + 0, 22) to (start + 1, 14) -- Code(Expression(46, Sub)) at (prev + 2, 20) to (start + 0, 25) +- Code(Expression(58, Sub)) at (prev + 2, 20) to (start + 0, 25) = ((((Zero + c3) + (Zero + c5)) - c6) - Zero) +- Branch { true: Zero, false: Expression(57, Sub) } at (prev + 0, 20) to (start + 0, 25) + true = Zero + false = (((((Zero + c3) + (Zero + c5)) - c6) - Zero) - Zero) - Code(Zero) at (prev + 1, 27) to (start + 0, 31) +- Branch { true: Zero, false: Zero } at (prev + 0, 27) to (start + 0, 31) + true = Zero + false = Zero - Code(Zero) at (prev + 0, 32) to (start + 0, 34) -- Code(Expression(45, Sub)) at (prev + 1, 18) to (start + 0, 19) +- Code(Expression(57, Sub)) at (prev + 1, 18) to (start + 0, 19) = (((((Zero + c3) + (Zero + c5)) - c6) - Zero) - Zero) -- Code(Expression(44, Add)) at (prev + 1, 17) to (start + 0, 34) +- Code(Expression(56, Add)) at (prev + 1, 17) to (start + 0, 34) = (Zero + (((((Zero + c3) + (Zero + c5)) - c6) - Zero) - Zero)) -- Code(Expression(43, Sub)) at (prev + 0, 34) to (start + 0, 35) +- Code(Expression(55, Sub)) at (prev + 0, 34) to (start + 0, 35) = ((Zero + (((((Zero + c3) + (Zero + c5)) - c6) - Zero) - Zero)) - c5) - Code(Counter(6)) at (prev + 3, 9) to (start + 0, 15) -- Code(Expression(41, Add)) at (prev + 1, 5) to (start + 0, 6) +- Code(Expression(53, Add)) at (prev + 1, 5) to (start + 0, 6) = ((((Zero + (((((Zero + c3) + (Zero + c5)) - c6) - Zero) - Zero)) - c5) + c6) + c9) Function name: loops_branches::main diff --git a/tests/coverage/loops_branches.coverage b/tests/coverage/loops_branches.coverage index 8cd6f1be3f7a6..cdfb9501bd97e 100644 --- a/tests/coverage/loops_branches.coverage +++ b/tests/coverage/loops_branches.coverage @@ -8,8 +8,17 @@ LL| |impl std::fmt::Debug for DebugTest { LL| 1| fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { LL| 1| if true { + ------------------ + | Branch (LL:12): [True: 1, False: 0] + ------------------ LL| 1| if false { + ------------------ + | Branch (LL:16): [True: 0, False: 1] + ------------------ LL| 0| while true {} + ------------------ + | Branch (LL:23): [Folded - Ignored] + ------------------ LL| 1| } LL| 1| write!(f, "cool")?; ^0 @@ -19,8 +28,17 @@ LL| 11| for i in 0..10 { ^10 LL| 10| if true { + ------------------ + | Branch (LL:16): [True: 10, False: 0] + ------------------ LL| 10| if false { + ------------------ + | Branch (LL:20): [True: 0, False: 10] + ------------------ LL| 0| while true {} + ------------------ + | Branch (LL:27): [Folded - Ignored] + ------------------ LL| 10| } LL| 10| write!(f, "cool")?; ^0 @@ -36,9 +54,18 @@ LL| |impl std::fmt::Display for DisplayTest { LL| 1| fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { LL| 1| if false { + ------------------ + | Branch (LL:12): [True: 0, False: 1] + ------------------ LL| 0| } else { LL| 1| if false { + ------------------ + | Branch (LL:16): [True: 0, False: 1] + ------------------ LL| 0| while true {} + ------------------ + | Branch (LL:23): [Folded - Ignored] + ------------------ LL| 1| } LL| 1| write!(f, "cool")?; ^0 @@ -46,9 +73,18 @@ LL| 11| for i in 0..10 { ^10 LL| 10| if false { + ------------------ + | Branch (LL:16): [True: 0, False: 10] + ------------------ LL| 0| } else { LL| 10| if false { + ------------------ + | Branch (LL:20): [True: 0, False: 10] + ------------------ LL| 0| while true {} + ------------------ + | Branch (LL:27): [Folded - Ignored] + ------------------ LL| 10| } LL| 10| write!(f, "cool")?; ^0 diff --git a/tests/coverage/match_or_pattern.cov-map b/tests/coverage/match_or_pattern.cov-map index d63407a99c35f..a0b7826efbd44 100644 --- a/tests/coverage/match_or_pattern.cov-map +++ b/tests/coverage/match_or_pattern.cov-map @@ -1,83 +1,104 @@ Function name: match_or_pattern::main -Raw bytes (202): 0x[01, 01, 23, 01, 05, 05, 02, 09, 0d, 2f, 11, 09, 0d, 2b, 15, 2f, 11, 09, 0d, 15, 26, 2b, 15, 2f, 11, 09, 0d, 19, 1d, 57, 21, 19, 1d, 53, 25, 57, 21, 19, 1d, 25, 4e, 53, 25, 57, 21, 19, 1d, 29, 2d, 7f, 31, 29, 2d, 7b, 35, 7f, 31, 29, 2d, 35, 76, 7b, 35, 7f, 31, 29, 2d, 39, 3d, 8b, 01, 41, 39, 3d, 19, 01, 01, 01, 08, 0f, 05, 08, 10, 03, 06, 02, 03, 06, 00, 07, 07, 01, 0b, 00, 11, 11, 03, 1b, 00, 1d, 2f, 01, 0e, 00, 10, 2b, 02, 08, 00, 0f, 15, 00, 10, 03, 06, 26, 03, 06, 00, 07, 23, 01, 0b, 00, 11, 21, 01, 1b, 00, 1d, 57, 01, 0e, 00, 10, 53, 02, 08, 00, 0f, 25, 00, 10, 03, 06, 4e, 03, 06, 00, 07, 4b, 01, 0b, 00, 11, 31, 01, 1b, 00, 1d, 7f, 01, 0e, 00, 10, 7b, 02, 08, 00, 0f, 35, 00, 10, 03, 06, 76, 03, 06, 00, 07, 73, 01, 0b, 00, 11, 41, 01, 1b, 00, 1d, 8b, 01, 01, 0e, 00, 10, 87, 01, 02, 01, 00, 02] +Raw bytes (261): 0x[01, 01, 2c, 01, 05, 05, 02, 09, 0d, 3b, 11, 09, 0d, 37, 15, 3b, 11, 09, 0d, 37, 15, 3b, 11, 09, 0d, 15, 32, 37, 15, 3b, 11, 09, 0d, 19, 1d, 6f, 21, 19, 1d, 6b, 25, 6f, 21, 19, 1d, 6b, 25, 6f, 21, 19, 1d, 25, 66, 6b, 25, 6f, 21, 19, 1d, 29, 2d, a3, 01, 31, 29, 2d, 9f, 01, 35, a3, 01, 31, 29, 2d, 9f, 01, 35, a3, 01, 31, 29, 2d, 35, 9a, 01, 9f, 01, 35, a3, 01, 31, 29, 2d, 39, 3d, af, 01, 41, 39, 3d, 1d, 01, 01, 01, 08, 0f, 20, 05, 02, 08, 08, 00, 0f, 05, 00, 10, 03, 06, 02, 03, 06, 00, 07, 07, 01, 0b, 00, 11, 11, 03, 1b, 00, 1d, 3b, 01, 0e, 00, 10, 37, 02, 08, 00, 0f, 20, 15, 32, 00, 08, 00, 0f, 15, 00, 10, 03, 06, 32, 03, 06, 00, 07, 2f, 01, 0b, 00, 11, 21, 01, 1b, 00, 1d, 6f, 01, 0e, 00, 10, 6b, 02, 08, 00, 0f, 20, 25, 66, 00, 08, 00, 0f, 25, 00, 10, 03, 06, 66, 03, 06, 00, 07, 63, 01, 0b, 00, 11, 31, 01, 1b, 00, 1d, a3, 01, 01, 0e, 00, 10, 9f, 01, 02, 08, 00, 0f, 20, 35, 9a, 01, 00, 08, 00, 0f, 35, 00, 10, 03, 06, 9a, 01, 03, 06, 00, 07, 97, 01, 01, 0b, 00, 11, 41, 01, 1b, 00, 1d, af, 01, 01, 0e, 00, 10, ab, 01, 02, 01, 00, 02] Number of files: 1 - file 0 => global file 1 -Number of expressions: 35 +Number of expressions: 44 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) - expression 2 operands: lhs = Counter(2), rhs = Counter(3) -- expression 3 operands: lhs = Expression(11, Add), rhs = Counter(4) +- expression 3 operands: lhs = Expression(14, Add), rhs = Counter(4) - expression 4 operands: lhs = Counter(2), rhs = Counter(3) -- expression 5 operands: lhs = Expression(10, Add), rhs = Counter(5) -- expression 6 operands: lhs = Expression(11, Add), rhs = Counter(4) +- expression 5 operands: lhs = Expression(13, Add), rhs = Counter(5) +- expression 6 operands: lhs = Expression(14, Add), rhs = Counter(4) - expression 7 operands: lhs = Counter(2), rhs = Counter(3) -- expression 8 operands: lhs = Counter(5), rhs = Expression(9, Sub) -- expression 9 operands: lhs = Expression(10, Add), rhs = Counter(5) -- expression 10 operands: lhs = Expression(11, Add), rhs = Counter(4) -- expression 11 operands: lhs = Counter(2), rhs = Counter(3) -- expression 12 operands: lhs = Counter(6), rhs = Counter(7) -- expression 13 operands: lhs = Expression(21, Add), rhs = Counter(8) -- expression 14 operands: lhs = Counter(6), rhs = Counter(7) -- expression 15 operands: lhs = Expression(20, Add), rhs = Counter(9) -- expression 16 operands: lhs = Expression(21, Add), rhs = Counter(8) +- expression 8 operands: lhs = Expression(13, Add), rhs = Counter(5) +- expression 9 operands: lhs = Expression(14, Add), rhs = Counter(4) +- expression 10 operands: lhs = Counter(2), rhs = Counter(3) +- expression 11 operands: lhs = Counter(5), rhs = Expression(12, Sub) +- expression 12 operands: lhs = Expression(13, Add), rhs = Counter(5) +- expression 13 operands: lhs = Expression(14, Add), rhs = Counter(4) +- expression 14 operands: lhs = Counter(2), rhs = Counter(3) +- expression 15 operands: lhs = Counter(6), rhs = Counter(7) +- expression 16 operands: lhs = Expression(27, Add), rhs = Counter(8) - expression 17 operands: lhs = Counter(6), rhs = Counter(7) -- expression 18 operands: lhs = Counter(9), rhs = Expression(19, Sub) -- expression 19 operands: lhs = Expression(20, Add), rhs = Counter(9) -- expression 20 operands: lhs = Expression(21, Add), rhs = Counter(8) -- expression 21 operands: lhs = Counter(6), rhs = Counter(7) -- expression 22 operands: lhs = Counter(10), rhs = Counter(11) -- expression 23 operands: lhs = Expression(31, Add), rhs = Counter(12) -- expression 24 operands: lhs = Counter(10), rhs = Counter(11) -- expression 25 operands: lhs = Expression(30, Add), rhs = Counter(13) -- expression 26 operands: lhs = Expression(31, Add), rhs = Counter(12) -- expression 27 operands: lhs = Counter(10), rhs = Counter(11) -- expression 28 operands: lhs = Counter(13), rhs = Expression(29, Sub) -- expression 29 operands: lhs = Expression(30, Add), rhs = Counter(13) -- expression 30 operands: lhs = Expression(31, Add), rhs = Counter(12) -- expression 31 operands: lhs = Counter(10), rhs = Counter(11) -- expression 32 operands: lhs = Counter(14), rhs = Counter(15) -- expression 33 operands: lhs = Expression(34, Add), rhs = Counter(16) -- expression 34 operands: lhs = Counter(14), rhs = Counter(15) -Number of file 0 mappings: 25 +- expression 18 operands: lhs = Expression(26, Add), rhs = Counter(9) +- expression 19 operands: lhs = Expression(27, Add), rhs = Counter(8) +- expression 20 operands: lhs = Counter(6), rhs = Counter(7) +- expression 21 operands: lhs = Expression(26, Add), rhs = Counter(9) +- expression 22 operands: lhs = Expression(27, Add), rhs = Counter(8) +- expression 23 operands: lhs = Counter(6), rhs = Counter(7) +- expression 24 operands: lhs = Counter(9), rhs = Expression(25, Sub) +- expression 25 operands: lhs = Expression(26, Add), rhs = Counter(9) +- expression 26 operands: lhs = Expression(27, Add), rhs = Counter(8) +- expression 27 operands: lhs = Counter(6), rhs = Counter(7) +- expression 28 operands: lhs = Counter(10), rhs = Counter(11) +- expression 29 operands: lhs = Expression(40, Add), rhs = Counter(12) +- expression 30 operands: lhs = Counter(10), rhs = Counter(11) +- expression 31 operands: lhs = Expression(39, Add), rhs = Counter(13) +- expression 32 operands: lhs = Expression(40, Add), rhs = Counter(12) +- expression 33 operands: lhs = Counter(10), rhs = Counter(11) +- expression 34 operands: lhs = Expression(39, Add), rhs = Counter(13) +- expression 35 operands: lhs = Expression(40, Add), rhs = Counter(12) +- expression 36 operands: lhs = Counter(10), rhs = Counter(11) +- expression 37 operands: lhs = Counter(13), rhs = Expression(38, Sub) +- expression 38 operands: lhs = Expression(39, Add), rhs = Counter(13) +- expression 39 operands: lhs = Expression(40, Add), rhs = Counter(12) +- expression 40 operands: lhs = Counter(10), rhs = Counter(11) +- expression 41 operands: lhs = Counter(14), rhs = Counter(15) +- expression 42 operands: lhs = Expression(43, Add), rhs = Counter(16) +- expression 43 operands: lhs = Counter(14), rhs = Counter(15) +Number of file 0 mappings: 29 - Code(Counter(0)) at (prev + 1, 1) to (start + 8, 15) -- Code(Counter(1)) at (prev + 8, 16) to (start + 3, 6) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 8, 8) to (start + 0, 15) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 16) to (start + 3, 6) - Code(Expression(0, Sub)) at (prev + 3, 6) to (start + 0, 7) = (c0 - c1) - Code(Expression(1, Add)) at (prev + 1, 11) to (start + 0, 17) = (c1 + (c0 - c1)) - Code(Counter(4)) at (prev + 3, 27) to (start + 0, 29) -- Code(Expression(11, Add)) at (prev + 1, 14) to (start + 0, 16) +- Code(Expression(14, Add)) at (prev + 1, 14) to (start + 0, 16) = (c2 + c3) -- Code(Expression(10, Add)) at (prev + 2, 8) to (start + 0, 15) +- Code(Expression(13, Add)) at (prev + 2, 8) to (start + 0, 15) = ((c2 + c3) + c4) +- Branch { true: Counter(5), false: Expression(12, Sub) } at (prev + 0, 8) to (start + 0, 15) + true = c5 + false = (((c2 + c3) + c4) - c5) - Code(Counter(5)) at (prev + 0, 16) to (start + 3, 6) -- Code(Expression(9, Sub)) at (prev + 3, 6) to (start + 0, 7) +- Code(Expression(12, Sub)) at (prev + 3, 6) to (start + 0, 7) = (((c2 + c3) + c4) - c5) -- Code(Expression(8, Add)) at (prev + 1, 11) to (start + 0, 17) +- Code(Expression(11, Add)) at (prev + 1, 11) to (start + 0, 17) = (c5 + (((c2 + c3) + c4) - c5)) - Code(Counter(8)) at (prev + 1, 27) to (start + 0, 29) -- Code(Expression(21, Add)) at (prev + 1, 14) to (start + 0, 16) +- Code(Expression(27, Add)) at (prev + 1, 14) to (start + 0, 16) = (c6 + c7) -- Code(Expression(20, Add)) at (prev + 2, 8) to (start + 0, 15) +- Code(Expression(26, Add)) at (prev + 2, 8) to (start + 0, 15) = ((c6 + c7) + c8) +- Branch { true: Counter(9), false: Expression(25, Sub) } at (prev + 0, 8) to (start + 0, 15) + true = c9 + false = (((c6 + c7) + c8) - c9) - Code(Counter(9)) at (prev + 0, 16) to (start + 3, 6) -- Code(Expression(19, Sub)) at (prev + 3, 6) to (start + 0, 7) +- Code(Expression(25, Sub)) at (prev + 3, 6) to (start + 0, 7) = (((c6 + c7) + c8) - c9) -- Code(Expression(18, Add)) at (prev + 1, 11) to (start + 0, 17) +- Code(Expression(24, Add)) at (prev + 1, 11) to (start + 0, 17) = (c9 + (((c6 + c7) + c8) - c9)) - Code(Counter(12)) at (prev + 1, 27) to (start + 0, 29) -- Code(Expression(31, Add)) at (prev + 1, 14) to (start + 0, 16) +- Code(Expression(40, Add)) at (prev + 1, 14) to (start + 0, 16) = (c10 + c11) -- Code(Expression(30, Add)) at (prev + 2, 8) to (start + 0, 15) +- Code(Expression(39, Add)) at (prev + 2, 8) to (start + 0, 15) = ((c10 + c11) + c12) +- Branch { true: Counter(13), false: Expression(38, Sub) } at (prev + 0, 8) to (start + 0, 15) + true = c13 + false = (((c10 + c11) + c12) - c13) - Code(Counter(13)) at (prev + 0, 16) to (start + 3, 6) -- Code(Expression(29, Sub)) at (prev + 3, 6) to (start + 0, 7) +- Code(Expression(38, Sub)) at (prev + 3, 6) to (start + 0, 7) = (((c10 + c11) + c12) - c13) -- Code(Expression(28, Add)) at (prev + 1, 11) to (start + 0, 17) +- Code(Expression(37, Add)) at (prev + 1, 11) to (start + 0, 17) = (c13 + (((c10 + c11) + c12) - c13)) - Code(Counter(16)) at (prev + 1, 27) to (start + 0, 29) -- Code(Expression(34, Add)) at (prev + 1, 14) to (start + 0, 16) +- Code(Expression(43, Add)) at (prev + 1, 14) to (start + 0, 16) = (c14 + c15) -- Code(Expression(33, Add)) at (prev + 2, 1) to (start + 0, 2) +- Code(Expression(42, Add)) at (prev + 2, 1) to (start + 0, 2) = ((c14 + c15) + c16) diff --git a/tests/coverage/match_or_pattern.coverage b/tests/coverage/match_or_pattern.coverage index 94c7967215c1b..f980d07078764 100644 --- a/tests/coverage/match_or_pattern.coverage +++ b/tests/coverage/match_or_pattern.coverage @@ -7,6 +7,9 @@ LL| 1| let mut a: u8 = 0; LL| 1| let mut b: u8 = 0; LL| 1| if is_true { + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| 1| a = 2; LL| 1| b = 0; LL| 1| } @@ -18,6 +21,9 @@ LL| 1| _ => {} LL| | } LL| 1| if is_true { + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| 1| a = 0; LL| 1| b = 0; LL| 1| } @@ -27,6 +33,9 @@ LL| 1| _ => {} LL| | } LL| 1| if is_true { + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| 1| a = 2; LL| 1| b = 2; LL| 1| } @@ -36,6 +45,9 @@ LL| 1| _ => {} LL| | } LL| 1| if is_true { + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| 1| a = 0; LL| 1| b = 2; LL| 1| } diff --git a/tests/coverage/nested_loops.cov-map b/tests/coverage/nested_loops.cov-map index 35d92594e75e3..988828c41e20e 100644 --- a/tests/coverage/nested_loops.cov-map +++ b/tests/coverage/nested_loops.cov-map @@ -1,51 +1,75 @@ Function name: nested_loops::main -Raw bytes (115): 0x[01, 01, 17, 01, 57, 05, 09, 03, 0d, 4e, 53, 03, 0d, 15, 19, 4b, 09, 4e, 53, 03, 0d, 15, 19, 46, 05, 4b, 09, 4e, 53, 03, 0d, 15, 19, 42, 19, 46, 05, 4b, 09, 4e, 53, 03, 0d, 15, 19, 05, 09, 11, 0d, 0d, 01, 01, 01, 02, 1b, 03, 04, 13, 00, 20, 4e, 01, 0d, 01, 18, 4b, 02, 12, 00, 17, 46, 01, 10, 00, 16, 05, 01, 11, 00, 16, 42, 01, 0e, 03, 16, 3e, 04, 11, 01, 1b, 11, 02, 15, 00, 21, 15, 01, 18, 02, 12, 19, 03, 0e, 00, 0f, 57, 02, 09, 00, 17, 5b, 02, 01, 00, 02] +Raw bytes (176): 0x[01, 01, 23, 01, 87, 01, 05, 09, 03, 0d, 03, 0d, 7e, 83, 01, 03, 0d, 15, 19, 7b, 09, 7e, 83, 01, 03, 0d, 15, 19, 76, 05, 7b, 09, 7e, 83, 01, 03, 0d, 15, 19, 76, 05, 7b, 09, 7e, 83, 01, 03, 0d, 15, 19, 72, 19, 76, 05, 7b, 09, 7e, 83, 01, 03, 0d, 15, 19, 72, 19, 76, 05, 7b, 09, 7e, 83, 01, 03, 0d, 15, 19, 05, 09, 11, 0d, 11, 01, 01, 01, 02, 1b, 03, 04, 13, 00, 20, 20, 7e, 0d, 00, 13, 00, 20, 7e, 01, 0d, 01, 18, 7b, 02, 12, 00, 17, 76, 01, 10, 00, 16, 20, 05, 72, 00, 10, 00, 16, 05, 01, 11, 00, 16, 72, 01, 0e, 03, 16, 20, 6e, 19, 03, 10, 00, 16, 6e, 01, 11, 01, 1b, 20, 11, 15, 01, 14, 00, 1b, 11, 01, 15, 00, 21, 15, 01, 18, 02, 12, 19, 03, 0e, 00, 0f, 87, 01, 02, 09, 00, 17, 8b, 01, 02, 01, 00, 02] Number of files: 1 - file 0 => global file 1 -Number of expressions: 23 -- expression 0 operands: lhs = Counter(0), rhs = Expression(21, Add) +Number of expressions: 35 +- expression 0 operands: lhs = Counter(0), rhs = Expression(33, Add) - expression 1 operands: lhs = Counter(1), rhs = Counter(2) - expression 2 operands: lhs = Expression(0, Add), rhs = Counter(3) -- expression 3 operands: lhs = Expression(19, Sub), rhs = Expression(20, Add) -- expression 4 operands: lhs = Expression(0, Add), rhs = Counter(3) -- expression 5 operands: lhs = Counter(5), rhs = Counter(6) -- expression 6 operands: lhs = Expression(18, Add), rhs = Counter(2) -- expression 7 operands: lhs = Expression(19, Sub), rhs = Expression(20, Add) -- expression 8 operands: lhs = Expression(0, Add), rhs = Counter(3) -- expression 9 operands: lhs = Counter(5), rhs = Counter(6) -- expression 10 operands: lhs = Expression(17, Sub), rhs = Counter(1) -- expression 11 operands: lhs = Expression(18, Add), rhs = Counter(2) -- expression 12 operands: lhs = Expression(19, Sub), rhs = Expression(20, Add) -- expression 13 operands: lhs = Expression(0, Add), rhs = Counter(3) -- expression 14 operands: lhs = Counter(5), rhs = Counter(6) -- expression 15 operands: lhs = Expression(16, Sub), rhs = Counter(6) -- expression 16 operands: lhs = Expression(17, Sub), rhs = Counter(1) -- expression 17 operands: lhs = Expression(18, Add), rhs = Counter(2) -- expression 18 operands: lhs = Expression(19, Sub), rhs = Expression(20, Add) +- expression 3 operands: lhs = Expression(0, Add), rhs = Counter(3) +- expression 4 operands: lhs = Expression(31, Sub), rhs = Expression(32, Add) +- expression 5 operands: lhs = Expression(0, Add), rhs = Counter(3) +- expression 6 operands: lhs = Counter(5), rhs = Counter(6) +- expression 7 operands: lhs = Expression(30, Add), rhs = Counter(2) +- expression 8 operands: lhs = Expression(31, Sub), rhs = Expression(32, Add) +- expression 9 operands: lhs = Expression(0, Add), rhs = Counter(3) +- expression 10 operands: lhs = Counter(5), rhs = Counter(6) +- expression 11 operands: lhs = Expression(29, Sub), rhs = Counter(1) +- expression 12 operands: lhs = Expression(30, Add), rhs = Counter(2) +- expression 13 operands: lhs = Expression(31, Sub), rhs = Expression(32, Add) +- expression 14 operands: lhs = Expression(0, Add), rhs = Counter(3) +- expression 15 operands: lhs = Counter(5), rhs = Counter(6) +- expression 16 operands: lhs = Expression(29, Sub), rhs = Counter(1) +- expression 17 operands: lhs = Expression(30, Add), rhs = Counter(2) +- expression 18 operands: lhs = Expression(31, Sub), rhs = Expression(32, Add) - expression 19 operands: lhs = Expression(0, Add), rhs = Counter(3) - expression 20 operands: lhs = Counter(5), rhs = Counter(6) -- expression 21 operands: lhs = Counter(1), rhs = Counter(2) -- expression 22 operands: lhs = Counter(4), rhs = Counter(3) -Number of file 0 mappings: 13 +- expression 21 operands: lhs = Expression(28, Sub), rhs = Counter(6) +- expression 22 operands: lhs = Expression(29, Sub), rhs = Counter(1) +- expression 23 operands: lhs = Expression(30, Add), rhs = Counter(2) +- expression 24 operands: lhs = Expression(31, Sub), rhs = Expression(32, Add) +- expression 25 operands: lhs = Expression(0, Add), rhs = Counter(3) +- expression 26 operands: lhs = Counter(5), rhs = Counter(6) +- expression 27 operands: lhs = Expression(28, Sub), rhs = Counter(6) +- expression 28 operands: lhs = Expression(29, Sub), rhs = Counter(1) +- expression 29 operands: lhs = Expression(30, Add), rhs = Counter(2) +- expression 30 operands: lhs = Expression(31, Sub), rhs = Expression(32, Add) +- expression 31 operands: lhs = Expression(0, Add), rhs = Counter(3) +- expression 32 operands: lhs = Counter(5), rhs = Counter(6) +- expression 33 operands: lhs = Counter(1), rhs = Counter(2) +- expression 34 operands: lhs = Counter(4), rhs = Counter(3) +Number of file 0 mappings: 17 - Code(Counter(0)) at (prev + 1, 1) to (start + 2, 27) - Code(Expression(0, Add)) at (prev + 4, 19) to (start + 0, 32) = (c0 + (c1 + c2)) -- Code(Expression(19, Sub)) at (prev + 1, 13) to (start + 1, 24) +- Branch { true: Expression(31, Sub), false: Counter(3) } at (prev + 0, 19) to (start + 0, 32) + true = ((c0 + (c1 + c2)) - c3) + false = c3 +- Code(Expression(31, Sub)) at (prev + 1, 13) to (start + 1, 24) = ((c0 + (c1 + c2)) - c3) -- Code(Expression(18, Add)) at (prev + 2, 18) to (start + 0, 23) +- Code(Expression(30, Add)) at (prev + 2, 18) to (start + 0, 23) = (((c0 + (c1 + c2)) - c3) + (c5 + c6)) -- Code(Expression(17, Sub)) at (prev + 1, 16) to (start + 0, 22) +- Code(Expression(29, Sub)) at (prev + 1, 16) to (start + 0, 22) = ((((c0 + (c1 + c2)) - c3) + (c5 + c6)) - c2) +- Branch { true: Counter(1), false: Expression(28, Sub) } at (prev + 0, 16) to (start + 0, 22) + true = c1 + false = (((((c0 + (c1 + c2)) - c3) + (c5 + c6)) - c2) - c1) - Code(Counter(1)) at (prev + 1, 17) to (start + 0, 22) -- Code(Expression(16, Sub)) at (prev + 1, 14) to (start + 3, 22) +- Code(Expression(28, Sub)) at (prev + 1, 14) to (start + 3, 22) = (((((c0 + (c1 + c2)) - c3) + (c5 + c6)) - c2) - c1) -- Code(Expression(15, Sub)) at (prev + 4, 17) to (start + 1, 27) +- Branch { true: Expression(27, Sub), false: Counter(6) } at (prev + 3, 16) to (start + 0, 22) + true = ((((((c0 + (c1 + c2)) - c3) + (c5 + c6)) - c2) - c1) - c6) + false = c6 +- Code(Expression(27, Sub)) at (prev + 1, 17) to (start + 1, 27) = ((((((c0 + (c1 + c2)) - c3) + (c5 + c6)) - c2) - c1) - c6) -- Code(Counter(4)) at (prev + 2, 21) to (start + 0, 33) +- Branch { true: Counter(4), false: Counter(5) } at (prev + 1, 20) to (start + 0, 27) + true = c4 + false = c5 +- Code(Counter(4)) at (prev + 1, 21) to (start + 0, 33) - Code(Counter(5)) at (prev + 1, 24) to (start + 2, 18) - Code(Counter(6)) at (prev + 3, 14) to (start + 0, 15) -- Code(Expression(21, Add)) at (prev + 2, 9) to (start + 0, 23) +- Code(Expression(33, Add)) at (prev + 2, 9) to (start + 0, 23) = (c1 + c2) -- Code(Expression(22, Add)) at (prev + 2, 1) to (start + 0, 2) +- Code(Expression(34, Add)) at (prev + 2, 1) to (start + 0, 2) = (c4 + c3) diff --git a/tests/coverage/nested_loops.coverage b/tests/coverage/nested_loops.coverage index 143d0d26aa7f3..1728d4f5eee19 100644 --- a/tests/coverage/nested_loops.coverage +++ b/tests/coverage/nested_loops.coverage @@ -3,17 +3,29 @@ LL| 1| let mut countdown = 10; LL| | LL| 1| 'outer: while countdown > 0 { + ------------------ + | Branch (LL:19): [True: 1, False: 0] + ------------------ LL| 1| let mut a = 100; LL| 1| let mut b = 100; LL| 3| for _ in 0..50 { LL| 3| if a < 30 { + ------------------ + | Branch (LL:16): [True: 0, False: 3] + ------------------ LL| 0| break; LL| 3| } LL| 3| a -= 5; LL| 3| b -= 5; LL| 3| if b < 90 { + ------------------ + | Branch (LL:16): [True: 1, False: 2] + ------------------ LL| 1| a -= 10; LL| 1| if is_true { + ------------------ + | Branch (LL:20): [True: 1, False: 0] + ------------------ LL| 1| break 'outer; LL| 0| } else { LL| 0| a -= 2; diff --git a/tests/coverage/no_cov_crate.cov-map b/tests/coverage/no_cov_crate.cov-map index 05b6448bbd24a..10341da9b67e9 100644 --- a/tests/coverage/no_cov_crate.cov-map +++ b/tests/coverage/no_cov_crate.cov-map @@ -47,30 +47,36 @@ Number of file 0 mappings: 1 - Code(Counter(0)) at (prev + 63, 5) to (start + 11, 6) Function name: no_cov_crate::nested_fns::outer_both_covered::inner -Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 43, 09, 01, 17, 05, 01, 18, 02, 0e, 02, 02, 14, 02, 0e, 07, 03, 09, 00, 0a] +Raw bytes (35): 0x[01, 01, 02, 01, 05, 05, 02, 05, 01, 43, 09, 01, 17, 20, 05, 02, 01, 10, 00, 17, 05, 00, 18, 02, 0e, 02, 02, 14, 02, 0e, 07, 03, 09, 00, 0a] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 67, 9) to (start + 1, 23) -- Code(Counter(1)) at (prev + 1, 24) to (start + 2, 14) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 1, 16) to (start + 0, 23) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 24) to (start + 2, 14) - Code(Expression(0, Sub)) at (prev + 2, 20) to (start + 2, 14) = (c0 - c1) - Code(Expression(1, Add)) at (prev + 3, 9) to (start + 0, 10) = (c1 + (c0 - c1)) Function name: no_cov_crate::nested_fns::outer_not_covered::inner -Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 26, 09, 01, 17, 05, 01, 18, 02, 0e, 02, 02, 14, 02, 0e, 07, 03, 09, 00, 0a] +Raw bytes (35): 0x[01, 01, 02, 01, 05, 05, 02, 05, 01, 26, 09, 01, 17, 20, 05, 02, 01, 10, 00, 17, 05, 00, 18, 02, 0e, 02, 02, 14, 02, 0e, 07, 03, 09, 00, 0a] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 38, 9) to (start + 1, 23) -- Code(Counter(1)) at (prev + 1, 24) to (start + 2, 14) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 1, 16) to (start + 0, 23) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 24) to (start + 2, 14) - Code(Expression(0, Sub)) at (prev + 2, 20) to (start + 2, 14) = (c0 - c1) - Code(Expression(1, Add)) at (prev + 3, 9) to (start + 0, 10) diff --git a/tests/coverage/no_cov_crate.coverage b/tests/coverage/no_cov_crate.coverage index f5a0322bf3ee6..0f241bd82b30a 100644 --- a/tests/coverage/no_cov_crate.coverage +++ b/tests/coverage/no_cov_crate.coverage @@ -37,6 +37,9 @@ LL| | pub fn outer_not_covered(is_true: bool) { LL| 1| fn inner(is_true: bool) { LL| 1| if is_true { + ------------------ + | Branch (LL:16): [True: 1, False: 0] + ------------------ LL| 1| println!("called and covered"); LL| 1| } else { LL| 0| println!("absolutely not covered"); @@ -66,6 +69,9 @@ LL| 1| LL| 1| fn inner(is_true: bool) { LL| 1| if is_true { + ------------------ + | Branch (LL:16): [True: 1, False: 0] + ------------------ LL| 1| println!("called and covered"); LL| 1| } else { LL| 0| println!("absolutely not covered"); diff --git a/tests/coverage/overflow.cov-map b/tests/coverage/overflow.cov-map index 39a5c05f879ad..790ea441dadef 100644 --- a/tests/coverage/overflow.cov-map +++ b/tests/coverage/overflow.cov-map @@ -1,41 +1,56 @@ Function name: overflow::main -Raw bytes (65): 0x[01, 01, 08, 01, 1b, 05, 1f, 09, 0d, 03, 11, 16, 05, 03, 11, 05, 1f, 09, 0d, 09, 01, 10, 01, 01, 1b, 03, 02, 0b, 00, 18, 16, 01, 0c, 00, 1a, 05, 00, 1b, 03, 0a, 12, 03, 13, 00, 20, 09, 00, 21, 03, 0a, 0d, 03, 0a, 00, 0b, 1b, 01, 09, 00, 17, 11, 02, 05, 01, 02] +Raw bytes (92): 0x[01, 01, 0b, 01, 27, 05, 2b, 09, 0d, 03, 11, 03, 11, 22, 05, 03, 11, 22, 05, 03, 11, 05, 2b, 09, 0d, 0c, 01, 10, 01, 01, 1b, 03, 02, 0b, 00, 18, 20, 22, 11, 00, 0b, 00, 18, 22, 01, 0c, 00, 1a, 20, 05, 1e, 00, 0c, 00, 1a, 05, 00, 1b, 03, 0a, 1e, 03, 13, 00, 20, 20, 09, 0d, 00, 13, 00, 20, 09, 00, 21, 03, 0a, 0d, 03, 0a, 00, 0b, 27, 01, 09, 00, 17, 11, 02, 05, 01, 02] Number of files: 1 - file 0 => global file 1 -Number of expressions: 8 -- expression 0 operands: lhs = Counter(0), rhs = Expression(6, Add) -- expression 1 operands: lhs = Counter(1), rhs = Expression(7, Add) +Number of expressions: 11 +- expression 0 operands: lhs = Counter(0), rhs = Expression(9, Add) +- expression 1 operands: lhs = Counter(1), rhs = Expression(10, Add) - expression 2 operands: lhs = Counter(2), rhs = Counter(3) - expression 3 operands: lhs = Expression(0, Add), rhs = Counter(4) -- expression 4 operands: lhs = Expression(5, Sub), rhs = Counter(1) -- expression 5 operands: lhs = Expression(0, Add), rhs = Counter(4) -- expression 6 operands: lhs = Counter(1), rhs = Expression(7, Add) -- expression 7 operands: lhs = Counter(2), rhs = Counter(3) -Number of file 0 mappings: 9 +- expression 4 operands: lhs = Expression(0, Add), rhs = Counter(4) +- expression 5 operands: lhs = Expression(8, Sub), rhs = Counter(1) +- expression 6 operands: lhs = Expression(0, Add), rhs = Counter(4) +- expression 7 operands: lhs = Expression(8, Sub), rhs = Counter(1) +- expression 8 operands: lhs = Expression(0, Add), rhs = Counter(4) +- expression 9 operands: lhs = Counter(1), rhs = Expression(10, Add) +- expression 10 operands: lhs = Counter(2), rhs = Counter(3) +Number of file 0 mappings: 12 - Code(Counter(0)) at (prev + 16, 1) to (start + 1, 27) - Code(Expression(0, Add)) at (prev + 2, 11) to (start + 0, 24) = (c0 + (c1 + (c2 + c3))) -- Code(Expression(5, Sub)) at (prev + 1, 12) to (start + 0, 26) +- Branch { true: Expression(8, Sub), false: Counter(4) } at (prev + 0, 11) to (start + 0, 24) + true = ((c0 + (c1 + (c2 + c3))) - c4) + false = c4 +- Code(Expression(8, Sub)) at (prev + 1, 12) to (start + 0, 26) = ((c0 + (c1 + (c2 + c3))) - c4) +- Branch { true: Counter(1), false: Expression(7, Sub) } at (prev + 0, 12) to (start + 0, 26) + true = c1 + false = (((c0 + (c1 + (c2 + c3))) - c4) - c1) - Code(Counter(1)) at (prev + 0, 27) to (start + 3, 10) -- Code(Expression(4, Sub)) at (prev + 3, 19) to (start + 0, 32) +- Code(Expression(7, Sub)) at (prev + 3, 19) to (start + 0, 32) = (((c0 + (c1 + (c2 + c3))) - c4) - c1) +- Branch { true: Counter(2), false: Counter(3) } at (prev + 0, 19) to (start + 0, 32) + true = c2 + false = c3 - Code(Counter(2)) at (prev + 0, 33) to (start + 3, 10) - Code(Counter(3)) at (prev + 3, 10) to (start + 0, 11) -- Code(Expression(6, Add)) at (prev + 1, 9) to (start + 0, 23) +- Code(Expression(9, Add)) at (prev + 1, 9) to (start + 0, 23) = (c1 + (c2 + c3)) - Code(Counter(4)) at (prev + 2, 5) to (start + 1, 2) Function name: overflow::might_overflow -Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 05, 01, 01, 12, 05, 01, 13, 02, 06, 02, 02, 06, 00, 07, 07, 01, 09, 05, 02] +Raw bytes (35): 0x[01, 01, 02, 01, 05, 05, 02, 05, 01, 05, 01, 01, 12, 20, 05, 02, 01, 08, 00, 12, 05, 00, 13, 02, 06, 02, 02, 06, 00, 07, 07, 01, 09, 05, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 5, 1) to (start + 1, 18) -- Code(Counter(1)) at (prev + 1, 19) to (start + 2, 6) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 1, 8) to (start + 0, 18) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 19) to (start + 2, 6) - Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7) = (c0 - c1) - Code(Expression(1, Add)) at (prev + 1, 9) to (start + 5, 2) diff --git a/tests/coverage/overflow.coverage b/tests/coverage/overflow.coverage index 4f8dffc0c4814..abaecc3ad63cd 100644 --- a/tests/coverage/overflow.coverage +++ b/tests/coverage/overflow.coverage @@ -4,6 +4,9 @@ LL| | LL| 4|fn might_overflow(to_add: u32) -> u32 { LL| 4| if to_add > 5 { + ------------------ + | Branch (LL:8): [True: 1, False: 3] + ------------------ LL| 1| println!("this will probably overflow"); LL| 3| } LL| 4| let add_to = u32::MAX - 5; @@ -16,10 +19,19 @@ LL| 1|fn main() -> Result<(), u8> { LL| 1| let mut countdown = 10; LL| 11| while countdown > 0 { + ------------------ + | Branch (LL:11): [True: 11, False: 0] + ------------------ LL| 11| if countdown == 1 { + ------------------ + | Branch (LL:12): [True: 1, False: 10] + ------------------ LL| 1| let result = might_overflow(10); LL| 1| println!("Result: {}", result); LL| 10| } else if countdown < 5 { + ------------------ + | Branch (LL:19): [True: 3, False: 6] + ------------------ LL| 3| let result = might_overflow(1); LL| 3| println!("Result: {}", result); LL| 6| } diff --git a/tests/coverage/panic_unwind.cov-map b/tests/coverage/panic_unwind.cov-map index f6089ce55ae29..39d17771022e4 100644 --- a/tests/coverage/panic_unwind.cov-map +++ b/tests/coverage/panic_unwind.cov-map @@ -1,40 +1,55 @@ Function name: panic_unwind::main -Raw bytes (65): 0x[01, 01, 08, 01, 1b, 05, 1f, 09, 0d, 03, 11, 16, 05, 03, 11, 05, 1f, 09, 0d, 09, 01, 0d, 01, 01, 1b, 03, 02, 0b, 00, 18, 16, 01, 0c, 00, 1a, 05, 00, 1b, 02, 0a, 12, 02, 13, 00, 20, 09, 00, 21, 02, 0a, 0d, 02, 0a, 00, 0b, 1b, 01, 09, 00, 17, 11, 02, 05, 01, 02] +Raw bytes (92): 0x[01, 01, 0b, 01, 27, 05, 2b, 09, 0d, 03, 11, 03, 11, 22, 05, 03, 11, 22, 05, 03, 11, 05, 2b, 09, 0d, 0c, 01, 0d, 01, 01, 1b, 03, 02, 0b, 00, 18, 20, 22, 11, 00, 0b, 00, 18, 22, 01, 0c, 00, 1a, 20, 05, 1e, 00, 0c, 00, 1a, 05, 00, 1b, 02, 0a, 1e, 02, 13, 00, 20, 20, 09, 0d, 00, 13, 00, 20, 09, 00, 21, 02, 0a, 0d, 02, 0a, 00, 0b, 27, 01, 09, 00, 17, 11, 02, 05, 01, 02] Number of files: 1 - file 0 => global file 1 -Number of expressions: 8 -- expression 0 operands: lhs = Counter(0), rhs = Expression(6, Add) -- expression 1 operands: lhs = Counter(1), rhs = Expression(7, Add) +Number of expressions: 11 +- expression 0 operands: lhs = Counter(0), rhs = Expression(9, Add) +- expression 1 operands: lhs = Counter(1), rhs = Expression(10, Add) - expression 2 operands: lhs = Counter(2), rhs = Counter(3) - expression 3 operands: lhs = Expression(0, Add), rhs = Counter(4) -- expression 4 operands: lhs = Expression(5, Sub), rhs = Counter(1) -- expression 5 operands: lhs = Expression(0, Add), rhs = Counter(4) -- expression 6 operands: lhs = Counter(1), rhs = Expression(7, Add) -- expression 7 operands: lhs = Counter(2), rhs = Counter(3) -Number of file 0 mappings: 9 +- expression 4 operands: lhs = Expression(0, Add), rhs = Counter(4) +- expression 5 operands: lhs = Expression(8, Sub), rhs = Counter(1) +- expression 6 operands: lhs = Expression(0, Add), rhs = Counter(4) +- expression 7 operands: lhs = Expression(8, Sub), rhs = Counter(1) +- expression 8 operands: lhs = Expression(0, Add), rhs = Counter(4) +- expression 9 operands: lhs = Counter(1), rhs = Expression(10, Add) +- expression 10 operands: lhs = Counter(2), rhs = Counter(3) +Number of file 0 mappings: 12 - Code(Counter(0)) at (prev + 13, 1) to (start + 1, 27) - Code(Expression(0, Add)) at (prev + 2, 11) to (start + 0, 24) = (c0 + (c1 + (c2 + c3))) -- Code(Expression(5, Sub)) at (prev + 1, 12) to (start + 0, 26) +- Branch { true: Expression(8, Sub), false: Counter(4) } at (prev + 0, 11) to (start + 0, 24) + true = ((c0 + (c1 + (c2 + c3))) - c4) + false = c4 +- Code(Expression(8, Sub)) at (prev + 1, 12) to (start + 0, 26) = ((c0 + (c1 + (c2 + c3))) - c4) +- Branch { true: Counter(1), false: Expression(7, Sub) } at (prev + 0, 12) to (start + 0, 26) + true = c1 + false = (((c0 + (c1 + (c2 + c3))) - c4) - c1) - Code(Counter(1)) at (prev + 0, 27) to (start + 2, 10) -- Code(Expression(4, Sub)) at (prev + 2, 19) to (start + 0, 32) +- Code(Expression(7, Sub)) at (prev + 2, 19) to (start + 0, 32) = (((c0 + (c1 + (c2 + c3))) - c4) - c1) +- Branch { true: Counter(2), false: Counter(3) } at (prev + 0, 19) to (start + 0, 32) + true = c2 + false = c3 - Code(Counter(2)) at (prev + 0, 33) to (start + 2, 10) - Code(Counter(3)) at (prev + 2, 10) to (start + 0, 11) -- Code(Expression(6, Add)) at (prev + 1, 9) to (start + 0, 23) +- Code(Expression(9, Add)) at (prev + 1, 9) to (start + 0, 23) = (c1 + (c2 + c3)) - Code(Counter(4)) at (prev + 2, 5) to (start + 1, 2) Function name: panic_unwind::might_panic -Raw bytes (21): 0x[01, 01, 01, 01, 05, 03, 01, 04, 01, 01, 14, 05, 02, 09, 01, 19, 02, 02, 0c, 03, 02] +Raw bytes (28): 0x[01, 01, 01, 01, 05, 04, 01, 04, 01, 01, 14, 20, 05, 02, 01, 08, 00, 14, 05, 01, 09, 01, 19, 02, 02, 0c, 03, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 1 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) -Number of file 0 mappings: 3 +Number of file 0 mappings: 4 - Code(Counter(0)) at (prev + 4, 1) to (start + 1, 20) -- Code(Counter(1)) at (prev + 2, 9) to (start + 1, 25) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 1, 8) to (start + 0, 20) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 1, 9) to (start + 1, 25) - Code(Expression(0, Sub)) at (prev + 2, 12) to (start + 3, 2) = (c0 - c1) diff --git a/tests/coverage/panic_unwind.coverage b/tests/coverage/panic_unwind.coverage index 2b0777ef215dc..5db5504a09bf6 100644 --- a/tests/coverage/panic_unwind.coverage +++ b/tests/coverage/panic_unwind.coverage @@ -3,6 +3,9 @@ LL| | LL| 4|fn might_panic(should_panic: bool) { LL| 4| if should_panic { + ------------------ + | Branch (LL:8): [True: 1, False: 3] + ------------------ LL| 1| println!("panicking..."); LL| 1| panic!("panics"); LL| 3| } else { @@ -13,9 +16,18 @@ LL| 1|fn main() -> Result<(), u8> { LL| 1| let mut countdown = 10; LL| 11| while countdown > 0 { + ------------------ + | Branch (LL:11): [True: 11, False: 0] + ------------------ LL| 11| if countdown == 1 { + ------------------ + | Branch (LL:12): [True: 1, False: 10] + ------------------ LL| 1| might_panic(true); LL| 10| } else if countdown < 5 { + ------------------ + | Branch (LL:19): [True: 3, False: 6] + ------------------ LL| 3| might_panic(false); LL| 6| } LL| 10| countdown -= 1; diff --git a/tests/coverage/simple_loop.cov-map b/tests/coverage/simple_loop.cov-map index f1691ffc5e6a0..7df43154baa6b 100644 --- a/tests/coverage/simple_loop.cov-map +++ b/tests/coverage/simple_loop.cov-map @@ -1,27 +1,36 @@ Function name: simple_loop::main -Raw bytes (57): 0x[01, 01, 09, 01, 05, 23, 09, 05, 02, 1f, 09, 23, 09, 05, 02, 1f, 09, 23, 09, 05, 02, 07, 01, 03, 01, 09, 10, 05, 0a, 05, 05, 06, 02, 05, 06, 00, 07, 1f, 05, 0d, 02, 0e, 1a, 04, 0d, 00, 12, 09, 02, 0a, 03, 0a, 1a, 06, 01, 00, 02] +Raw bytes (77): 0x[01, 01, 0c, 01, 05, 2f, 09, 05, 02, 2b, 09, 2f, 09, 05, 02, 2b, 09, 2f, 09, 05, 02, 2b, 09, 2f, 09, 05, 02, 09, 01, 03, 01, 09, 10, 20, 05, 02, 09, 09, 00, 10, 05, 01, 05, 05, 06, 02, 05, 06, 00, 07, 2b, 05, 0d, 02, 0e, 20, 26, 09, 00, 0d, 02, 0e, 26, 04, 0d, 00, 12, 09, 02, 0a, 03, 0a, 26, 06, 01, 00, 02] Number of files: 1 - file 0 => global file 1 -Number of expressions: 9 +Number of expressions: 12 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) -- expression 1 operands: lhs = Expression(8, Add), rhs = Counter(2) +- expression 1 operands: lhs = Expression(11, Add), rhs = Counter(2) - expression 2 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 3 operands: lhs = Expression(7, Add), rhs = Counter(2) -- expression 4 operands: lhs = Expression(8, Add), rhs = Counter(2) +- expression 3 operands: lhs = Expression(10, Add), rhs = Counter(2) +- expression 4 operands: lhs = Expression(11, Add), rhs = Counter(2) - expression 5 operands: lhs = Counter(1), rhs = Expression(0, Sub) -- expression 6 operands: lhs = Expression(7, Add), rhs = Counter(2) -- expression 7 operands: lhs = Expression(8, Add), rhs = Counter(2) +- expression 6 operands: lhs = Expression(10, Add), rhs = Counter(2) +- expression 7 operands: lhs = Expression(11, Add), rhs = Counter(2) - expression 8 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 7 +- expression 9 operands: lhs = Expression(10, Add), rhs = Counter(2) +- expression 10 operands: lhs = Expression(11, Add), rhs = Counter(2) +- expression 11 operands: lhs = Counter(1), rhs = Expression(0, Sub) +Number of file 0 mappings: 9 - Code(Counter(0)) at (prev + 3, 1) to (start + 9, 16) -- Code(Counter(1)) at (prev + 10, 5) to (start + 5, 6) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 9, 9) to (start + 0, 16) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 1, 5) to (start + 5, 6) - Code(Expression(0, Sub)) at (prev + 5, 6) to (start + 0, 7) = (c0 - c1) -- Code(Expression(7, Add)) at (prev + 5, 13) to (start + 2, 14) +- Code(Expression(10, Add)) at (prev + 5, 13) to (start + 2, 14) = ((c1 + (c0 - c1)) + c2) -- Code(Expression(6, Sub)) at (prev + 4, 13) to (start + 0, 18) +- Branch { true: Expression(9, Sub), false: Counter(2) } at (prev + 0, 13) to (start + 2, 14) + true = (((c1 + (c0 - c1)) + c2) - c2) + false = c2 +- Code(Expression(9, Sub)) at (prev + 4, 13) to (start + 0, 18) = (((c1 + (c0 - c1)) + c2) - c2) - Code(Counter(2)) at (prev + 2, 10) to (start + 3, 10) -- Code(Expression(6, Sub)) at (prev + 6, 1) to (start + 0, 2) +- Code(Expression(9, Sub)) at (prev + 6, 1) to (start + 0, 2) = (((c1 + (c0 - c1)) + c2) - c2) diff --git a/tests/coverage/simple_loop.coverage b/tests/coverage/simple_loop.coverage index 691c6cd1e7dda..0e96fdbc4e43e 100644 --- a/tests/coverage/simple_loop.coverage +++ b/tests/coverage/simple_loop.coverage @@ -10,6 +10,9 @@ LL| 1| LL| 1| if LL| 1| is_true + ------------------ + | Branch (LL:9): [True: 1, False: 0] + ------------------ LL| 1| { LL| 1| countdown LL| 1| = @@ -22,6 +25,9 @@ LL| | { LL| | if LL| 11| countdown + ------------------ + | Branch (LL:13): [True: 1, False: 10] + ------------------ LL| 11| == LL| 11| 0 LL| | { diff --git a/tests/coverage/simple_match.cov-map b/tests/coverage/simple_match.cov-map index 4a32745d29293..dfc0d3d38fd35 100644 --- a/tests/coverage/simple_match.cov-map +++ b/tests/coverage/simple_match.cov-map @@ -1,32 +1,43 @@ Function name: simple_match::main -Raw bytes (78): 0x[01, 01, 0c, 01, 05, 2b, 2f, 05, 02, 09, 0d, 27, 11, 2b, 2f, 05, 02, 09, 0d, 27, 11, 2b, 2f, 05, 02, 09, 0d, 0a, 01, 03, 01, 07, 0f, 05, 07, 10, 02, 06, 02, 02, 06, 00, 07, 27, 05, 09, 00, 0d, 22, 05, 0d, 00, 16, 09, 02, 0d, 00, 0e, 22, 02, 11, 02, 12, 09, 04, 0d, 07, 0e, 0d, 0a, 0d, 00, 0f, 11, 03, 01, 00, 02] +Raw bytes (102): 0x[01, 01, 11, 01, 05, 3f, 43, 05, 02, 09, 0d, 3b, 11, 3f, 43, 05, 02, 09, 0d, 3b, 11, 3f, 43, 05, 02, 09, 0d, 36, 09, 3b, 11, 3f, 43, 05, 02, 09, 0d, 0c, 01, 03, 01, 07, 0f, 20, 05, 02, 07, 08, 00, 0f, 05, 00, 10, 02, 06, 02, 02, 06, 00, 07, 3b, 05, 09, 00, 0d, 36, 05, 0d, 00, 16, 09, 02, 0d, 00, 0e, 36, 02, 11, 02, 12, 20, 09, 32, 00, 11, 02, 12, 09, 04, 0d, 07, 0e, 0d, 0a, 0d, 00, 0f, 11, 03, 01, 00, 02] Number of files: 1 - file 0 => global file 1 -Number of expressions: 12 +Number of expressions: 17 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) -- expression 1 operands: lhs = Expression(10, Add), rhs = Expression(11, Add) +- expression 1 operands: lhs = Expression(15, Add), rhs = Expression(16, Add) - expression 2 operands: lhs = Counter(1), rhs = Expression(0, Sub) - expression 3 operands: lhs = Counter(2), rhs = Counter(3) -- expression 4 operands: lhs = Expression(9, Add), rhs = Counter(4) -- expression 5 operands: lhs = Expression(10, Add), rhs = Expression(11, Add) +- expression 4 operands: lhs = Expression(14, Add), rhs = Counter(4) +- expression 5 operands: lhs = Expression(15, Add), rhs = Expression(16, Add) - expression 6 operands: lhs = Counter(1), rhs = Expression(0, Sub) - expression 7 operands: lhs = Counter(2), rhs = Counter(3) -- expression 8 operands: lhs = Expression(9, Add), rhs = Counter(4) -- expression 9 operands: lhs = Expression(10, Add), rhs = Expression(11, Add) +- expression 8 operands: lhs = Expression(14, Add), rhs = Counter(4) +- expression 9 operands: lhs = Expression(15, Add), rhs = Expression(16, Add) - expression 10 operands: lhs = Counter(1), rhs = Expression(0, Sub) - expression 11 operands: lhs = Counter(2), rhs = Counter(3) -Number of file 0 mappings: 10 +- expression 12 operands: lhs = Expression(13, Sub), rhs = Counter(2) +- expression 13 operands: lhs = Expression(14, Add), rhs = Counter(4) +- expression 14 operands: lhs = Expression(15, Add), rhs = Expression(16, Add) +- expression 15 operands: lhs = Counter(1), rhs = Expression(0, Sub) +- expression 16 operands: lhs = Counter(2), rhs = Counter(3) +Number of file 0 mappings: 12 - Code(Counter(0)) at (prev + 3, 1) to (start + 7, 15) -- Code(Counter(1)) at (prev + 7, 16) to (start + 2, 6) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 7, 8) to (start + 0, 15) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 16) to (start + 2, 6) - Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7) = (c0 - c1) -- Code(Expression(9, Add)) at (prev + 5, 9) to (start + 0, 13) +- Code(Expression(14, Add)) at (prev + 5, 9) to (start + 0, 13) = ((c1 + (c0 - c1)) + (c2 + c3)) -- Code(Expression(8, Sub)) at (prev + 5, 13) to (start + 0, 22) +- Code(Expression(13, Sub)) at (prev + 5, 13) to (start + 0, 22) = (((c1 + (c0 - c1)) + (c2 + c3)) - c4) - Code(Counter(2)) at (prev + 2, 13) to (start + 0, 14) -- Code(Expression(8, Sub)) at (prev + 2, 17) to (start + 2, 18) +- Code(Expression(13, Sub)) at (prev + 2, 17) to (start + 2, 18) = (((c1 + (c0 - c1)) + (c2 + c3)) - c4) +- Branch { true: Counter(2), false: Expression(12, Sub) } at (prev + 0, 17) to (start + 2, 18) + true = c2 + false = ((((c1 + (c0 - c1)) + (c2 + c3)) - c4) - c2) - Code(Counter(2)) at (prev + 4, 13) to (start + 7, 14) - Code(Counter(3)) at (prev + 10, 13) to (start + 0, 15) - Code(Counter(4)) at (prev + 3, 1) to (start + 0, 2) diff --git a/tests/coverage/simple_match.coverage b/tests/coverage/simple_match.coverage index 7f5dd3bb64630..a9834d89f2869 100644 --- a/tests/coverage/simple_match.coverage +++ b/tests/coverage/simple_match.coverage @@ -8,6 +8,9 @@ LL| 1| LL| 1| let mut countdown = 1; LL| 1| if is_true { + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| 1| countdown = 0; LL| 1| } ^0 @@ -25,6 +28,9 @@ LL| 1| x LL| | if LL| 2| x + ------------------ + | Branch (LL:17): [True: 1, False: 1] + ------------------ LL| 2| < LL| 2| 1 LL| | => diff --git a/tests/coverage/sort_groups.cov-map b/tests/coverage/sort_groups.cov-map index 3cbda6fbe1ab8..a8f16f8e8d437 100644 --- a/tests/coverage/sort_groups.cov-map +++ b/tests/coverage/sort_groups.cov-map @@ -1,73 +1,88 @@ Function name: sort_groups::generic_fn::<&str> -Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 11, 01, 01, 0c, 05, 01, 0d, 02, 06, 02, 02, 06, 00, 07, 07, 01, 01, 00, 02] +Raw bytes (35): 0x[01, 01, 02, 01, 05, 05, 02, 05, 01, 11, 01, 01, 0c, 20, 05, 02, 01, 08, 00, 0c, 05, 00, 0d, 02, 06, 02, 02, 06, 00, 07, 07, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 17, 1) to (start + 1, 12) -- Code(Counter(1)) at (prev + 1, 13) to (start + 2, 6) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 1, 8) to (start + 0, 12) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 13) to (start + 2, 6) - Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7) = (c0 - c1) - Code(Expression(1, Add)) at (prev + 1, 1) to (start + 0, 2) = (c1 + (c0 - c1)) Function name: sort_groups::generic_fn::<()> -Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 11, 01, 01, 0c, 05, 01, 0d, 02, 06, 02, 02, 06, 00, 07, 07, 01, 01, 00, 02] +Raw bytes (35): 0x[01, 01, 02, 01, 05, 05, 02, 05, 01, 11, 01, 01, 0c, 20, 05, 02, 01, 08, 00, 0c, 05, 00, 0d, 02, 06, 02, 02, 06, 00, 07, 07, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 17, 1) to (start + 1, 12) -- Code(Counter(1)) at (prev + 1, 13) to (start + 2, 6) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 1, 8) to (start + 0, 12) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 13) to (start + 2, 6) - Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7) = (c0 - c1) - Code(Expression(1, Add)) at (prev + 1, 1) to (start + 0, 2) = (c1 + (c0 - c1)) Function name: sort_groups::generic_fn:: -Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 11, 01, 01, 0c, 05, 01, 0d, 02, 06, 02, 02, 06, 00, 07, 07, 01, 01, 00, 02] +Raw bytes (35): 0x[01, 01, 02, 01, 05, 05, 02, 05, 01, 11, 01, 01, 0c, 20, 05, 02, 01, 08, 00, 0c, 05, 00, 0d, 02, 06, 02, 02, 06, 00, 07, 07, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 17, 1) to (start + 1, 12) -- Code(Counter(1)) at (prev + 1, 13) to (start + 2, 6) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 1, 8) to (start + 0, 12) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 13) to (start + 2, 6) - Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7) = (c0 - c1) - Code(Expression(1, Add)) at (prev + 1, 1) to (start + 0, 2) = (c1 + (c0 - c1)) Function name: sort_groups::generic_fn:: -Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 11, 01, 01, 0c, 05, 01, 0d, 02, 06, 02, 02, 06, 00, 07, 07, 01, 01, 00, 02] +Raw bytes (35): 0x[01, 01, 02, 01, 05, 05, 02, 05, 01, 11, 01, 01, 0c, 20, 05, 02, 01, 08, 00, 0c, 05, 00, 0d, 02, 06, 02, 02, 06, 00, 07, 07, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 17, 1) to (start + 1, 12) -- Code(Counter(1)) at (prev + 1, 13) to (start + 2, 6) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 1, 8) to (start + 0, 12) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 13) to (start + 2, 6) - Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7) = (c0 - c1) - Code(Expression(1, Add)) at (prev + 1, 1) to (start + 0, 2) = (c1 + (c0 - c1)) Function name: sort_groups::main -Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 06, 01, 04, 23, 05, 04, 24, 02, 06, 02, 02, 06, 00, 07, 07, 01, 05, 02, 02] +Raw bytes (35): 0x[01, 01, 02, 01, 05, 05, 02, 05, 01, 06, 01, 04, 23, 20, 05, 02, 04, 08, 00, 23, 05, 00, 24, 02, 06, 02, 02, 06, 00, 07, 07, 01, 05, 02, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 6, 1) to (start + 4, 35) -- Code(Counter(1)) at (prev + 4, 36) to (start + 2, 6) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 4, 8) to (start + 0, 35) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 36) to (start + 2, 6) - Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7) = (c0 - c1) - Code(Expression(1, Add)) at (prev + 1, 5) to (start + 2, 2) diff --git a/tests/coverage/sort_groups.coverage b/tests/coverage/sort_groups.coverage index c70d7b3b28253..39e185c80de89 100644 --- a/tests/coverage/sort_groups.coverage +++ b/tests/coverage/sort_groups.coverage @@ -8,6 +8,9 @@ LL| 1| generic_fn::<()>(cond); LL| 1| generic_fn::<&'static str>(!cond); LL| 1| if std::hint::black_box(false) { + ------------------ + | Branch (LL:8): [True: 0, False: 1] + ------------------ LL| 0| generic_fn::(cond); LL| 1| } LL| 1| generic_fn::(cond); @@ -16,6 +19,12 @@ LL| | LL| 3|fn generic_fn(cond: bool) { LL| 3| if cond { + ------------------ + | Branch (LL:8): [True: 1, False: 0] + | Branch (LL:8): [True: 0, False: 0] + | Branch (LL:8): [True: 0, False: 1] + | Branch (LL:8): [True: 0, False: 1] + ------------------ LL| 1| println!("{}", std::any::type_name::()); LL| 2| } LL| 3|} @@ -25,6 +34,9 @@ | sort_groups::generic_fn::<&str>: | LL| 1|fn generic_fn(cond: bool) { | LL| 1| if cond { + | ------------------ + | | Branch (LL:8): [True: 1, False: 0] + | ------------------ | LL| 1| println!("{}", std::any::type_name::()); | LL| 1| } | ^0 @@ -33,6 +45,9 @@ | sort_groups::generic_fn::<()>: | LL| 1|fn generic_fn(cond: bool) { | LL| 1| if cond { + | ------------------ + | | Branch (LL:8): [True: 0, False: 1] + | ------------------ | LL| 0| println!("{}", std::any::type_name::()); | LL| 1| } | LL| 1|} @@ -40,6 +55,9 @@ | sort_groups::generic_fn::: | LL| 1|fn generic_fn(cond: bool) { | LL| 1| if cond { + | ------------------ + | | Branch (LL:8): [True: 0, False: 1] + | ------------------ | LL| 0| println!("{}", std::any::type_name::()); | LL| 1| } | LL| 1|} diff --git a/tests/coverage/tight_inf_loop.cov-map b/tests/coverage/tight_inf_loop.cov-map index 7fe3146b0809a..892b7a3200f21 100644 --- a/tests/coverage/tight_inf_loop.cov-map +++ b/tests/coverage/tight_inf_loop.cov-map @@ -1,12 +1,15 @@ Function name: tight_inf_loop::main -Raw bytes (21): 0x[01, 01, 01, 01, 00, 03, 01, 01, 01, 01, 0d, 00, 02, 09, 00, 10, 02, 01, 06, 01, 02] +Raw bytes (28): 0x[01, 01, 01, 01, 00, 04, 01, 01, 01, 01, 0d, 20, 00, 02, 01, 08, 00, 0d, 00, 01, 09, 00, 10, 02, 01, 06, 01, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 1 - expression 0 operands: lhs = Counter(0), rhs = Zero -Number of file 0 mappings: 3 +Number of file 0 mappings: 4 - Code(Counter(0)) at (prev + 1, 1) to (start + 1, 13) -- Code(Zero) at (prev + 2, 9) to (start + 0, 16) +- Branch { true: Zero, false: Expression(0, Sub) } at (prev + 1, 8) to (start + 0, 13) + true = Zero + false = (c0 - Zero) +- Code(Zero) at (prev + 1, 9) to (start + 0, 16) - Code(Expression(0, Sub)) at (prev + 1, 6) to (start + 1, 2) = (c0 - Zero) diff --git a/tests/coverage/tight_inf_loop.coverage b/tests/coverage/tight_inf_loop.coverage index c15c76b3aba28..e957ba2c090c0 100644 --- a/tests/coverage/tight_inf_loop.coverage +++ b/tests/coverage/tight_inf_loop.coverage @@ -1,5 +1,8 @@ LL| 1|fn main() { LL| 1| if false { + ------------------ + | Branch (LL:8): [True: 0, False: 1] + ------------------ LL| 0| loop {} LL| 1| } LL| 1|} diff --git a/tests/coverage/try_error_result.cov-map b/tests/coverage/try_error_result.cov-map index a9a18a180dddf..90ae48e338bb2 100644 --- a/tests/coverage/try_error_result.cov-map +++ b/tests/coverage/try_error_result.cov-map @@ -1,43 +1,52 @@ Function name: ::get_thing_2 -Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 28, 05, 01, 18, 05, 02, 0d, 00, 14, 02, 02, 0d, 00, 1a, 07, 02, 05, 00, 06] +Raw bytes (35): 0x[01, 01, 02, 01, 05, 05, 02, 05, 01, 28, 05, 01, 18, 20, 05, 02, 01, 0c, 00, 18, 05, 01, 0d, 00, 14, 02, 02, 0d, 00, 1a, 07, 02, 05, 00, 06] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 40, 5) to (start + 1, 24) -- Code(Counter(1)) at (prev + 2, 13) to (start + 0, 20) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 1, 12) to (start + 0, 24) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 1, 13) to (start + 0, 20) - Code(Expression(0, Sub)) at (prev + 2, 13) to (start + 0, 26) = (c0 - c1) - Code(Expression(1, Add)) at (prev + 2, 5) to (start + 0, 6) = (c1 + (c0 - c1)) Function name: ::call -Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 33, 05, 01, 18, 05, 02, 0d, 00, 14, 02, 02, 0d, 00, 13, 07, 02, 05, 00, 06] +Raw bytes (35): 0x[01, 01, 02, 01, 05, 05, 02, 05, 01, 33, 05, 01, 18, 20, 05, 02, 01, 0c, 00, 18, 05, 01, 0d, 00, 14, 02, 02, 0d, 00, 13, 07, 02, 05, 00, 06] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 51, 5) to (start + 1, 24) -- Code(Counter(1)) at (prev + 2, 13) to (start + 0, 20) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 1, 12) to (start + 0, 24) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 1, 13) to (start + 0, 20) - Code(Expression(0, Sub)) at (prev + 2, 13) to (start + 0, 19) = (c0 - c1) - Code(Expression(1, Add)) at (prev + 2, 5) to (start + 0, 6) = (c1 + (c0 - c1)) Function name: try_error_result::call -Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 04, 01, 01, 14, 05, 02, 09, 00, 10, 02, 02, 09, 00, 0f, 07, 02, 01, 00, 02] +Raw bytes (35): 0x[01, 01, 02, 01, 05, 05, 02, 05, 01, 04, 01, 01, 14, 20, 05, 02, 01, 08, 00, 14, 05, 01, 09, 00, 10, 02, 02, 09, 00, 0f, 07, 02, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 4, 1) to (start + 1, 20) -- Code(Counter(1)) at (prev + 2, 9) to (start + 0, 16) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 1, 8) to (start + 0, 20) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 1, 9) to (start + 0, 16) - Code(Expression(0, Sub)) at (prev + 2, 9) to (start + 0, 15) = (c0 - c1) - Code(Expression(1, Add)) at (prev + 2, 1) to (start + 0, 2) @@ -59,162 +68,206 @@ Number of file 0 mappings: 4 = (c1 + (c0 - c1)) Function name: try_error_result::test1 -Raw bytes (77): 0x[01, 01, 09, 01, 07, 05, 09, 03, 0d, 1d, 11, 16, 1d, 03, 0d, 1f, 0d, 23, 19, 11, 15, 0b, 01, 0c, 01, 02, 17, 03, 07, 09, 00, 0e, 16, 02, 09, 04, 1a, 1d, 06, 0d, 00, 29, 11, 00, 29, 00, 2a, 0e, 01, 0d, 00, 2a, 15, 00, 2a, 00, 2b, 12, 04, 0d, 00, 2a, 19, 00, 2a, 00, 2b, 0d, 03, 05, 00, 0b, 1b, 01, 01, 00, 02] +Raw bytes (88): 0x[01, 01, 0b, 01, 07, 05, 09, 03, 0d, 1e, 1d, 03, 0d, 1d, 11, 1e, 1d, 03, 0d, 27, 0d, 2b, 19, 11, 15, 0c, 01, 0c, 01, 02, 17, 03, 07, 09, 00, 0e, 1e, 02, 09, 04, 1a, 20, 1d, 1a, 04, 0d, 00, 1a, 1d, 02, 0d, 00, 29, 11, 00, 29, 00, 2a, 16, 01, 0d, 00, 2a, 15, 00, 2a, 00, 2b, 1a, 04, 0d, 00, 2a, 19, 00, 2a, 00, 2b, 0d, 03, 05, 00, 0b, 23, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 -Number of expressions: 9 +Number of expressions: 11 - expression 0 operands: lhs = Counter(0), rhs = Expression(1, Add) - expression 1 operands: lhs = Counter(1), rhs = Counter(2) - expression 2 operands: lhs = Expression(0, Add), rhs = Counter(3) -- expression 3 operands: lhs = Counter(7), rhs = Counter(4) -- expression 4 operands: lhs = Expression(5, Sub), rhs = Counter(7) -- expression 5 operands: lhs = Expression(0, Add), rhs = Counter(3) -- expression 6 operands: lhs = Expression(7, Add), rhs = Counter(3) -- expression 7 operands: lhs = Expression(8, Add), rhs = Counter(6) -- expression 8 operands: lhs = Counter(4), rhs = Counter(5) -Number of file 0 mappings: 11 +- expression 3 operands: lhs = Expression(7, Sub), rhs = Counter(7) +- expression 4 operands: lhs = Expression(0, Add), rhs = Counter(3) +- expression 5 operands: lhs = Counter(7), rhs = Counter(4) +- expression 6 operands: lhs = Expression(7, Sub), rhs = Counter(7) +- expression 7 operands: lhs = Expression(0, Add), rhs = Counter(3) +- expression 8 operands: lhs = Expression(9, Add), rhs = Counter(3) +- expression 9 operands: lhs = Expression(10, Add), rhs = Counter(6) +- expression 10 operands: lhs = Counter(4), rhs = Counter(5) +Number of file 0 mappings: 12 - Code(Counter(0)) at (prev + 12, 1) to (start + 2, 23) - Code(Expression(0, Add)) at (prev + 7, 9) to (start + 0, 14) = (c0 + (c1 + c2)) -- Code(Expression(5, Sub)) at (prev + 2, 9) to (start + 4, 26) +- Code(Expression(7, Sub)) at (prev + 2, 9) to (start + 4, 26) = ((c0 + (c1 + c2)) - c3) -- Code(Counter(7)) at (prev + 6, 13) to (start + 0, 41) +- Branch { true: Counter(7), false: Expression(6, Sub) } at (prev + 4, 13) to (start + 0, 26) + true = c7 + false = (((c0 + (c1 + c2)) - c3) - c7) +- Code(Counter(7)) at (prev + 2, 13) to (start + 0, 41) - Code(Counter(4)) at (prev + 0, 41) to (start + 0, 42) -- Code(Expression(3, Sub)) at (prev + 1, 13) to (start + 0, 42) +- Code(Expression(5, Sub)) at (prev + 1, 13) to (start + 0, 42) = (c7 - c4) - Code(Counter(5)) at (prev + 0, 42) to (start + 0, 43) -- Code(Expression(4, Sub)) at (prev + 4, 13) to (start + 0, 42) +- Code(Expression(6, Sub)) at (prev + 4, 13) to (start + 0, 42) = (((c0 + (c1 + c2)) - c3) - c7) - Code(Counter(6)) at (prev + 0, 42) to (start + 0, 43) - Code(Counter(3)) at (prev + 3, 5) to (start + 0, 11) -- Code(Expression(6, Add)) at (prev + 1, 1) to (start + 0, 2) +- Code(Expression(8, Add)) at (prev + 1, 1) to (start + 0, 2) = (((c4 + c5) + c6) + c3) Function name: try_error_result::test2 -Raw bytes (358): 0x[01, 01, 3b, 01, 07, 05, 09, 03, 0d, 41, 11, 4a, 15, 41, 11, 42, 1d, 46, 19, 4a, 15, 41, 11, 4a, 15, 41, 11, 46, 19, 4a, 15, 41, 11, 42, 1d, 46, 19, 4a, 15, 41, 11, 5e, 25, 49, 21, 49, 21, 5e, 25, 49, 21, 8a, 01, 2d, 8e, 01, 29, 92, 01, 41, 03, 0d, 92, 01, 41, 03, 0d, 8e, 01, 29, 92, 01, 41, 03, 0d, 8a, 01, 2d, 8e, 01, 29, 92, 01, 41, 03, 0d, a6, 01, 35, 45, 31, 45, 31, a6, 01, 35, 45, 31, ba, 01, 3d, 4d, 39, 4d, 39, ba, 01, 3d, 4d, 39, c3, 01, 0d, c7, 01, db, 01, cb, 01, cf, 01, 11, 15, d3, 01, d7, 01, 19, 1d, 21, 25, df, 01, e3, 01, 29, 2d, e7, 01, eb, 01, 31, 35, 39, 3d, 28, 01, 3c, 01, 03, 17, 03, 08, 09, 00, 0e, 92, 01, 02, 09, 04, 1a, 41, 06, 0d, 00, 2f, 11, 00, 2f, 00, 30, 4a, 00, 31, 03, 35, 15, 04, 11, 00, 12, 46, 02, 11, 04, 12, 3e, 05, 11, 00, 14, 46, 00, 17, 00, 41, 19, 00, 41, 00, 42, 42, 00, 43, 00, 5f, 1d, 00, 5f, 00, 60, 3e, 01, 0d, 00, 20, 5a, 01, 11, 00, 14, 49, 00, 17, 00, 41, 21, 00, 41, 00, 42, 5e, 00, 43, 00, 60, 25, 00, 60, 00, 61, 5a, 01, 0d, 00, 20, 86, 01, 04, 11, 00, 14, 8e, 01, 00, 17, 00, 42, 29, 00, 42, 00, 43, 8a, 01, 00, 44, 00, 61, 2d, 00, 61, 00, 62, 86, 01, 01, 0d, 00, 20, a2, 01, 01, 11, 00, 14, 45, 00, 17, 01, 36, 31, 01, 36, 00, 37, a6, 01, 01, 12, 00, 2f, 35, 00, 2f, 00, 30, a2, 01, 01, 0d, 00, 20, b6, 01, 01, 11, 00, 14, 4d, 00, 17, 01, 36, 39, 02, 11, 00, 12, ba, 01, 01, 12, 00, 2f, 3d, 01, 11, 00, 12, b6, 01, 02, 0d, 00, 20, 0d, 03, 05, 00, 0b, bf, 01, 01, 01, 00, 02] +Raw bytes (462): 0x[01, 01, 50, 01, 07, 05, 09, 03, 0d, ce, 01, 41, 03, 0d, 41, 11, 66, 15, 41, 11, 5e, 1d, 62, 19, 66, 15, 41, 11, 66, 15, 41, 11, 62, 19, 66, 15, 41, 11, 5e, 1d, 62, 19, 66, 15, 41, 11, 5a, 49, 5e, 1d, 62, 19, 66, 15, 41, 11, 86, 01, 25, 49, 21, 49, 21, 86, 01, 25, 49, 21, 82, 01, 05, 86, 01, 25, 49, 21, c6, 01, 2d, ca, 01, 29, ce, 01, 41, 03, 0d, ce, 01, 41, 03, 0d, ca, 01, 29, ce, 01, 41, 03, 0d, c6, 01, 2d, ca, 01, 29, ce, 01, 41, 03, 0d, c2, 01, 45, c6, 01, 2d, ca, 01, 29, ce, 01, 41, 03, 0d, ee, 01, 35, 45, 31, 45, 31, ee, 01, 35, 45, 31, ea, 01, 4d, ee, 01, 35, 45, 31, 8e, 02, 3d, 4d, 39, 4d, 39, 8e, 02, 3d, 4d, 39, 8a, 02, 09, 8e, 02, 3d, 4d, 39, 97, 02, 0d, 9b, 02, af, 02, 9f, 02, a3, 02, 11, 15, a7, 02, ab, 02, 19, 1d, 21, 25, b3, 02, b7, 02, 29, 2d, bb, 02, bf, 02, 31, 35, 39, 3d, 2e, 01, 3c, 01, 03, 17, 03, 08, 09, 00, 0e, ce, 01, 02, 09, 04, 1a, 20, 41, ca, 01, 04, 0d, 00, 1a, 41, 02, 0d, 00, 2f, 11, 00, 2f, 00, 30, 66, 00, 31, 03, 35, 15, 04, 11, 00, 12, 62, 02, 11, 04, 12, 5a, 05, 11, 00, 14, 62, 00, 17, 00, 41, 19, 00, 41, 00, 42, 5e, 00, 43, 00, 5f, 1d, 00, 5f, 00, 60, 5a, 01, 0d, 00, 20, 20, 49, 56, 00, 0d, 00, 20, 82, 01, 01, 11, 00, 14, 49, 00, 17, 00, 41, 21, 00, 41, 00, 42, 86, 01, 00, 43, 00, 60, 25, 00, 60, 00, 61, 82, 01, 01, 0d, 00, 20, 20, 05, 7e, 00, 0d, 00, 20, c2, 01, 04, 11, 00, 14, ca, 01, 00, 17, 00, 42, 29, 00, 42, 00, 43, c6, 01, 00, 44, 00, 61, 2d, 00, 61, 00, 62, c2, 01, 01, 0d, 00, 20, 20, 45, be, 01, 00, 0d, 00, 20, ea, 01, 01, 11, 00, 14, 45, 00, 17, 01, 36, 31, 01, 36, 00, 37, ee, 01, 01, 12, 00, 2f, 35, 00, 2f, 00, 30, ea, 01, 01, 0d, 00, 20, 20, 4d, e6, 01, 00, 0d, 00, 20, 8a, 02, 01, 11, 00, 14, 4d, 00, 17, 01, 36, 39, 02, 11, 00, 12, 8e, 02, 01, 12, 00, 2f, 3d, 01, 11, 00, 12, 8a, 02, 02, 0d, 00, 20, 20, 09, 86, 02, 00, 0d, 00, 20, 0d, 03, 05, 00, 0b, 93, 02, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 -Number of expressions: 59 +Number of expressions: 80 - expression 0 operands: lhs = Counter(0), rhs = Expression(1, Add) - expression 1 operands: lhs = Counter(1), rhs = Counter(2) - expression 2 operands: lhs = Expression(0, Add), rhs = Counter(3) -- expression 3 operands: lhs = Counter(16), rhs = Counter(4) -- expression 4 operands: lhs = Expression(18, Sub), rhs = Counter(5) +- expression 3 operands: lhs = Expression(51, Sub), rhs = Counter(16) +- expression 4 operands: lhs = Expression(0, Add), rhs = Counter(3) - expression 5 operands: lhs = Counter(16), rhs = Counter(4) -- expression 6 operands: lhs = Expression(16, Sub), rhs = Counter(7) -- expression 7 operands: lhs = Expression(17, Sub), rhs = Counter(6) -- expression 8 operands: lhs = Expression(18, Sub), rhs = Counter(5) -- expression 9 operands: lhs = Counter(16), rhs = Counter(4) -- expression 10 operands: lhs = Expression(18, Sub), rhs = Counter(5) +- expression 6 operands: lhs = Expression(25, Sub), rhs = Counter(5) +- expression 7 operands: lhs = Counter(16), rhs = Counter(4) +- expression 8 operands: lhs = Expression(23, Sub), rhs = Counter(7) +- expression 9 operands: lhs = Expression(24, Sub), rhs = Counter(6) +- expression 10 operands: lhs = Expression(25, Sub), rhs = Counter(5) - expression 11 operands: lhs = Counter(16), rhs = Counter(4) -- expression 12 operands: lhs = Expression(17, Sub), rhs = Counter(6) -- expression 13 operands: lhs = Expression(18, Sub), rhs = Counter(5) -- expression 14 operands: lhs = Counter(16), rhs = Counter(4) -- expression 15 operands: lhs = Expression(16, Sub), rhs = Counter(7) -- expression 16 operands: lhs = Expression(17, Sub), rhs = Counter(6) -- expression 17 operands: lhs = Expression(18, Sub), rhs = Counter(5) -- expression 18 operands: lhs = Counter(16), rhs = Counter(4) -- expression 19 operands: lhs = Expression(23, Sub), rhs = Counter(9) -- expression 20 operands: lhs = Counter(18), rhs = Counter(8) -- expression 21 operands: lhs = Counter(18), rhs = Counter(8) -- expression 22 operands: lhs = Expression(23, Sub), rhs = Counter(9) -- expression 23 operands: lhs = Counter(18), rhs = Counter(8) -- expression 24 operands: lhs = Expression(34, Sub), rhs = Counter(11) -- expression 25 operands: lhs = Expression(35, Sub), rhs = Counter(10) -- expression 26 operands: lhs = Expression(36, Sub), rhs = Counter(16) -- expression 27 operands: lhs = Expression(0, Add), rhs = Counter(3) -- expression 28 operands: lhs = Expression(36, Sub), rhs = Counter(16) -- expression 29 operands: lhs = Expression(0, Add), rhs = Counter(3) -- expression 30 operands: lhs = Expression(35, Sub), rhs = Counter(10) -- expression 31 operands: lhs = Expression(36, Sub), rhs = Counter(16) -- expression 32 operands: lhs = Expression(0, Add), rhs = Counter(3) -- expression 33 operands: lhs = Expression(34, Sub), rhs = Counter(11) -- expression 34 operands: lhs = Expression(35, Sub), rhs = Counter(10) -- expression 35 operands: lhs = Expression(36, Sub), rhs = Counter(16) -- expression 36 operands: lhs = Expression(0, Add), rhs = Counter(3) -- expression 37 operands: lhs = Expression(41, Sub), rhs = Counter(13) -- expression 38 operands: lhs = Counter(17), rhs = Counter(12) -- expression 39 operands: lhs = Counter(17), rhs = Counter(12) -- expression 40 operands: lhs = Expression(41, Sub), rhs = Counter(13) -- expression 41 operands: lhs = Counter(17), rhs = Counter(12) -- expression 42 operands: lhs = Expression(46, Sub), rhs = Counter(15) -- expression 43 operands: lhs = Counter(19), rhs = Counter(14) -- expression 44 operands: lhs = Counter(19), rhs = Counter(14) -- expression 45 operands: lhs = Expression(46, Sub), rhs = Counter(15) -- expression 46 operands: lhs = Counter(19), rhs = Counter(14) -- expression 47 operands: lhs = Expression(48, Add), rhs = Counter(3) -- expression 48 operands: lhs = Expression(49, Add), rhs = Expression(54, Add) -- expression 49 operands: lhs = Expression(50, Add), rhs = Expression(51, Add) -- expression 50 operands: lhs = Counter(4), rhs = Counter(5) -- expression 51 operands: lhs = Expression(52, Add), rhs = Expression(53, Add) -- expression 52 operands: lhs = Counter(6), rhs = Counter(7) -- expression 53 operands: lhs = Counter(8), rhs = Counter(9) -- expression 54 operands: lhs = Expression(55, Add), rhs = Expression(56, Add) -- expression 55 operands: lhs = Counter(10), rhs = Counter(11) -- expression 56 operands: lhs = Expression(57, Add), rhs = Expression(58, Add) -- expression 57 operands: lhs = Counter(12), rhs = Counter(13) -- expression 58 operands: lhs = Counter(14), rhs = Counter(15) -Number of file 0 mappings: 40 +- expression 12 operands: lhs = Expression(25, Sub), rhs = Counter(5) +- expression 13 operands: lhs = Counter(16), rhs = Counter(4) +- expression 14 operands: lhs = Expression(24, Sub), rhs = Counter(6) +- expression 15 operands: lhs = Expression(25, Sub), rhs = Counter(5) +- expression 16 operands: lhs = Counter(16), rhs = Counter(4) +- expression 17 operands: lhs = Expression(23, Sub), rhs = Counter(7) +- expression 18 operands: lhs = Expression(24, Sub), rhs = Counter(6) +- expression 19 operands: lhs = Expression(25, Sub), rhs = Counter(5) +- expression 20 operands: lhs = Counter(16), rhs = Counter(4) +- expression 21 operands: lhs = Expression(22, Sub), rhs = Counter(18) +- expression 22 operands: lhs = Expression(23, Sub), rhs = Counter(7) +- expression 23 operands: lhs = Expression(24, Sub), rhs = Counter(6) +- expression 24 operands: lhs = Expression(25, Sub), rhs = Counter(5) +- expression 25 operands: lhs = Counter(16), rhs = Counter(4) +- expression 26 operands: lhs = Expression(33, Sub), rhs = Counter(9) +- expression 27 operands: lhs = Counter(18), rhs = Counter(8) +- expression 28 operands: lhs = Counter(18), rhs = Counter(8) +- expression 29 operands: lhs = Expression(33, Sub), rhs = Counter(9) +- expression 30 operands: lhs = Counter(18), rhs = Counter(8) +- expression 31 operands: lhs = Expression(32, Sub), rhs = Counter(1) +- expression 32 operands: lhs = Expression(33, Sub), rhs = Counter(9) +- expression 33 operands: lhs = Counter(18), rhs = Counter(8) +- expression 34 operands: lhs = Expression(49, Sub), rhs = Counter(11) +- expression 35 operands: lhs = Expression(50, Sub), rhs = Counter(10) +- expression 36 operands: lhs = Expression(51, Sub), rhs = Counter(16) +- expression 37 operands: lhs = Expression(0, Add), rhs = Counter(3) +- expression 38 operands: lhs = Expression(51, Sub), rhs = Counter(16) +- expression 39 operands: lhs = Expression(0, Add), rhs = Counter(3) +- expression 40 operands: lhs = Expression(50, Sub), rhs = Counter(10) +- expression 41 operands: lhs = Expression(51, Sub), rhs = Counter(16) +- expression 42 operands: lhs = Expression(0, Add), rhs = Counter(3) +- expression 43 operands: lhs = Expression(49, Sub), rhs = Counter(11) +- expression 44 operands: lhs = Expression(50, Sub), rhs = Counter(10) +- expression 45 operands: lhs = Expression(51, Sub), rhs = Counter(16) +- expression 46 operands: lhs = Expression(0, Add), rhs = Counter(3) +- expression 47 operands: lhs = Expression(48, Sub), rhs = Counter(17) +- expression 48 operands: lhs = Expression(49, Sub), rhs = Counter(11) +- expression 49 operands: lhs = Expression(50, Sub), rhs = Counter(10) +- expression 50 operands: lhs = Expression(51, Sub), rhs = Counter(16) +- expression 51 operands: lhs = Expression(0, Add), rhs = Counter(3) +- expression 52 operands: lhs = Expression(59, Sub), rhs = Counter(13) +- expression 53 operands: lhs = Counter(17), rhs = Counter(12) +- expression 54 operands: lhs = Counter(17), rhs = Counter(12) +- expression 55 operands: lhs = Expression(59, Sub), rhs = Counter(13) +- expression 56 operands: lhs = Counter(17), rhs = Counter(12) +- expression 57 operands: lhs = Expression(58, Sub), rhs = Counter(19) +- expression 58 operands: lhs = Expression(59, Sub), rhs = Counter(13) +- expression 59 operands: lhs = Counter(17), rhs = Counter(12) +- expression 60 operands: lhs = Expression(67, Sub), rhs = Counter(15) +- expression 61 operands: lhs = Counter(19), rhs = Counter(14) +- expression 62 operands: lhs = Counter(19), rhs = Counter(14) +- expression 63 operands: lhs = Expression(67, Sub), rhs = Counter(15) +- expression 64 operands: lhs = Counter(19), rhs = Counter(14) +- expression 65 operands: lhs = Expression(66, Sub), rhs = Counter(2) +- expression 66 operands: lhs = Expression(67, Sub), rhs = Counter(15) +- expression 67 operands: lhs = Counter(19), rhs = Counter(14) +- expression 68 operands: lhs = Expression(69, Add), rhs = Counter(3) +- expression 69 operands: lhs = Expression(70, Add), rhs = Expression(75, Add) +- expression 70 operands: lhs = Expression(71, Add), rhs = Expression(72, Add) +- expression 71 operands: lhs = Counter(4), rhs = Counter(5) +- expression 72 operands: lhs = Expression(73, Add), rhs = Expression(74, Add) +- expression 73 operands: lhs = Counter(6), rhs = Counter(7) +- expression 74 operands: lhs = Counter(8), rhs = Counter(9) +- expression 75 operands: lhs = Expression(76, Add), rhs = Expression(77, Add) +- expression 76 operands: lhs = Counter(10), rhs = Counter(11) +- expression 77 operands: lhs = Expression(78, Add), rhs = Expression(79, Add) +- expression 78 operands: lhs = Counter(12), rhs = Counter(13) +- expression 79 operands: lhs = Counter(14), rhs = Counter(15) +Number of file 0 mappings: 46 - Code(Counter(0)) at (prev + 60, 1) to (start + 3, 23) - Code(Expression(0, Add)) at (prev + 8, 9) to (start + 0, 14) = (c0 + (c1 + c2)) -- Code(Expression(36, Sub)) at (prev + 2, 9) to (start + 4, 26) +- Code(Expression(51, Sub)) at (prev + 2, 9) to (start + 4, 26) = ((c0 + (c1 + c2)) - c3) -- Code(Counter(16)) at (prev + 6, 13) to (start + 0, 47) +- Branch { true: Counter(16), false: Expression(50, Sub) } at (prev + 4, 13) to (start + 0, 26) + true = c16 + false = (((c0 + (c1 + c2)) - c3) - c16) +- Code(Counter(16)) at (prev + 2, 13) to (start + 0, 47) - Code(Counter(4)) at (prev + 0, 47) to (start + 0, 48) -- Code(Expression(18, Sub)) at (prev + 0, 49) to (start + 3, 53) +- Code(Expression(25, Sub)) at (prev + 0, 49) to (start + 3, 53) = (c16 - c4) - Code(Counter(5)) at (prev + 4, 17) to (start + 0, 18) -- Code(Expression(17, Sub)) at (prev + 2, 17) to (start + 4, 18) +- Code(Expression(24, Sub)) at (prev + 2, 17) to (start + 4, 18) = ((c16 - c4) - c5) -- Code(Expression(15, Sub)) at (prev + 5, 17) to (start + 0, 20) +- Code(Expression(22, Sub)) at (prev + 5, 17) to (start + 0, 20) = ((((c16 - c4) - c5) - c6) - c7) -- Code(Expression(17, Sub)) at (prev + 0, 23) to (start + 0, 65) +- Code(Expression(24, Sub)) at (prev + 0, 23) to (start + 0, 65) = ((c16 - c4) - c5) - Code(Counter(6)) at (prev + 0, 65) to (start + 0, 66) -- Code(Expression(16, Sub)) at (prev + 0, 67) to (start + 0, 95) +- Code(Expression(23, Sub)) at (prev + 0, 67) to (start + 0, 95) = (((c16 - c4) - c5) - c6) - Code(Counter(7)) at (prev + 0, 95) to (start + 0, 96) -- Code(Expression(15, Sub)) at (prev + 1, 13) to (start + 0, 32) +- Code(Expression(22, Sub)) at (prev + 1, 13) to (start + 0, 32) = ((((c16 - c4) - c5) - c6) - c7) -- Code(Expression(22, Sub)) at (prev + 1, 17) to (start + 0, 20) +- Branch { true: Counter(18), false: Expression(21, Sub) } at (prev + 0, 13) to (start + 0, 32) + true = c18 + false = (((((c16 - c4) - c5) - c6) - c7) - c18) +- Code(Expression(32, Sub)) at (prev + 1, 17) to (start + 0, 20) = ((c18 - c8) - c9) - Code(Counter(18)) at (prev + 0, 23) to (start + 0, 65) - Code(Counter(8)) at (prev + 0, 65) to (start + 0, 66) -- Code(Expression(23, Sub)) at (prev + 0, 67) to (start + 0, 96) +- Code(Expression(33, Sub)) at (prev + 0, 67) to (start + 0, 96) = (c18 - c8) - Code(Counter(9)) at (prev + 0, 96) to (start + 0, 97) -- Code(Expression(22, Sub)) at (prev + 1, 13) to (start + 0, 32) +- Code(Expression(32, Sub)) at (prev + 1, 13) to (start + 0, 32) = ((c18 - c8) - c9) -- Code(Expression(33, Sub)) at (prev + 4, 17) to (start + 0, 20) +- Branch { true: Counter(1), false: Expression(31, Sub) } at (prev + 0, 13) to (start + 0, 32) + true = c1 + false = (((c18 - c8) - c9) - c1) +- Code(Expression(48, Sub)) at (prev + 4, 17) to (start + 0, 20) = (((((c0 + (c1 + c2)) - c3) - c16) - c10) - c11) -- Code(Expression(35, Sub)) at (prev + 0, 23) to (start + 0, 66) +- Code(Expression(50, Sub)) at (prev + 0, 23) to (start + 0, 66) = (((c0 + (c1 + c2)) - c3) - c16) - Code(Counter(10)) at (prev + 0, 66) to (start + 0, 67) -- Code(Expression(34, Sub)) at (prev + 0, 68) to (start + 0, 97) +- Code(Expression(49, Sub)) at (prev + 0, 68) to (start + 0, 97) = ((((c0 + (c1 + c2)) - c3) - c16) - c10) - Code(Counter(11)) at (prev + 0, 97) to (start + 0, 98) -- Code(Expression(33, Sub)) at (prev + 1, 13) to (start + 0, 32) +- Code(Expression(48, Sub)) at (prev + 1, 13) to (start + 0, 32) = (((((c0 + (c1 + c2)) - c3) - c16) - c10) - c11) -- Code(Expression(40, Sub)) at (prev + 1, 17) to (start + 0, 20) +- Branch { true: Counter(17), false: Expression(47, Sub) } at (prev + 0, 13) to (start + 0, 32) + true = c17 + false = ((((((c0 + (c1 + c2)) - c3) - c16) - c10) - c11) - c17) +- Code(Expression(58, Sub)) at (prev + 1, 17) to (start + 0, 20) = ((c17 - c12) - c13) - Code(Counter(17)) at (prev + 0, 23) to (start + 1, 54) - Code(Counter(12)) at (prev + 1, 54) to (start + 0, 55) -- Code(Expression(41, Sub)) at (prev + 1, 18) to (start + 0, 47) +- Code(Expression(59, Sub)) at (prev + 1, 18) to (start + 0, 47) = (c17 - c12) - Code(Counter(13)) at (prev + 0, 47) to (start + 0, 48) -- Code(Expression(40, Sub)) at (prev + 1, 13) to (start + 0, 32) +- Code(Expression(58, Sub)) at (prev + 1, 13) to (start + 0, 32) = ((c17 - c12) - c13) -- Code(Expression(45, Sub)) at (prev + 1, 17) to (start + 0, 20) +- Branch { true: Counter(19), false: Expression(57, Sub) } at (prev + 0, 13) to (start + 0, 32) + true = c19 + false = (((c17 - c12) - c13) - c19) +- Code(Expression(66, Sub)) at (prev + 1, 17) to (start + 0, 20) = ((c19 - c14) - c15) - Code(Counter(19)) at (prev + 0, 23) to (start + 1, 54) - Code(Counter(14)) at (prev + 2, 17) to (start + 0, 18) -- Code(Expression(46, Sub)) at (prev + 1, 18) to (start + 0, 47) +- Code(Expression(67, Sub)) at (prev + 1, 18) to (start + 0, 47) = (c19 - c14) - Code(Counter(15)) at (prev + 1, 17) to (start + 0, 18) -- Code(Expression(45, Sub)) at (prev + 2, 13) to (start + 0, 32) +- Code(Expression(66, Sub)) at (prev + 2, 13) to (start + 0, 32) = ((c19 - c14) - c15) +- Branch { true: Counter(2), false: Expression(65, Sub) } at (prev + 0, 13) to (start + 0, 32) + true = c2 + false = (((c19 - c14) - c15) - c2) - Code(Counter(3)) at (prev + 3, 5) to (start + 0, 11) -- Code(Expression(47, Add)) at (prev + 1, 1) to (start + 0, 2) +- Code(Expression(68, Add)) at (prev + 1, 1) to (start + 0, 2) = ((((c4 + c5) + ((c6 + c7) + (c8 + c9))) + ((c10 + c11) + ((c12 + c13) + (c14 + c15)))) + c3) diff --git a/tests/coverage/try_error_result.coverage b/tests/coverage/try_error_result.coverage index 5d48cbd62f207..97781947f2f3a 100644 --- a/tests/coverage/try_error_result.coverage +++ b/tests/coverage/try_error_result.coverage @@ -3,6 +3,9 @@ LL| | LL| 6|fn call(return_error: bool) -> Result<(), ()> { LL| 6| if return_error { + ------------------ + | Branch (LL:8): [True: 1, False: 5] + ------------------ LL| 1| Err(()) LL| | } else { LL| 5| Ok(()) @@ -23,6 +26,9 @@ LL| 6| ; LL| 6| if LL| 6| countdown < 5 + ------------------ + | Branch (LL:13): [True: 1, False: 5] + ------------------ LL| | { LL| 1| call(/*return_error=*/ true)?; LL| 0| call(/*return_error=*/ false)?; @@ -40,6 +46,9 @@ LL| |impl Thing1 { LL| 18| fn get_thing_2(&self, return_error: bool) -> Result { LL| 18| if return_error { + ------------------ + | Branch (LL:12): [True: 1, False: 17] + ------------------ LL| 1| Err(()) LL| | } else { LL| 17| Ok(Thing2 {}) @@ -51,6 +60,9 @@ LL| |impl Thing2 { LL| 17| fn call(&self, return_error: bool) -> Result { LL| 17| if return_error { + ------------------ + | Branch (LL:12): [True: 2, False: 15] + ------------------ LL| 2| Err(()) LL| | } else { LL| 15| Ok(57) @@ -73,6 +85,9 @@ LL| 6| ; LL| 6| if LL| 6| countdown < 5 + ------------------ + | Branch (LL:13): [True: 1, False: 5] + ------------------ LL| | { LL| 1| thing1.get_thing_2(/*err=*/ false)?.call(/*err=*/ true).expect_err("call should fail"); ^0 @@ -89,20 +104,32 @@ LL| 1| let val = thing1.get_thing_2(/*return_error=*/ true)?.call(/*return_error=*/ true)?; ^0 ^0 ^0 LL| 0| assert_eq!(val, 57); + ------------------ + | Branch (LL:13): [True: 0, False: 0] + ------------------ LL| 0| let val = thing1.get_thing_2(/*return_error=*/ true)?.call(/*return_error=*/ false)?; LL| 0| assert_eq!(val, 57); + ------------------ + | Branch (LL:13): [True: 0, False: 0] + ------------------ LL| | } LL| | else LL| | { LL| 5| let val = thing1.get_thing_2(/*return_error=*/ false)?.call(/*return_error=*/ false)?; ^0 ^0 LL| 5| assert_eq!(val, 57); + ------------------ + | Branch (LL:13): [True: 5, False: 0] + ------------------ LL| 5| let val = thing1 LL| 5| .get_thing_2(/*return_error=*/ false)? ^0 LL| 5| .call(/*return_error=*/ false)?; ^0 LL| 5| assert_eq!(val, 57); + ------------------ + | Branch (LL:13): [True: 5, False: 0] + ------------------ LL| 5| let val = thing1 LL| 5| .get_thing_2(/*return_error=*/ false) LL| 0| ? @@ -110,6 +137,9 @@ LL| 0| ? LL| | ; LL| 5| assert_eq!(val, 57); + ------------------ + | Branch (LL:13): [True: 5, False: 0] + ------------------ LL| | } LL| | } LL| 0| Ok(()) diff --git a/tests/coverage/unused.cov-map b/tests/coverage/unused.cov-map index 9383d1e90ac20..a8216caa37359 100644 --- a/tests/coverage/unused.cov-map +++ b/tests/coverage/unused.cov-map @@ -1,40 +1,54 @@ Function name: unused::foo:: -Raw bytes (42): 0x[01, 01, 04, 01, 0f, 05, 09, 03, 0d, 05, 09, 06, 01, 03, 01, 01, 12, 03, 02, 0b, 00, 11, 0a, 01, 09, 00, 0f, 09, 00, 13, 00, 19, 0f, 01, 09, 00, 0f, 0d, 02, 01, 00, 02] +Raw bytes (58): 0x[01, 01, 05, 01, 13, 05, 09, 03, 0d, 03, 0d, 05, 09, 08, 01, 03, 01, 01, 12, 03, 02, 0b, 00, 11, 20, 0e, 0d, 00, 0b, 00, 11, 0e, 01, 09, 00, 0f, 20, 05, 09, 00, 09, 00, 0f, 09, 00, 13, 00, 19, 13, 01, 09, 00, 0f, 0d, 02, 01, 00, 02] Number of files: 1 - file 0 => global file 1 -Number of expressions: 4 -- expression 0 operands: lhs = Counter(0), rhs = Expression(3, Add) +Number of expressions: 5 +- expression 0 operands: lhs = Counter(0), rhs = Expression(4, Add) - expression 1 operands: lhs = Counter(1), rhs = Counter(2) - expression 2 operands: lhs = Expression(0, Add), rhs = Counter(3) -- expression 3 operands: lhs = Counter(1), rhs = Counter(2) -Number of file 0 mappings: 6 +- expression 3 operands: lhs = Expression(0, Add), rhs = Counter(3) +- expression 4 operands: lhs = Counter(1), rhs = Counter(2) +Number of file 0 mappings: 8 - Code(Counter(0)) at (prev + 3, 1) to (start + 1, 18) - Code(Expression(0, Add)) at (prev + 2, 11) to (start + 0, 17) = (c0 + (c1 + c2)) -- Code(Expression(2, Sub)) at (prev + 1, 9) to (start + 0, 15) +- Branch { true: Expression(3, Sub), false: Counter(3) } at (prev + 0, 11) to (start + 0, 17) + true = ((c0 + (c1 + c2)) - c3) + false = c3 +- Code(Expression(3, Sub)) at (prev + 1, 9) to (start + 0, 15) = ((c0 + (c1 + c2)) - c3) +- Branch { true: Counter(1), false: Counter(2) } at (prev + 0, 9) to (start + 0, 15) + true = c1 + false = c2 - Code(Counter(2)) at (prev + 0, 19) to (start + 0, 25) -- Code(Expression(3, Add)) at (prev + 1, 9) to (start + 0, 15) +- Code(Expression(4, Add)) at (prev + 1, 9) to (start + 0, 15) = (c1 + c2) - Code(Counter(3)) at (prev + 2, 1) to (start + 0, 2) Function name: unused::foo:: -Raw bytes (42): 0x[01, 01, 04, 01, 0f, 05, 09, 03, 0d, 05, 09, 06, 01, 03, 01, 01, 12, 03, 02, 0b, 00, 11, 0a, 01, 09, 00, 0f, 09, 00, 13, 00, 19, 0f, 01, 09, 00, 0f, 0d, 02, 01, 00, 02] +Raw bytes (58): 0x[01, 01, 05, 01, 13, 05, 09, 03, 0d, 03, 0d, 05, 09, 08, 01, 03, 01, 01, 12, 03, 02, 0b, 00, 11, 20, 0e, 0d, 00, 0b, 00, 11, 0e, 01, 09, 00, 0f, 20, 05, 09, 00, 09, 00, 0f, 09, 00, 13, 00, 19, 13, 01, 09, 00, 0f, 0d, 02, 01, 00, 02] Number of files: 1 - file 0 => global file 1 -Number of expressions: 4 -- expression 0 operands: lhs = Counter(0), rhs = Expression(3, Add) +Number of expressions: 5 +- expression 0 operands: lhs = Counter(0), rhs = Expression(4, Add) - expression 1 operands: lhs = Counter(1), rhs = Counter(2) - expression 2 operands: lhs = Expression(0, Add), rhs = Counter(3) -- expression 3 operands: lhs = Counter(1), rhs = Counter(2) -Number of file 0 mappings: 6 +- expression 3 operands: lhs = Expression(0, Add), rhs = Counter(3) +- expression 4 operands: lhs = Counter(1), rhs = Counter(2) +Number of file 0 mappings: 8 - Code(Counter(0)) at (prev + 3, 1) to (start + 1, 18) - Code(Expression(0, Add)) at (prev + 2, 11) to (start + 0, 17) = (c0 + (c1 + c2)) -- Code(Expression(2, Sub)) at (prev + 1, 9) to (start + 0, 15) +- Branch { true: Expression(3, Sub), false: Counter(3) } at (prev + 0, 11) to (start + 0, 17) + true = ((c0 + (c1 + c2)) - c3) + false = c3 +- Code(Expression(3, Sub)) at (prev + 1, 9) to (start + 0, 15) = ((c0 + (c1 + c2)) - c3) +- Branch { true: Counter(1), false: Counter(2) } at (prev + 0, 9) to (start + 0, 15) + true = c1 + false = c2 - Code(Counter(2)) at (prev + 0, 19) to (start + 0, 25) -- Code(Expression(3, Add)) at (prev + 1, 9) to (start + 0, 15) +- Code(Expression(4, Add)) at (prev + 1, 9) to (start + 0, 15) = (c1 + c2) - Code(Counter(3)) at (prev + 2, 1) to (start + 0, 2) @@ -47,47 +61,62 @@ Number of file 0 mappings: 1 - Code(Counter(0)) at (prev + 37, 1) to (start + 4, 2) Function name: unused::unused_func (unused) -Raw bytes (24): 0x[01, 01, 00, 04, 00, 13, 01, 01, 0e, 00, 01, 0f, 02, 06, 00, 02, 06, 00, 07, 00, 01, 01, 00, 02] +Raw bytes (31): 0x[01, 01, 00, 05, 00, 13, 01, 01, 0e, 20, 00, 00, 01, 08, 00, 0e, 00, 00, 0f, 02, 06, 00, 02, 06, 00, 07, 00, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 0 -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Zero) at (prev + 19, 1) to (start + 1, 14) -- Code(Zero) at (prev + 1, 15) to (start + 2, 6) +- Branch { true: Zero, false: Zero } at (prev + 1, 8) to (start + 0, 14) + true = Zero + false = Zero +- Code(Zero) at (prev + 0, 15) to (start + 2, 6) - Code(Zero) at (prev + 2, 6) to (start + 0, 7) - Code(Zero) at (prev + 1, 1) to (start + 0, 2) Function name: unused::unused_func2 (unused) -Raw bytes (24): 0x[01, 01, 00, 04, 00, 19, 01, 01, 0e, 00, 01, 0f, 02, 06, 00, 02, 06, 00, 07, 00, 01, 01, 00, 02] +Raw bytes (31): 0x[01, 01, 00, 05, 00, 19, 01, 01, 0e, 20, 00, 00, 01, 08, 00, 0e, 00, 00, 0f, 02, 06, 00, 02, 06, 00, 07, 00, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 0 -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Zero) at (prev + 25, 1) to (start + 1, 14) -- Code(Zero) at (prev + 1, 15) to (start + 2, 6) +- Branch { true: Zero, false: Zero } at (prev + 1, 8) to (start + 0, 14) + true = Zero + false = Zero +- Code(Zero) at (prev + 0, 15) to (start + 2, 6) - Code(Zero) at (prev + 2, 6) to (start + 0, 7) - Code(Zero) at (prev + 1, 1) to (start + 0, 2) Function name: unused::unused_func3 (unused) -Raw bytes (24): 0x[01, 01, 00, 04, 00, 1f, 01, 01, 0e, 00, 01, 0f, 02, 06, 00, 02, 06, 00, 07, 00, 01, 01, 00, 02] +Raw bytes (31): 0x[01, 01, 00, 05, 00, 1f, 01, 01, 0e, 20, 00, 00, 01, 08, 00, 0e, 00, 00, 0f, 02, 06, 00, 02, 06, 00, 07, 00, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 0 -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Zero) at (prev + 31, 1) to (start + 1, 14) -- Code(Zero) at (prev + 1, 15) to (start + 2, 6) +- Branch { true: Zero, false: Zero } at (prev + 1, 8) to (start + 0, 14) + true = Zero + false = Zero +- Code(Zero) at (prev + 0, 15) to (start + 2, 6) - Code(Zero) at (prev + 2, 6) to (start + 0, 7) - Code(Zero) at (prev + 1, 1) to (start + 0, 2) Function name: unused::unused_template_func::<_> (unused) -Raw bytes (34): 0x[01, 01, 00, 06, 00, 0b, 01, 01, 12, 00, 02, 0b, 00, 11, 00, 01, 09, 00, 0f, 00, 00, 13, 00, 19, 00, 01, 09, 00, 0f, 00, 02, 01, 00, 02] +Raw bytes (48): 0x[01, 01, 00, 08, 00, 0b, 01, 01, 12, 00, 02, 0b, 00, 11, 20, 00, 00, 00, 0b, 00, 11, 00, 01, 09, 00, 0f, 20, 00, 00, 00, 09, 00, 0f, 00, 00, 13, 00, 19, 00, 01, 09, 00, 0f, 00, 02, 01, 00, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 0 -Number of file 0 mappings: 6 +Number of file 0 mappings: 8 - Code(Zero) at (prev + 11, 1) to (start + 1, 18) - Code(Zero) at (prev + 2, 11) to (start + 0, 17) +- Branch { true: Zero, false: Zero } at (prev + 0, 11) to (start + 0, 17) + true = Zero + false = Zero - Code(Zero) at (prev + 1, 9) to (start + 0, 15) +- Branch { true: Zero, false: Zero } at (prev + 0, 9) to (start + 0, 15) + true = Zero + false = Zero - Code(Zero) at (prev + 0, 19) to (start + 0, 25) - Code(Zero) at (prev + 1, 9) to (start + 0, 15) - Code(Zero) at (prev + 2, 1) to (start + 0, 2) diff --git a/tests/coverage/unused.coverage b/tests/coverage/unused.coverage index 056ffeb021a03..071e3a0ae0a11 100644 --- a/tests/coverage/unused.coverage +++ b/tests/coverage/unused.coverage @@ -3,8 +3,18 @@ LL| 2|fn foo(x: T) { LL| 2| let mut i = 0; LL| 22| while i < 10 { + ------------------ + | Branch (LL:11): [True: 10, False: 1] + ------------------ + | Branch (LL:11): [True: 10, False: 1] + ------------------ LL| 20| i != 0 || i != 0; ^2 + ------------------ + | Branch (LL:9): [True: 9, False: 1] + ------------------ + | Branch (LL:9): [True: 9, False: 1] + ------------------ LL| 20| i += 1; LL| | } LL| 2|} @@ -13,8 +23,14 @@ | LL| 1|fn foo(x: T) { | LL| 1| let mut i = 0; | LL| 11| while i < 10 { + | ------------------ + | | Branch (LL:11): [True: 10, False: 1] + | ------------------ | LL| 10| i != 0 || i != 0; | ^1 + | ------------------ + | | Branch (LL:9): [True: 9, False: 1] + | ------------------ | LL| 10| i += 1; | LL| | } | LL| 1|} @@ -23,8 +39,14 @@ | LL| 1|fn foo(x: T) { | LL| 1| let mut i = 0; | LL| 11| while i < 10 { + | ------------------ + | | Branch (LL:11): [True: 10, False: 1] + | ------------------ | LL| 10| i != 0 || i != 0; | ^1 + | ------------------ + | | Branch (LL:9): [True: 9, False: 1] + | ------------------ | LL| 10| i += 1; | LL| | } | LL| 1|} @@ -33,25 +55,40 @@ LL| 0|fn unused_template_func(x: T) { LL| 0| let mut i = 0; LL| 0| while i < 10 { + ------------------ + | Branch (LL:11): [Folded - Ignored] + ------------------ LL| 0| i != 0 || i != 0; + ------------------ + | Branch (LL:9): [Folded - Ignored] + ------------------ LL| 0| i += 1; LL| | } LL| 0|} LL| | LL| 0|fn unused_func(mut a: u32) { LL| 0| if a != 0 { + ------------------ + | Branch (LL:8): [Folded - Ignored] + ------------------ LL| 0| a += 1; LL| 0| } LL| 0|} LL| | LL| 0|fn unused_func2(mut a: u32) { LL| 0| if a != 0 { + ------------------ + | Branch (LL:8): [Folded - Ignored] + ------------------ LL| 0| a += 1; LL| 0| } LL| 0|} LL| | LL| 0|fn unused_func3(mut a: u32) { LL| 0| if a != 0 { + ------------------ + | Branch (LL:8): [Folded - Ignored] + ------------------ LL| 0| a += 1; LL| 0| } LL| 0|} diff --git a/tests/coverage/uses_crate.coverage b/tests/coverage/uses_crate.coverage index 50d92102a1093..c78404b720b51 100644 --- a/tests/coverage/uses_crate.coverage +++ b/tests/coverage/uses_crate.coverage @@ -12,6 +12,9 @@ $DIR/auxiliary/used_crate.rs: LL| 1| let is_true = std::env::args().len() == 1; LL| 1| let mut countdown = 0; LL| 1| if is_true { + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| 1| countdown = 10; LL| 1| } ^0 @@ -88,6 +91,9 @@ $DIR/auxiliary/used_crate.rs: LL| 0| let is_true = std::env::args().len() == 1; LL| 0| let mut countdown = 2; LL| 0| if !is_true { + ------------------ + | Branch (LL:9): [True: 0, False: 0] + ------------------ LL| 0| countdown = 20; LL| 0| } LL| 0|} @@ -97,6 +103,9 @@ $DIR/auxiliary/used_crate.rs: LL| 0| let is_true = std::env::args().len() == 1; LL| 0| let mut countdown = 2; LL| 0| if !is_true { + ------------------ + | Branch (LL:9): [Folded - Ignored] + ------------------ LL| 0| countdown = 20; LL| 0| } LL| 0|} diff --git a/tests/coverage/uses_inline_crate.cov-map b/tests/coverage/uses_inline_crate.cov-map index 6b621825c8861..a342456ca5196 100644 --- a/tests/coverage/uses_inline_crate.cov-map +++ b/tests/coverage/uses_inline_crate.cov-map @@ -7,15 +7,18 @@ Number of file 0 mappings: 1 - Code(Counter(0)) at (prev + 44, 1) to (start + 2, 2) Function name: used_inline_crate::used_inline_function -Raw bytes (28): 0x[01, 01, 02, 01, 05, 05, 02, 04, 01, 14, 01, 06, 0f, 05, 06, 10, 02, 06, 02, 02, 06, 00, 07, 07, 01, 05, 01, 02] +Raw bytes (35): 0x[01, 01, 02, 01, 05, 05, 02, 05, 01, 14, 01, 06, 0f, 20, 05, 02, 06, 08, 00, 0f, 05, 00, 10, 02, 06, 02, 02, 06, 00, 07, 07, 01, 05, 01, 02] Number of files: 1 - file 0 => global file 1 Number of expressions: 2 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Counter(1), rhs = Expression(0, Sub) -Number of file 0 mappings: 4 +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 20, 1) to (start + 6, 15) -- Code(Counter(1)) at (prev + 6, 16) to (start + 2, 6) +- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 6, 8) to (start + 0, 15) + true = c1 + false = (c0 - c1) +- Code(Counter(1)) at (prev + 0, 16) to (start + 2, 6) - Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7) = (c0 - c1) - Code(Expression(1, Add)) at (prev + 1, 5) to (start + 1, 2) diff --git a/tests/coverage/uses_inline_crate.coverage b/tests/coverage/uses_inline_crate.coverage index cc0e01ffde1c3..5334bb7492ed2 100644 --- a/tests/coverage/uses_inline_crate.coverage +++ b/tests/coverage/uses_inline_crate.coverage @@ -12,6 +12,9 @@ $DIR/auxiliary/used_inline_crate.rs: LL| 1| let is_true = std::env::args().len() == 1; LL| 1| let mut countdown = 0; LL| 1| if is_true { + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| 1| countdown = 10; LL| 1| } ^0 @@ -26,6 +29,9 @@ $DIR/auxiliary/used_inline_crate.rs: LL| 1| let is_true = std::env::args().len() == 1; LL| 1| let mut countdown = 0; LL| 1| if is_true { + ------------------ + | Branch (LL:8): [True: 1, False: 0] + ------------------ LL| 1| countdown = 10; LL| 1| } ^0 @@ -109,6 +115,9 @@ $DIR/auxiliary/used_inline_crate.rs: LL| 0| let is_true = std::env::args().len() == 1; LL| 0| let mut countdown = 2; LL| 0| if !is_true { + ------------------ + | Branch (LL:9): [Folded - Ignored] + ------------------ LL| 0| countdown = 20; LL| 0| } LL| 0|} @@ -119,6 +128,9 @@ $DIR/auxiliary/used_inline_crate.rs: LL| 0| let is_true = std::env::args().len() == 1; LL| 0| let mut countdown = 2; LL| 0| if !is_true { + ------------------ + | Branch (LL:9): [Folded - Ignored] + ------------------ LL| 0| countdown = 20; LL| 0| } LL| 0|} diff --git a/tests/coverage/while.cov-map b/tests/coverage/while.cov-map index af250f3fb710b..c0bc364862351 100644 --- a/tests/coverage/while.cov-map +++ b/tests/coverage/while.cov-map @@ -1,15 +1,19 @@ Function name: while::main -Raw bytes (28): 0x[01, 01, 02, 01, 00, 03, 00, 04, 01, 01, 01, 01, 10, 03, 02, 0b, 00, 14, 00, 00, 15, 01, 06, 06, 02, 01, 00, 02] +Raw bytes (37): 0x[01, 01, 03, 01, 00, 03, 00, 03, 00, 05, 01, 01, 01, 01, 10, 03, 02, 0b, 00, 14, 20, 00, 0a, 00, 0b, 00, 14, 00, 00, 15, 01, 06, 0a, 02, 01, 00, 02] Number of files: 1 - file 0 => global file 1 -Number of expressions: 2 +Number of expressions: 3 - expression 0 operands: lhs = Counter(0), rhs = Zero - expression 1 operands: lhs = Expression(0, Add), rhs = Zero -Number of file 0 mappings: 4 +- expression 2 operands: lhs = Expression(0, Add), rhs = Zero +Number of file 0 mappings: 5 - Code(Counter(0)) at (prev + 1, 1) to (start + 1, 16) - Code(Expression(0, Add)) at (prev + 2, 11) to (start + 0, 20) = (c0 + Zero) +- Branch { true: Zero, false: Expression(2, Sub) } at (prev + 0, 11) to (start + 0, 20) + true = Zero + false = ((c0 + Zero) - Zero) - Code(Zero) at (prev + 0, 21) to (start + 1, 6) -- Code(Expression(1, Sub)) at (prev + 2, 1) to (start + 0, 2) +- Code(Expression(2, Sub)) at (prev + 2, 1) to (start + 0, 2) = ((c0 + Zero) - Zero) diff --git a/tests/coverage/while.coverage b/tests/coverage/while.coverage index c9d497651c9f2..a3f871add5e7d 100644 --- a/tests/coverage/while.coverage +++ b/tests/coverage/while.coverage @@ -1,6 +1,9 @@ LL| 1|fn main() { LL| 1| let num = 9; LL| 1| while num >= 10 { + ------------------ + | Branch (LL:11): [True: 0, False: 1] + ------------------ LL| 0| } LL| 1|} diff --git a/tests/coverage/while_early_ret.cov-map b/tests/coverage/while_early_ret.cov-map index 369ebe891f127..df7b685cbe517 100644 --- a/tests/coverage/while_early_ret.cov-map +++ b/tests/coverage/while_early_ret.cov-map @@ -1,26 +1,38 @@ Function name: while_early_ret::main -Raw bytes (61): 0x[01, 01, 06, 01, 05, 03, 09, 0e, 05, 03, 09, 17, 09, 0d, 11, 09, 01, 04, 01, 01, 1b, 03, 03, 09, 02, 0a, 0e, 05, 0d, 02, 0e, 0a, 06, 15, 02, 16, 0d, 04, 15, 00, 1b, 11, 04, 15, 00, 1b, 05, 03, 0a, 03, 0a, 09, 06, 05, 00, 0b, 13, 01, 01, 00, 02] +Raw bytes (88): 0x[01, 01, 09, 01, 05, 03, 09, 03, 09, 1a, 05, 03, 09, 1a, 05, 03, 09, 23, 09, 0d, 11, 0c, 01, 04, 01, 01, 1b, 03, 03, 09, 02, 0a, 20, 1a, 09, 00, 09, 02, 0a, 1a, 05, 0d, 02, 0e, 20, 16, 05, 00, 0d, 02, 0e, 16, 06, 15, 02, 16, 20, 0d, 11, 00, 15, 02, 16, 0d, 04, 15, 00, 1b, 11, 04, 15, 00, 1b, 05, 03, 0a, 03, 0a, 09, 06, 05, 00, 0b, 1f, 01, 01, 00, 02] Number of files: 1 - file 0 => global file 1 -Number of expressions: 6 +Number of expressions: 9 - expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 1 operands: lhs = Expression(0, Add), rhs = Counter(2) -- expression 2 operands: lhs = Expression(3, Sub), rhs = Counter(1) -- expression 3 operands: lhs = Expression(0, Add), rhs = Counter(2) -- expression 4 operands: lhs = Expression(5, Add), rhs = Counter(2) -- expression 5 operands: lhs = Counter(3), rhs = Counter(4) -Number of file 0 mappings: 9 +- expression 2 operands: lhs = Expression(0, Add), rhs = Counter(2) +- expression 3 operands: lhs = Expression(6, Sub), rhs = Counter(1) +- expression 4 operands: lhs = Expression(0, Add), rhs = Counter(2) +- expression 5 operands: lhs = Expression(6, Sub), rhs = Counter(1) +- expression 6 operands: lhs = Expression(0, Add), rhs = Counter(2) +- expression 7 operands: lhs = Expression(8, Add), rhs = Counter(2) +- expression 8 operands: lhs = Counter(3), rhs = Counter(4) +Number of file 0 mappings: 12 - Code(Counter(0)) at (prev + 4, 1) to (start + 1, 27) - Code(Expression(0, Add)) at (prev + 3, 9) to (start + 2, 10) = (c0 + c1) -- Code(Expression(3, Sub)) at (prev + 5, 13) to (start + 2, 14) +- Branch { true: Expression(6, Sub), false: Counter(2) } at (prev + 0, 9) to (start + 2, 10) + true = ((c0 + c1) - c2) + false = c2 +- Code(Expression(6, Sub)) at (prev + 5, 13) to (start + 2, 14) = ((c0 + c1) - c2) -- Code(Expression(2, Sub)) at (prev + 6, 21) to (start + 2, 22) +- Branch { true: Expression(5, Sub), false: Counter(1) } at (prev + 0, 13) to (start + 2, 14) + true = (((c0 + c1) - c2) - c1) + false = c1 +- Code(Expression(5, Sub)) at (prev + 6, 21) to (start + 2, 22) = (((c0 + c1) - c2) - c1) +- Branch { true: Counter(3), false: Counter(4) } at (prev + 0, 21) to (start + 2, 22) + true = c3 + false = c4 - Code(Counter(3)) at (prev + 4, 21) to (start + 0, 27) - Code(Counter(4)) at (prev + 4, 21) to (start + 0, 27) - Code(Counter(1)) at (prev + 3, 10) to (start + 3, 10) - Code(Counter(2)) at (prev + 6, 5) to (start + 0, 11) -- Code(Expression(4, Add)) at (prev + 1, 1) to (start + 0, 2) +- Code(Expression(7, Add)) at (prev + 1, 1) to (start + 0, 2) = ((c3 + c4) + c2) diff --git a/tests/coverage/while_early_ret.coverage b/tests/coverage/while_early_ret.coverage index 49d39d366038c..99f2256c497c0 100644 --- a/tests/coverage/while_early_ret.coverage +++ b/tests/coverage/while_early_ret.coverage @@ -5,17 +5,26 @@ LL| 1| let mut countdown = 10; LL| | while LL| 7| countdown + ------------------ + | Branch (LL:9): [True: 7, False: 0] + ------------------ LL| 7| > LL| 7| 0 LL| | { LL| | if LL| 7| countdown + ------------------ + | Branch (LL:13): [True: 1, False: 6] + ------------------ LL| 7| < LL| 7| 5 LL| | { LL| | return LL| | if LL| 1| countdown + ------------------ + | Branch (LL:21): [True: 0, False: 1] + ------------------ LL| 1| > LL| 1| 8 LL| | {