Coverage tests for remaining TerminatorKinds and async, improve Assert
Tested and validate results for panic unwind, panic abort, assert!() macro, TerminatorKind::Assert (for example, numeric overflow), and async/await. Implemented a previous documented idea to change Assert handling to be the same as FalseUnwind and Goto, so it doesn't get its own BasicCoverageBlock anymore. This changed a couple of coverage regions, but I validated those changes are not any worse than the prior results, and probably help assure some consistency (even if some people might disagree with how the code region is consistently computed). Fixed issue with async/await. AggregateKind::Generator needs to be handled like AggregateKind::Closure; coverage span for the outer async function should not "cover" the async body, which is actually executed in a separate "closure" MIR.
This commit is contained in:
parent
1f95c91c88
commit
c45ee4bb29
142 changed files with 10107 additions and 872 deletions
|
|
@ -116,9 +116,13 @@ impl<
|
|||
|
||||
write!(w, r#"<table border="0" cellborder="1" cellspacing="0">"#)?;
|
||||
|
||||
// FIXME(richkadel): Need generic way to know if node header should have a different color
|
||||
// FIXME(richkadel): If/when migrating the MIR graphviz to this generic implementation,
|
||||
// we need generic way to know if node header should have a different color. For example,
|
||||
// for MIR:
|
||||
//
|
||||
// let (blk, bgcolor) = if data.is_cleanup {
|
||||
// (format!("{:?} (cleanup)", node), "lightblue")
|
||||
// let color = if dark_mode { "royalblue" } else { "lightblue" };
|
||||
// (format!("{:?} (cleanup)", node), color)
|
||||
// } else {
|
||||
// let color = if dark_mode { "dimgray" } else { "gray" };
|
||||
// (format!("{:?}", node), color)
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
# `source-based-code-coverage`
|
||||
|
||||
The feature request for this feature is: [#34701]
|
||||
|
||||
The Major Change Proposal (MCP) for this feature is: [#278](https://github.com/rust-lang/compiler-team/issues/278)
|
||||
The tracking issue for this feature is: [#79121](https://github.com/rust-lang/rust/issues/79121).
|
||||
|
||||
------------------------
|
||||
|
||||
|
|
|
|||
|
|
@ -54,6 +54,9 @@ endif
|
|||
%: $(SOURCEDIR)/%.rs
|
||||
# Compile the test program with coverage instrumentation and generate relevant MIR.
|
||||
$(RUSTC) $(SOURCEDIR)/$@.rs \
|
||||
$$( grep -q '^\/\/ require-rust-edition-2018' $(SOURCEDIR)/$@.rs && \
|
||||
echo "--edition=2018" \
|
||||
) \
|
||||
-Zinstrument-coverage \
|
||||
-Clink-dead-code=$(LINK_DEAD_CODE)
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
"data": [
|
||||
{
|
||||
"files": [
|
||||
{
|
||||
"filename": "../coverage/abort.rs",
|
||||
"summary": {
|
||||
"functions": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"instantiations": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 15,
|
||||
"covered": 13,
|
||||
"percent": 86.66666666666667
|
||||
},
|
||||
"regions": {
|
||||
"count": 10,
|
||||
"covered": 9,
|
||||
"notcovered": 1,
|
||||
"percent": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"functions": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"instantiations": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 15,
|
||||
"covered": 13,
|
||||
"percent": 86.66666666666667
|
||||
},
|
||||
"regions": {
|
||||
"count": 10,
|
||||
"covered": 9,
|
||||
"notcovered": 1,
|
||||
"percent": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"type": "llvm.coverage.json.export",
|
||||
"version": "2.0.1"
|
||||
}
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
"data": [
|
||||
{
|
||||
"files": [
|
||||
{
|
||||
"filename": "../coverage/assert.rs",
|
||||
"summary": {
|
||||
"functions": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"instantiations": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 13,
|
||||
"covered": 10,
|
||||
"percent": 76.92307692307693
|
||||
},
|
||||
"regions": {
|
||||
"count": 14,
|
||||
"covered": 12,
|
||||
"notcovered": 2,
|
||||
"percent": 85.71428571428571
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"functions": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"instantiations": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 13,
|
||||
"covered": 10,
|
||||
"percent": 76.92307692307693
|
||||
},
|
||||
"regions": {
|
||||
"count": 14,
|
||||
"covered": 12,
|
||||
"notcovered": 2,
|
||||
"percent": 85.71428571428571
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"type": "llvm.coverage.json.export",
|
||||
"version": "2.0.1"
|
||||
}
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
"data": [
|
||||
{
|
||||
"files": [
|
||||
{
|
||||
"filename": "../coverage/async.rs",
|
||||
"summary": {
|
||||
"functions": {
|
||||
"count": 9,
|
||||
"covered": 9,
|
||||
"percent": 100
|
||||
},
|
||||
"instantiations": {
|
||||
"count": 9,
|
||||
"covered": 9,
|
||||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 31,
|
||||
"covered": 30,
|
||||
"percent": 96.7741935483871
|
||||
},
|
||||
"regions": {
|
||||
"count": 21,
|
||||
"covered": 18,
|
||||
"notcovered": 3,
|
||||
"percent": 85.71428571428571
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"functions": {
|
||||
"count": 9,
|
||||
"covered": 9,
|
||||
"percent": 100
|
||||
},
|
||||
"instantiations": {
|
||||
"count": 9,
|
||||
"covered": 9,
|
||||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 31,
|
||||
"covered": 30,
|
||||
"percent": 96.7741935483871
|
||||
},
|
||||
"regions": {
|
||||
"count": 21,
|
||||
"covered": 18,
|
||||
"notcovered": 3,
|
||||
"percent": 85.71428571428571
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"type": "llvm.coverage.json.export",
|
||||
"version": "2.0.1"
|
||||
}
|
||||
|
|
@ -16,15 +16,15 @@
|
|||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 49,
|
||||
"covered": 23,
|
||||
"percent": 46.93877551020408
|
||||
"count": 64,
|
||||
"covered": 33,
|
||||
"percent": 51.5625
|
||||
},
|
||||
"regions": {
|
||||
"count": 69,
|
||||
"covered": 18,
|
||||
"notcovered": 51,
|
||||
"percent": 26.08695652173913
|
||||
"count": 88,
|
||||
"covered": 25,
|
||||
"notcovered": 63,
|
||||
"percent": 28.40909090909091
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -41,15 +41,15 @@
|
|||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 49,
|
||||
"covered": 23,
|
||||
"percent": 46.93877551020408
|
||||
"count": 64,
|
||||
"covered": 33,
|
||||
"percent": 51.5625
|
||||
},
|
||||
"regions": {
|
||||
"count": 69,
|
||||
"covered": 18,
|
||||
"notcovered": 51,
|
||||
"percent": 26.08695652173913
|
||||
"count": 88,
|
||||
"covered": 25,
|
||||
"notcovered": 63,
|
||||
"percent": 28.40909090909091
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,15 +16,15 @@
|
|||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 26,
|
||||
"covered": 26,
|
||||
"count": 27,
|
||||
"covered": 27,
|
||||
"percent": 100
|
||||
},
|
||||
"regions": {
|
||||
"count": 15,
|
||||
"covered": 13,
|
||||
"count": 11,
|
||||
"covered": 9,
|
||||
"notcovered": 2,
|
||||
"percent": 86.66666666666667
|
||||
"percent": 81.81818181818183
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -41,15 +41,15 @@
|
|||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 26,
|
||||
"covered": 26,
|
||||
"count": 27,
|
||||
"covered": 27,
|
||||
"percent": 100
|
||||
},
|
||||
"regions": {
|
||||
"count": 15,
|
||||
"covered": 13,
|
||||
"count": 11,
|
||||
"covered": 9,
|
||||
"notcovered": 2,
|
||||
"percent": 86.66666666666667
|
||||
"percent": 81.81818181818183
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,15 +16,15 @@
|
|||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 21,
|
||||
"count": 22,
|
||||
"covered": 16,
|
||||
"percent": 76.19047619047619
|
||||
"percent": 72.72727272727273
|
||||
},
|
||||
"regions": {
|
||||
"count": 18,
|
||||
"covered": 14,
|
||||
"count": 17,
|
||||
"covered": 13,
|
||||
"notcovered": 4,
|
||||
"percent": 77.77777777777779
|
||||
"percent": 76.47058823529412
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -41,15 +41,15 @@
|
|||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 21,
|
||||
"count": 22,
|
||||
"covered": 16,
|
||||
"percent": 76.19047619047619
|
||||
"percent": 72.72727272727273
|
||||
},
|
||||
"regions": {
|
||||
"count": 18,
|
||||
"covered": 14,
|
||||
"count": 17,
|
||||
"covered": 13,
|
||||
"notcovered": 4,
|
||||
"percent": 77.77777777777779
|
||||
"percent": 76.47058823529412
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
"data": [
|
||||
{
|
||||
"files": [
|
||||
{
|
||||
"filename": "../coverage/overflow.rs",
|
||||
"summary": {
|
||||
"functions": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"instantiations": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 21,
|
||||
"covered": 17,
|
||||
"percent": 80.95238095238095
|
||||
},
|
||||
"regions": {
|
||||
"count": 14,
|
||||
"covered": 12,
|
||||
"notcovered": 2,
|
||||
"percent": 85.71428571428571
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"functions": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"instantiations": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 21,
|
||||
"covered": 17,
|
||||
"percent": 80.95238095238095
|
||||
},
|
||||
"regions": {
|
||||
"count": 14,
|
||||
"covered": 12,
|
||||
"notcovered": 2,
|
||||
"percent": 85.71428571428571
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"type": "llvm.coverage.json.export",
|
||||
"version": "2.0.1"
|
||||
}
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
"data": [
|
||||
{
|
||||
"files": [
|
||||
{
|
||||
"filename": "../coverage/panic_unwind.rs",
|
||||
"summary": {
|
||||
"functions": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"instantiations": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 17,
|
||||
"covered": 14,
|
||||
"percent": 82.35294117647058
|
||||
},
|
||||
"regions": {
|
||||
"count": 13,
|
||||
"covered": 11,
|
||||
"notcovered": 2,
|
||||
"percent": 84.61538461538461
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"functions": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"instantiations": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 17,
|
||||
"covered": 14,
|
||||
"percent": 82.35294117647058
|
||||
},
|
||||
"regions": {
|
||||
"count": 13,
|
||||
"covered": 11,
|
||||
"notcovered": 2,
|
||||
"percent": 84.61538461538461
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"type": "llvm.coverage.json.export",
|
||||
"version": "2.0.1"
|
||||
}
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
"data": [
|
||||
{
|
||||
"files": [
|
||||
{
|
||||
"filename": "../coverage/yield.rs",
|
||||
"summary": {
|
||||
"functions": {
|
||||
"count": 3,
|
||||
"covered": 3,
|
||||
"percent": 100
|
||||
},
|
||||
"instantiations": {
|
||||
"count": 3,
|
||||
"covered": 3,
|
||||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 23,
|
||||
"covered": 16,
|
||||
"percent": 69.56521739130434
|
||||
},
|
||||
"regions": {
|
||||
"count": 22,
|
||||
"covered": 16,
|
||||
"notcovered": 6,
|
||||
"percent": 72.72727272727273
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"functions": {
|
||||
"count": 3,
|
||||
"covered": 3,
|
||||
"percent": 100
|
||||
},
|
||||
"instantiations": {
|
||||
"count": 3,
|
||||
"covered": 3,
|
||||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 23,
|
||||
"covered": 16,
|
||||
"percent": 69.56521739130434
|
||||
},
|
||||
"regions": {
|
||||
"count": 22,
|
||||
"covered": 16,
|
||||
"notcovered": 6,
|
||||
"percent": 72.72727272727273
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"type": "llvm.coverage.json.export",
|
||||
"version": "2.0.1"
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
1| |#![feature(unwind_attributes)]
|
||||
2| |#![allow(unused_assignments)]
|
||||
3| |
|
||||
4| |#[unwind(aborts)]
|
||||
5| |fn might_abort(should_abort: bool) {
|
||||
6| 4| if should_abort {
|
||||
7| 0| println!("aborting...");
|
||||
8| 0| panic!("panics and aborts");
|
||||
9| 4| } else {
|
||||
10| 4| println!("Don't Panic");
|
||||
11| 4| }
|
||||
12| 4|}
|
||||
13| |
|
||||
14| |fn main() -> Result<(),u8> {
|
||||
15| 1| let mut countdown = 10;
|
||||
16| 11| while countdown > 0 {
|
||||
17| 10| if countdown < 5 {
|
||||
18| 4| might_abort(false);
|
||||
19| 6| }
|
||||
20| 10| countdown -= 1;
|
||||
21| | }
|
||||
22| 1| Ok(())
|
||||
23| 1|}
|
||||
24| |
|
||||
25| |// Notes:
|
||||
26| |// 1. Compare this program and its coverage results to those of the similar tests
|
||||
27| |// `panic_unwind.rs` and `try_error_result.rs`.
|
||||
28| |// 2. This test confirms the coverage generated when a program includes `TerminatorKind::Abort`.
|
||||
29| |// 3. The test does not invoke the abort. By executing to a successful completion, the coverage
|
||||
30| |// results show where the program did and did not execute.
|
||||
31| |// 4. If the program actually aborted, the coverage counters would not be saved (which "works as
|
||||
32| |// intended"). Coverage results would show no executed coverage regions.
|
||||
33| |// 6. If `should_abort` is `true` and the program aborts, the program exits with a `132` status
|
||||
34| |// (on Linux at least).
|
||||
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
1| |#![allow(unused_assignments)]
|
||||
2| |// expect-exit-status-101
|
||||
3| |
|
||||
4| |fn might_fail_assert(one_plus_one: u32) {
|
||||
5| 4| println!("does 1 + 1 = {}?", one_plus_one);
|
||||
6| 4| assert_eq!(1 + 1, one_plus_one, "the argument was wrong");
|
||||
^1
|
||||
7| 3|}
|
||||
8| |
|
||||
9| |fn main() -> Result<(),u8> {
|
||||
10| 1| let mut countdown = 10;
|
||||
11| 10| while countdown > 0 {
|
||||
12| 10| if countdown == 1 {
|
||||
13| 0| might_fail_assert(3);
|
||||
14| 10| } else if countdown < 5 {
|
||||
15| 3| might_fail_assert(2);
|
||||
16| 15| }
|
||||
17| 9| countdown -= 1;
|
||||
18| | }
|
||||
19| 0| Ok(())
|
||||
20| 0|}
|
||||
21| |
|
||||
22| |// Notes:
|
||||
23| |// 1. Compare this program and its coverage results to those of the very similar test
|
||||
24| |// `panic_unwind.rs`, and similar tests `abort.rs` and `try_error_result.rs`.
|
||||
25| |// 2. This test confirms the coverage generated when a program passes or fails an `assert!()` or
|
||||
26| |// related `assert_*!()` macro.
|
||||
27| |// 3. Notably, the `assert` macros *do not* generate `TerminatorKind::Assert`. The macros produce
|
||||
28| |// conditional expressions, `TerminatorKind::SwitchInt` branches, and a possible call to
|
||||
29| |// `begin_panic_fmt()` (that begins a panic unwind, if the assertion test fails).
|
||||
30| |// 4. `TerminatoKind::Assert` is, however, also present in the MIR generated for this test
|
||||
31| |// (and in many other coverage tests). The `Assert` terminator is typically generated by the
|
||||
32| |// Rust compiler to check for runtime failures, such as numeric overflows.
|
||||
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
1| |#![allow(unused_assignments)]
|
||||
2| |
|
||||
3| |// require-rust-edition-2018
|
||||
4| |
|
||||
5| 1|async fn f() -> u8 { 1 }
|
||||
6| |
|
||||
7| |async fn foo() -> [bool; 10] { [false; 10] }
|
||||
8| |
|
||||
9| |pub async fn g(x: u8) {
|
||||
10| | match x {
|
||||
11| | y if f().await == y => (),
|
||||
12| | _ => (),
|
||||
13| | }
|
||||
14| 1|}
|
||||
15| |
|
||||
16| |// #78366: check the reference to the binding is recorded even if the binding is not autorefed
|
||||
17| |
|
||||
18| |async fn h(x: usize) {
|
||||
19| | match x {
|
||||
20| | y if foo().await[y] => (),
|
||||
21| | _ => (),
|
||||
22| | }
|
||||
23| 1|}
|
||||
24| |
|
||||
25| 1|async fn i(x: u8) {
|
||||
26| 1| match x {
|
||||
27| 1| y if f().await == y + 1 => (),
|
||||
^0 ^0
|
||||
28| 1| _ => (),
|
||||
29| | }
|
||||
30| 2|}
|
||||
31| |
|
||||
32| 1|fn main() {
|
||||
33| 1| let _ = g(10);
|
||||
34| 1| let _ = h(9);
|
||||
35| 1| let mut future = Box::pin(i(8));
|
||||
36| 1| executor::block_on(future.as_mut());
|
||||
37| 1|}
|
||||
38| |
|
||||
39| |mod executor {
|
||||
40| | use core::{
|
||||
41| | future::Future,
|
||||
42| | pin::Pin,
|
||||
43| | task::{Context, Poll, RawWaker, RawWakerVTable, Waker},
|
||||
44| | };
|
||||
45| |
|
||||
46| | pub fn block_on<F: Future>(mut future: F) -> F::Output {
|
||||
47| 1| let mut future = unsafe { Pin::new_unchecked(&mut future) };
|
||||
48| 1|
|
||||
49| 1| static VTABLE: RawWakerVTable = RawWakerVTable::new(
|
||||
50| 1| |_| unimplemented!("clone"),
|
||||
51| 1| |_| unimplemented!("wake"),
|
||||
52| 1| |_| unimplemented!("wake_by_ref"),
|
||||
53| 1| |_| (),
|
||||
54| 1| );
|
||||
55| 1| let waker = unsafe { Waker::from_raw(RawWaker::new(core::ptr::null(), &VTABLE)) };
|
||||
56| 1| let mut context = Context::from_waker(&waker);
|
||||
57| |
|
||||
58| | loop {
|
||||
59| 1| if let Poll::Ready(val) = future.as_mut().poll(&mut context) {
|
||||
60| 1| break val;
|
||||
61| | }
|
||||
62| 0| }
|
||||
63| 1| }
|
||||
64| |}
|
||||
|
||||
|
|
@ -27,7 +27,8 @@
|
|||
27| |
|
||||
28| 1| if countdown > 7 {
|
||||
29| 1| countdown -= 4;
|
||||
30| 0| } else if countdown > 2 {
|
||||
30| 1| } else if countdown > 2 {
|
||||
^0
|
||||
31| 0| if countdown < 1 || countdown > 5 || countdown != 9 {
|
||||
32| 0| countdown = 0;
|
||||
33| 0| }
|
||||
|
|
@ -36,34 +37,70 @@
|
|||
36| 0| return;
|
||||
37| | }
|
||||
38| |
|
||||
39| 1| let mut countdown = 0;
|
||||
40| 1| if true {
|
||||
41| 1| countdown = 1;
|
||||
42| 1| }
|
||||
43| |
|
||||
44| 1| let z = if countdown > 7 {
|
||||
^0
|
||||
45| 0| countdown -= 4;
|
||||
46| 1| } else if countdown > 2 {
|
||||
47| 0| if countdown < 1 || countdown > 5 || countdown != 9 {
|
||||
48| 0| countdown = 0;
|
||||
49| 0| }
|
||||
50| 0| countdown -= 5;
|
||||
51| | } else {
|
||||
52| 1| let should_be_reachable = countdown;
|
||||
53| 1| println!("reached");
|
||||
54| 1| return;
|
||||
55| | };
|
||||
39| 1| if true {
|
||||
40| | // Demonstrate the difference with `TerminatorKind::Assert` as of 2020-11-15. Assert is no
|
||||
41| | // longer treated as a `BasicCoverageBlock` terminator, which changed the coverage region,
|
||||
42| | // for the executed `then` block above, to include the closing brace on line 30. That
|
||||
43| | // changed the line count, but the coverage code region (for the `else if` condition) is
|
||||
44| | // still valid.
|
||||
45| | //
|
||||
46| | // Note that `if` (then) and `else` blocks include the closing brace in their coverage
|
||||
47| | // code regions when the last line in the block ends in a semicolon, because the Rust
|
||||
48| | // compiler inserts a `StatementKind::Assign` to assign `const ()` to a `Place`, for the
|
||||
49| | // empty value for the executed block. When the last line does not end in a semicolon
|
||||
50| | // (that is, when the block actually results in a value), the additional `Assign` is not
|
||||
51| | // generated, and the brace is not included.
|
||||
52| 1| let mut countdown = 0;
|
||||
53| 1| if true {
|
||||
54| 1| countdown = 10;
|
||||
55| 1| }
|
||||
56| |
|
||||
57| 0| let w = if countdown > 7 {
|
||||
58| 0| countdown -= 4;
|
||||
59| 0| } else if countdown > 2 {
|
||||
60| 0| if countdown < 1 || countdown > 5 || countdown != 9 {
|
||||
61| 0| countdown = 0;
|
||||
62| 0| }
|
||||
63| 0| countdown -= 5;
|
||||
64| | } else {
|
||||
65| 0| return;
|
||||
66| | };
|
||||
67| 1|}
|
||||
57| 1| if countdown > 7 {
|
||||
58| 1| countdown -= 4;
|
||||
59| 1| }
|
||||
60| | // The closing brace of the `then` branch is now included in the coverage region, and shown
|
||||
61| | // as "executed" (giving its line a count of 1 here). Since, in the original version above,
|
||||
62| | // the closing brace shares the same line as the `else if` conditional expression (which is
|
||||
63| | // not executed if the first `then` condition is true), only the condition's code region is
|
||||
64| | // marked with a count of 0 now.
|
||||
65| 0| else if countdown > 2 {
|
||||
66| 0| if countdown < 1 || countdown > 5 || countdown != 9 {
|
||||
67| 0| countdown = 0;
|
||||
68| 0| }
|
||||
69| 0| countdown -= 5;
|
||||
70| | } else {
|
||||
71| 0| return;
|
||||
72| | }
|
||||
73| 1| }
|
||||
74| |
|
||||
75| 1| let mut countdown = 0;
|
||||
76| 1| if true {
|
||||
77| 1| countdown = 1;
|
||||
78| 1| }
|
||||
79| |
|
||||
80| 1| let z = if countdown > 7 {
|
||||
^0
|
||||
81| 0| countdown -= 4;
|
||||
82| 1| } else if countdown > 2 {
|
||||
83| 0| if countdown < 1 || countdown > 5 || countdown != 9 {
|
||||
84| 0| countdown = 0;
|
||||
85| 0| }
|
||||
86| 0| countdown -= 5;
|
||||
87| | } else {
|
||||
88| 1| let should_be_reachable = countdown;
|
||||
89| 1| println!("reached");
|
||||
90| 1| return;
|
||||
91| | };
|
||||
92| |
|
||||
93| 0| let w = if countdown > 7 {
|
||||
94| 0| countdown -= 4;
|
||||
95| 0| } else if countdown > 2 {
|
||||
96| 0| if countdown < 1 || countdown > 5 || countdown != 9 {
|
||||
97| 0| countdown = 0;
|
||||
98| 0| }
|
||||
99| 0| countdown -= 5;
|
||||
100| | } else {
|
||||
101| 0| return;
|
||||
102| | };
|
||||
103| 1|}
|
||||
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
37| | }
|
||||
38| |
|
||||
39| | impl InTrait for InStruct {
|
||||
40| | fn trait_func(&mut self, incr: u32) {
|
||||
40| 1| fn trait_func(&mut self, incr: u32) {
|
||||
41| 1| self.in_struct_field += incr;
|
||||
42| 1| in_func(self.in_struct_field);
|
||||
43| 1| }
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
15| 1| a -= 10;
|
||||
16| 1| if is_true {
|
||||
17| 1| break 'outer;
|
||||
18| | } else {
|
||||
18| 0| } else {
|
||||
19| 0| a -= 2;
|
||||
20| 0| }
|
||||
21| 2| }
|
||||
|
|
|
|||
|
|
@ -0,0 +1,64 @@
|
|||
1| |#![allow(unused_assignments)]
|
||||
2| |// expect-exit-status-101
|
||||
3| |
|
||||
4| |fn might_overflow(to_add: u32) -> u32 {
|
||||
5| 4| if to_add > 5 {
|
||||
6| 1| println!("this will probably overflow");
|
||||
7| 3| }
|
||||
8| 4| let add_to = u32::MAX - 5;
|
||||
9| 4| println!("does {} + {} overflow?", add_to, to_add);
|
||||
10| 4| let result = to_add + add_to;
|
||||
11| 4| println!("continuing after overflow check");
|
||||
12| 4| result
|
||||
13| 4|}
|
||||
14| |
|
||||
15| |fn main() -> Result<(),u8> {
|
||||
16| 1| let mut countdown = 10;
|
||||
17| 10| while countdown > 0 {
|
||||
18| 10| if countdown == 1 {
|
||||
19| 0| let result = might_overflow(10);
|
||||
20| 0| println!("Result: {}", result);
|
||||
21| 10| } else if countdown < 5 {
|
||||
22| 3| let result = might_overflow(1);
|
||||
23| 3| println!("Result: {}", result);
|
||||
24| 15| }
|
||||
25| 9| countdown -= 1;
|
||||
26| | }
|
||||
27| 0| Ok(())
|
||||
28| 0|}
|
||||
29| |
|
||||
30| |// Notes:
|
||||
31| |// 1. Compare this program and its coverage results to those of the very similar test `assert.rs`,
|
||||
32| |// and similar tests `panic_unwind.rs`, abort.rs` and `try_error_result.rs`.
|
||||
33| |// 2. This test confirms the coverage generated when a program passes or fails a
|
||||
34| |// compiler-generated `TerminatorKind::Assert` (based on an overflow check, in this case).
|
||||
35| |// 3. Similar to how the coverage instrumentation handles `TerminatorKind::Call`,
|
||||
36| |// compiler-generated assertion failures are assumed to be a symptom of a program bug, not
|
||||
37| |// expected behavior. To simplify the coverage graphs and keep instrumented programs as
|
||||
38| |// small and fast as possible, `Assert` terminators are assumed to always succeed, and
|
||||
39| |// therefore are considered "non-branching" terminators. So, an `Assert` terminator does not
|
||||
40| |// get its own coverage counter.
|
||||
41| |// 4. After an unhandled panic or failed Assert, coverage results may not always be intuitive.
|
||||
42| |// In this test, the final count for the statements after the `if` block in `might_overflow()`
|
||||
43| |// is 4, even though the lines after `to_add + add_to` were executed only 3 times. Depending
|
||||
44| |// on the MIR graph and the structure of the code, this count could have been 3 (which might
|
||||
45| |// have been valid for the overflowed add `+`, but should have been 4 for the lines before
|
||||
46| |// the overflow. The reason for this potential uncertainty is, a `CounterKind` is incremented
|
||||
47| |// via StatementKind::Counter at the end of the block, but (as in the case in this test),
|
||||
48| |// a CounterKind::Expression is always evaluated. In this case, the expression was based on
|
||||
49| |// a `Counter` incremented as part of the evaluation of the `if` expression, which was
|
||||
50| |// executed, and counted, 4 times, before reaching the overflow add.
|
||||
51| |
|
||||
52| |// If the program did not overflow, the coverage for `might_overflow()` would look like this:
|
||||
53| |//
|
||||
54| |// 4| |fn might_overflow(to_add: u32) -> u32 {
|
||||
55| |// 5| 4| if to_add > 5 {
|
||||
56| |// 6| 0| println!("this will probably overflow");
|
||||
57| |// 7| 4| }
|
||||
58| |// 8| 4| let add_to = u32::MAX - 5;
|
||||
59| |// 9| 4| println!("does {} + {} overflow?", add_to, to_add);
|
||||
60| |// 10| 4| let result = to_add + add_to;
|
||||
61| |// 11| 4| println!("continuing after overflow check");
|
||||
62| |// 12| 4| result
|
||||
63| |// 13| 4|}
|
||||
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
1| |#![allow(unused_assignments)]
|
||||
2| |// expect-exit-status-101
|
||||
3| |
|
||||
4| |fn might_panic(should_panic: bool) {
|
||||
5| 4| if should_panic {
|
||||
6| 1| println!("panicking...");
|
||||
7| 1| panic!("panics");
|
||||
8| 3| } else {
|
||||
9| 3| println!("Don't Panic");
|
||||
10| 3| }
|
||||
11| 3|}
|
||||
12| |
|
||||
13| |fn main() -> Result<(),u8> {
|
||||
14| 1| let mut countdown = 10;
|
||||
15| 10| while countdown > 0 {
|
||||
16| 10| if countdown == 1 {
|
||||
17| 0| might_panic(true);
|
||||
18| 10| } else if countdown < 5 {
|
||||
19| 3| might_panic(false);
|
||||
20| 15| }
|
||||
21| 9| countdown -= 1;
|
||||
22| | }
|
||||
23| 0| Ok(())
|
||||
24| 0|}
|
||||
25| |
|
||||
26| |// Notes:
|
||||
27| |// 1. Compare this program and its coverage results to those of the similar tests `abort.rs` and
|
||||
28| |// `try_error_result.rs`.
|
||||
29| |// 2. Since the `panic_unwind.rs` test is allowed to unwind, it is also allowed to execute the
|
||||
30| |// normal program exit cleanup, including writing out the current values of the coverage
|
||||
31| |// counters.
|
||||
32| |// 3. The coverage results show (interestingly) that the `panic!()` call did execute, but it does
|
||||
33| |// not show coverage of the `if countdown == 1` branch in `main()` that calls
|
||||
34| |// `might_panic(true)` (causing the call to `panic!()`).
|
||||
35| |// 4. The reason `main()`s `if countdown == 1` branch, calling `might_panic(true)`, appears
|
||||
36| |// "uncovered" is, InstrumentCoverage (intentionally) treats `TerminatorKind::Call` terminators
|
||||
37| |// as non-branching, because when a program executes normally, they always are. Errors handled
|
||||
38| |// via the try `?` operator produce error handling branches that *are* treated as branches in
|
||||
39| |// coverage results. By treating calls without try `?` operators as non-branching (assumed to
|
||||
40| |// return normally and continue) the coverage graph can be simplified, producing smaller,
|
||||
41| |// faster binaries, and cleaner coverage results.
|
||||
42| |// 5. The reason the coverage results actually show `panic!()` was called is most likely because
|
||||
43| |// `panic!()` is a macro, not a simple function call, and there are other `Statement`s and/or
|
||||
44| |// `Terminator`s that execute with a coverage counter before the panic and unwind occur.
|
||||
45| |// 6. By best practice, programs should not panic. By design, the coverage implementation will not
|
||||
46| |// incur additional cost (in program size and execution time) to improve coverage results for
|
||||
47| |// an event that is not supposted to happen.
|
||||
48| |// 7. FIXME(#78544): This issue describes a feature request for a proposed option to enable
|
||||
49| |// more accurate coverage results for tests that intentionally panic.
|
||||
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
1| |#![feature(generators, generator_trait)]
|
||||
2| |#![allow(unused_assignments)]
|
||||
3| |
|
||||
4| |use std::ops::{Generator, GeneratorState};
|
||||
5| |use std::pin::Pin;
|
||||
6| |
|
||||
7| |fn main() {
|
||||
8| 1| let mut generator = || {
|
||||
9| 1| yield 1;
|
||||
10| 1| return "foo"
|
||||
11| 1| };
|
||||
12| |
|
||||
13| 1| match Pin::new(&mut generator).resume(()) {
|
||||
14| 1| GeneratorState::Yielded(1) => {}
|
||||
15| 0| _ => panic!("unexpected value from resume"),
|
||||
16| | }
|
||||
17| 1| match Pin::new(&mut generator).resume(()) {
|
||||
18| 1| GeneratorState::Complete("foo") => {}
|
||||
19| 0| _ => panic!("unexpected value from resume"),
|
||||
20| | }
|
||||
21| |
|
||||
22| 1| let mut generator = || {
|
||||
23| 1| yield 1;
|
||||
24| 1| yield 2;
|
||||
25| 0| yield 3;
|
||||
26| 0| return "foo"
|
||||
27| 0| };
|
||||
28| |
|
||||
29| 1| match Pin::new(&mut generator).resume(()) {
|
||||
30| 1| GeneratorState::Yielded(1) => {}
|
||||
31| 0| _ => panic!("unexpected value from resume"),
|
||||
32| | }
|
||||
33| 1| match Pin::new(&mut generator).resume(()) {
|
||||
34| 1| GeneratorState::Yielded(2) => {}
|
||||
35| 0| _ => panic!("unexpected value from resume"),
|
||||
36| | }
|
||||
37| 1|}
|
||||
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
Counter in file 0 15:9 -> 15:27, #1
|
||||
Counter in file 0 16:11 -> 16:24, (#1 + (#2 + #3))
|
||||
Counter in file 0 17:12 -> 17:25, ((#1 + (#2 + #3)) - #4)
|
||||
Counter in file 0 17:26 -> 19:10, #2
|
||||
Counter in file 0 19:10 -> 19:11, #3
|
||||
Counter in file 0 20:9 -> 20:23, (#2 + #3)
|
||||
Counter in file 0 22:5 -> 23:2, #4
|
||||
Counter in file 0 6:8 -> 6:20, #1
|
||||
Counter in file 0 7:9 -> 8:37, #2
|
||||
Counter in file 0 9:12 -> 12:2, (#1 - #2)
|
||||
Emitting segments for file: ../coverage/abort.rs
|
||||
Combined regions:
|
||||
6:8 -> 6:20 (count=4)
|
||||
7:9 -> 8:37 (count=0)
|
||||
9:12 -> 12:2 (count=4)
|
||||
15:9 -> 15:27 (count=1)
|
||||
16:11 -> 16:24 (count=11)
|
||||
17:12 -> 17:25 (count=10)
|
||||
17:26 -> 19:10 (count=4)
|
||||
19:10 -> 19:11 (count=6)
|
||||
20:9 -> 20:23 (count=10)
|
||||
22:5 -> 23:2 (count=1)
|
||||
Segment at 6:8 (count = 4), RegionEntry
|
||||
Segment at 6:20 (count = 0), Skipped
|
||||
Segment at 7:9 (count = 0), RegionEntry
|
||||
Segment at 8:37 (count = 0), Skipped
|
||||
Segment at 9:12 (count = 4), RegionEntry
|
||||
Segment at 12:2 (count = 0), Skipped
|
||||
Segment at 15:9 (count = 1), RegionEntry
|
||||
Segment at 15:27 (count = 0), Skipped
|
||||
Segment at 16:11 (count = 11), RegionEntry
|
||||
Segment at 16:24 (count = 0), Skipped
|
||||
Segment at 17:12 (count = 10), RegionEntry
|
||||
Segment at 17:25 (count = 0), Skipped
|
||||
Segment at 17:26 (count = 4), RegionEntry
|
||||
Segment at 19:10 (count = 6), RegionEntry
|
||||
Segment at 19:11 (count = 0), Skipped
|
||||
Segment at 20:9 (count = 10), RegionEntry
|
||||
Segment at 20:23 (count = 0), Skipped
|
||||
Segment at 22:5 (count = 1), RegionEntry
|
||||
Segment at 23:2 (count = 0), Skipped
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
Counter in file 0 10:9 -> 10:27, #1
|
||||
Counter in file 0 11:11 -> 11:24, (#1 + (#2 + (#3 + #4)))
|
||||
Counter in file 0 12:12 -> 12:26, ((#1 + (#2 + (#3 + #4))) - #5)
|
||||
Counter in file 0 12:27 -> 14:10, #2
|
||||
Counter in file 0 14:19 -> 14:32, (((#1 + (#2 + (#3 + #4))) - #5) - #2)
|
||||
Counter in file 0 14:33 -> 16:10, #3
|
||||
Counter in file 0 16:10 -> 16:11, #4
|
||||
Counter in file 0 16:10 -> 16:11, (#3 + #4)
|
||||
Counter in file 0 17:9 -> 17:23, (#2 + (#3 + #4))
|
||||
Counter in file 0 19:5 -> 20:2, #5
|
||||
Counter in file 0 5:5 -> 5:48, #1
|
||||
Counter in file 0 6:16 -> 6:21, (#1 + 0)
|
||||
Counter in file 0 6:37 -> 6:61, #2
|
||||
Counter in file 0 7:1 -> 7:2, (#1 - #2)
|
||||
Emitting segments for file: ../coverage/assert.rs
|
||||
Combined regions:
|
||||
5:5 -> 5:48 (count=4)
|
||||
6:16 -> 6:21 (count=4)
|
||||
6:37 -> 6:61 (count=1)
|
||||
7:1 -> 7:2 (count=3)
|
||||
10:9 -> 10:27 (count=1)
|
||||
11:11 -> 11:24 (count=10)
|
||||
12:12 -> 12:26 (count=10)
|
||||
12:27 -> 14:10 (count=0)
|
||||
14:19 -> 14:32 (count=10)
|
||||
14:33 -> 16:10 (count=3)
|
||||
16:10 -> 16:11 (count=15)
|
||||
17:9 -> 17:23 (count=9)
|
||||
19:5 -> 20:2 (count=0)
|
||||
Segment at 5:5 (count = 4), RegionEntry
|
||||
Segment at 5:48 (count = 0), Skipped
|
||||
Segment at 6:16 (count = 4), RegionEntry
|
||||
Segment at 6:21 (count = 0), Skipped
|
||||
Segment at 6:37 (count = 1), RegionEntry
|
||||
Segment at 6:61 (count = 0), Skipped
|
||||
Segment at 7:1 (count = 3), RegionEntry
|
||||
Segment at 7:2 (count = 0), Skipped
|
||||
Segment at 10:9 (count = 1), RegionEntry
|
||||
Segment at 10:27 (count = 0), Skipped
|
||||
Segment at 11:11 (count = 10), RegionEntry
|
||||
Segment at 11:24 (count = 0), Skipped
|
||||
Segment at 12:12 (count = 10), RegionEntry
|
||||
Segment at 12:26 (count = 0), Skipped
|
||||
Segment at 12:27 (count = 0), RegionEntry
|
||||
Segment at 14:10 (count = 0), Skipped
|
||||
Segment at 14:19 (count = 10), RegionEntry
|
||||
Segment at 14:32 (count = 0), Skipped
|
||||
Segment at 14:33 (count = 3), RegionEntry
|
||||
Segment at 16:10 (count = 15), RegionEntry
|
||||
Segment at 16:11 (count = 0), Skipped
|
||||
Segment at 17:9 (count = 9), RegionEntry
|
||||
Segment at 17:23 (count = 0), Skipped
|
||||
Segment at 19:5 (count = 0), RegionEntry
|
||||
Segment at 20:2 (count = 0), Skipped
|
||||
|
|
@ -0,0 +1,84 @@
|
|||
Counter in file 0 15:9 -> 15:75, #1
|
||||
Counter in file 0 15:9 -> 15:75, #1
|
||||
Counter in file 0 15:9 -> 15:75, #1
|
||||
Counter in file 0 47:13 -> 56:54, #1
|
||||
Counter in file 0 59:32 -> 59:35, ((#1 + #2) - #2)
|
||||
Counter in file 0 59:39 -> 59:73, (#1 + #2)
|
||||
Counter in file 0 60:23 -> 60:26, (((#1 + #2) - #2) + 0)
|
||||
Counter in file 0 62:10 -> 62:11, #2
|
||||
Counter in file 0 63:5 -> 63:6, (((#1 + #2) - #2) + 0)
|
||||
Counter in file 0 53:17 -> 53:19, #1
|
||||
Counter in file 0 30:1 -> 30:2, #1
|
||||
Counter in file 0 5:24 -> 5:25, #1
|
||||
Counter in file 0 14:1 -> 14:2, #1
|
||||
Counter in file 0 5:22 -> 5:25, #1
|
||||
Counter in file 0 25:19 -> 26:12, #1
|
||||
Counter in file 0 27:9 -> 27:10, #3
|
||||
Counter in file 0 27:14 -> 27:17, (#1 + 0)
|
||||
Counter in file 0 27:27 -> 27:32, #2
|
||||
Counter in file 0 27:32 -> 27:33, (#2 - #3)
|
||||
Counter in file 0 27:36 -> 27:38, (#3 + 0)
|
||||
Counter in file 0 28:14 -> 28:16, #4
|
||||
Counter in file 0 30:1 -> 30:2, (#3 + #4)
|
||||
Counter in file 0 23:1 -> 23:2, #1
|
||||
Counter in file 0 32:11 -> 37:2, #1
|
||||
Emitting segments for file: ../coverage/async.rs
|
||||
Combined regions:
|
||||
5:22 -> 5:25 (count=1)
|
||||
5:24 -> 5:25 (count=1)
|
||||
14:1 -> 14:2 (count=1)
|
||||
23:1 -> 23:2 (count=1)
|
||||
25:19 -> 26:12 (count=1)
|
||||
27:9 -> 27:10 (count=0)
|
||||
27:14 -> 27:17 (count=1)
|
||||
27:27 -> 27:32 (count=1)
|
||||
27:32 -> 27:33 (count=1)
|
||||
27:36 -> 27:38 (count=0)
|
||||
28:14 -> 28:16 (count=1)
|
||||
30:1 -> 30:2 (count=2)
|
||||
32:11 -> 37:2 (count=1)
|
||||
47:13 -> 56:54 (count=1)
|
||||
53:17 -> 53:19 (count=1)
|
||||
59:32 -> 59:35 (count=1)
|
||||
59:39 -> 59:73 (count=1)
|
||||
60:23 -> 60:26 (count=1)
|
||||
62:10 -> 62:11 (count=0)
|
||||
63:5 -> 63:6 (count=1)
|
||||
Segment at 5:22 (count = 1), RegionEntry
|
||||
Segment at 5:24 (count = 1), RegionEntry
|
||||
Segment at 5:25 (count = 0), Skipped
|
||||
Segment at 14:1 (count = 1), RegionEntry
|
||||
Segment at 14:2 (count = 0), Skipped
|
||||
Segment at 23:1 (count = 1), RegionEntry
|
||||
Segment at 23:2 (count = 0), Skipped
|
||||
Segment at 25:19 (count = 1), RegionEntry
|
||||
Segment at 26:12 (count = 0), Skipped
|
||||
Segment at 27:9 (count = 0), RegionEntry
|
||||
Segment at 27:10 (count = 0), Skipped
|
||||
Segment at 27:14 (count = 1), RegionEntry
|
||||
Segment at 27:17 (count = 0), Skipped
|
||||
Segment at 27:27 (count = 1), RegionEntry
|
||||
Segment at 27:32 (count = 1), RegionEntry
|
||||
Segment at 27:33 (count = 0), Skipped
|
||||
Segment at 27:36 (count = 0), RegionEntry
|
||||
Segment at 27:38 (count = 0), Skipped
|
||||
Segment at 28:14 (count = 1), RegionEntry
|
||||
Segment at 28:16 (count = 0), Skipped
|
||||
Segment at 30:1 (count = 2), RegionEntry
|
||||
Segment at 30:2 (count = 0), Skipped
|
||||
Segment at 32:11 (count = 1), RegionEntry
|
||||
Segment at 37:2 (count = 0), Skipped
|
||||
Segment at 47:13 (count = 1), RegionEntry
|
||||
Segment at 53:17 (count = 1), RegionEntry
|
||||
Segment at 53:19 (count = 1)
|
||||
Segment at 56:54 (count = 0), Skipped
|
||||
Segment at 59:32 (count = 1), RegionEntry
|
||||
Segment at 59:35 (count = 0), Skipped
|
||||
Segment at 59:39 (count = 1), RegionEntry
|
||||
Segment at 59:73 (count = 0), Skipped
|
||||
Segment at 60:23 (count = 1), RegionEntry
|
||||
Segment at 60:26 (count = 0), Skipped
|
||||
Segment at 62:10 (count = 0), RegionEntry
|
||||
Segment at 62:11 (count = 0), Skipped
|
||||
Segment at 63:5 (count = 1), RegionEntry
|
||||
Segment at 63:6 (count = 0), Skipped
|
||||
|
|
@ -1,72 +1,91 @@
|
|||
Counter in file 0 4:9 -> 4:26, #1
|
||||
Counter in file 0 5:8 -> 5:12, (#1 + 0)
|
||||
Counter in file 0 5:13 -> 7:6, #2
|
||||
Counter in file 0 10:9 -> 10:10, (#4 + #11)
|
||||
Counter in file 0 10:9 -> 10:10, (#3 + (#12 + #13))
|
||||
Counter in file 0 10:16 -> 10:29, (#2 + 0)
|
||||
Counter in file 0 11:9 -> 12:10, #4
|
||||
Counter in file 0 11:9 -> 12:10, #3
|
||||
Counter in file 0 13:15 -> 13:28, ((#2 + 0) - #3)
|
||||
Counter in file 0 14:12 -> 14:25, #5
|
||||
Counter in file 0 14:29 -> 14:42, (#5 - #13)
|
||||
Counter in file 0 14:42 -> 14:43, (#13 + #14)
|
||||
Counter in file 0 14:42 -> 14:43, ((#5 - #13) - #14)
|
||||
Counter in file 0 14:46 -> 14:60, #21
|
||||
Counter in file 0 14:60 -> 14:61, (#17 + #18)
|
||||
Counter in file 0 14:60 -> 14:61, (#21 - #18)
|
||||
Counter in file 0 14:61 -> 16:10, #22
|
||||
Counter in file 0 16:10 -> 16:11, #23
|
||||
Counter in file 0 17:9 -> 18:18, #11
|
||||
Counter in file 0 20:9 -> 20:15, (((#2 + 0) - #3) - #5)
|
||||
Counter in file 0 23:9 -> 23:26, ((#4 + #11) + 0)
|
||||
Counter in file 0 24:8 -> 24:12, ((#4 + #11) + 0)
|
||||
Counter in file 0 24:13 -> 26:6, #12
|
||||
Counter in file 0 28:8 -> 28:21, (#12 + 0)
|
||||
Counter in file 0 29:9 -> 29:23, #16
|
||||
Counter in file 0 30:15 -> 30:28, ((#12 + 0) - #15)
|
||||
Counter in file 0 31:12 -> 31:25, (((#12 + 0) - #15) - #8)
|
||||
Counter in file 0 31:29 -> 31:42, ((((#12 + 0) - #15) - #8) - #24)
|
||||
Counter in file 0 31:42 -> 31:43, (((((#12 + 0) - #15) - #8) - #24) - #25)
|
||||
Counter in file 0 14:12 -> 14:25, #4
|
||||
Counter in file 0 14:29 -> 14:42, (#4 - #15)
|
||||
Counter in file 0 14:42 -> 14:43, ((#4 - #15) - #16)
|
||||
Counter in file 0 14:42 -> 14:43, (#15 + #16)
|
||||
Counter in file 0 14:46 -> 14:60, #23
|
||||
Counter in file 0 14:60 -> 14:61, (#18 + #19)
|
||||
Counter in file 0 14:60 -> 14:61, (#23 - #19)
|
||||
Counter in file 0 14:61 -> 16:10, #12
|
||||
Counter in file 0 16:10 -> 16:11, #13
|
||||
Counter in file 0 17:9 -> 18:18, (#12 + #13)
|
||||
Counter in file 0 20:9 -> 20:15, (((#2 + 0) - #3) - #4)
|
||||
Counter in file 0 23:9 -> 23:26, ((#3 + (#12 + #13)) + 0)
|
||||
Counter in file 0 24:8 -> 24:12, ((#3 + (#12 + #13)) + 0)
|
||||
Counter in file 0 24:13 -> 26:6, #14
|
||||
Counter in file 0 28:8 -> 28:21, (#14 + 0)
|
||||
Counter in file 0 28:22 -> 30:6, #17
|
||||
Counter in file 0 30:15 -> 30:28, ((#14 + 0) - #17)
|
||||
Counter in file 0 31:12 -> 31:25, (((#14 + 0) - #17) - #8)
|
||||
Counter in file 0 31:29 -> 31:42, ((((#14 + 0) - #17) - #8) - #24)
|
||||
Counter in file 0 31:42 -> 31:43, (((((#14 + 0) - #17) - #8) - #24) - #25)
|
||||
Counter in file 0 31:42 -> 31:43, (#24 + #25)
|
||||
Counter in file 0 31:46 -> 31:60, #32
|
||||
Counter in file 0 31:60 -> 31:61, (#28 + #29)
|
||||
Counter in file 0 31:60 -> 31:61, (#32 - #29)
|
||||
Counter in file 0 31:61 -> 33:10, #33
|
||||
Counter in file 0 33:10 -> 33:11, #34
|
||||
Counter in file 0 34:9 -> 34:23, #19
|
||||
Counter in file 0 31:46 -> 31:60, #34
|
||||
Counter in file 0 31:60 -> 31:61, (#34 - #32)
|
||||
Counter in file 0 31:60 -> 31:61, (#31 + #32)
|
||||
Counter in file 0 31:61 -> 33:10, #20
|
||||
Counter in file 0 33:10 -> 33:11, #21
|
||||
Counter in file 0 34:9 -> 34:23, (#20 + #21)
|
||||
Counter in file 0 36:9 -> 36:15, #8
|
||||
Counter in file 0 39:9 -> 39:26, (#16 + #19)
|
||||
Counter in file 0 40:8 -> 40:12, ((#16 + #19) + 0)
|
||||
Counter in file 0 40:13 -> 42:6, #20
|
||||
Counter in file 0 44:9 -> 44:10, (#27 + #30)
|
||||
Counter in file 0 44:16 -> 44:29, (#20 + 0)
|
||||
Counter in file 0 45:9 -> 45:23, #27
|
||||
Counter in file 0 46:15 -> 46:28, ((#20 + 0) - #26)
|
||||
Counter in file 0 47:12 -> 47:25, (((#20 + 0) - #26) - #7)
|
||||
Counter in file 0 47:29 -> 47:42, ((((#20 + 0) - #26) - #7) - #35)
|
||||
Counter in file 0 47:42 -> 47:43, (#35 + #36)
|
||||
Counter in file 0 47:42 -> 47:43, (((((#20 + 0) - #26) - #7) - #35) - #36)
|
||||
Counter in file 0 47:46 -> 47:60, #41
|
||||
Counter in file 0 47:60 -> 47:61, (#37 + #38)
|
||||
Counter in file 0 47:60 -> 47:61, (#41 - #38)
|
||||
Counter in file 0 47:61 -> 49:10, #42
|
||||
Counter in file 0 49:10 -> 49:11, #43
|
||||
Counter in file 0 50:9 -> 50:23, #30
|
||||
Counter in file 0 52:13 -> 54:15, #7
|
||||
Counter in file 0 57:9 -> 57:10, (#9 + #10)
|
||||
Counter in file 0 57:16 -> 57:29, ((#27 + #30) + 0)
|
||||
Counter in file 0 58:9 -> 58:23, #9
|
||||
Counter in file 0 59:15 -> 59:28, ((#27 + #30) - #31)
|
||||
Counter in file 0 60:12 -> 60:25, (((#27 + #30) - #31) - #6)
|
||||
Counter in file 0 60:29 -> 60:42, ((((#27 + #30) - #31) - #6) - #39)
|
||||
Counter in file 0 60:42 -> 60:43, (#39 + #40)
|
||||
Counter in file 0 60:42 -> 60:43, (((((#27 + #30) - #31) - #6) - #39) - #40)
|
||||
Counter in file 0 60:46 -> 60:60, #46
|
||||
Counter in file 0 60:60 -> 60:61, (#46 - #45)
|
||||
Counter in file 0 60:60 -> 60:61, (#44 + #45)
|
||||
Counter in file 0 60:61 -> 62:10, #47
|
||||
Counter in file 0 62:10 -> 62:11, #48
|
||||
Counter in file 0 63:9 -> 63:23, #10
|
||||
Counter in file 0 65:9 -> 65:15, #6
|
||||
Counter in file 0 67:1 -> 67:2, ((#9 + #10) + (((#6 + #7) + #8) + (((#2 + 0) - #3) - #5)))
|
||||
Counter in file 0 39:8 -> 39:12, (#17 + (#20 + #21))
|
||||
Counter in file 0 52:13 -> 52:30, #22
|
||||
Counter in file 0 53:12 -> 53:16, (#22 + 0)
|
||||
Counter in file 0 53:17 -> 55:10, #26
|
||||
Counter in file 0 57:12 -> 57:25, (#26 + 0)
|
||||
Counter in file 0 57:26 -> 59:10, #27
|
||||
Counter in file 0 65:17 -> 65:30, ((#26 + 0) - #27)
|
||||
Counter in file 0 66:16 -> 66:29, (((#26 + 0) - #27) - #7)
|
||||
Counter in file 0 66:33 -> 66:46, ((((#26 + 0) - #27) - #7) - #37)
|
||||
Counter in file 0 66:46 -> 66:47, (#37 + #38)
|
||||
Counter in file 0 66:46 -> 66:47, (((((#26 + 0) - #27) - #7) - #37) - #38)
|
||||
Counter in file 0 66:50 -> 66:64, #47
|
||||
Counter in file 0 66:64 -> 66:65, (#47 - #42)
|
||||
Counter in file 0 66:64 -> 66:65, (#41 + #42)
|
||||
Counter in file 0 66:65 -> 68:14, #28
|
||||
Counter in file 0 68:14 -> 68:15, #29
|
||||
Counter in file 0 69:13 -> 69:27, (#28 + #29)
|
||||
Counter in file 0 71:13 -> 71:19, #7
|
||||
Counter in file 0 73:6 -> 73:7, (#27 + (#28 + #29))
|
||||
Counter in file 0 75:9 -> 75:26, ((#27 + (#28 + #29)) + 0)
|
||||
Counter in file 0 76:8 -> 76:12, (((#27 + (#28 + #29)) + 0) + 0)
|
||||
Counter in file 0 76:13 -> 78:6, #30
|
||||
Counter in file 0 80:9 -> 80:10, (#33 + (#35 + #36))
|
||||
Counter in file 0 80:16 -> 80:29, (#30 + 0)
|
||||
Counter in file 0 80:30 -> 82:6, #33
|
||||
Counter in file 0 82:15 -> 82:28, ((#30 + 0) - #33)
|
||||
Counter in file 0 83:12 -> 83:25, (((#30 + 0) - #33) - #6)
|
||||
Counter in file 0 83:29 -> 83:42, ((((#30 + 0) - #33) - #6) - #39)
|
||||
Counter in file 0 83:42 -> 83:43, (#39 + #40)
|
||||
Counter in file 0 83:42 -> 83:43, (((((#30 + 0) - #33) - #6) - #39) - #40)
|
||||
Counter in file 0 83:46 -> 83:60, #48
|
||||
Counter in file 0 83:60 -> 83:61, (#43 + #44)
|
||||
Counter in file 0 83:60 -> 83:61, (#48 - #44)
|
||||
Counter in file 0 83:61 -> 85:10, #35
|
||||
Counter in file 0 85:10 -> 85:11, #36
|
||||
Counter in file 0 86:9 -> 86:23, (#35 + #36)
|
||||
Counter in file 0 88:13 -> 90:15, #6
|
||||
Counter in file 0 93:9 -> 93:10, (#9 + (#10 + #11))
|
||||
Counter in file 0 93:16 -> 93:29, ((#33 + (#35 + #36)) + 0)
|
||||
Counter in file 0 93:30 -> 95:6, #9
|
||||
Counter in file 0 95:15 -> 95:28, ((#33 + (#35 + #36)) - #9)
|
||||
Counter in file 0 96:12 -> 96:25, (((#33 + (#35 + #36)) - #9) - #5)
|
||||
Counter in file 0 96:29 -> 96:42, ((((#33 + (#35 + #36)) - #9) - #5) - #45)
|
||||
Counter in file 0 96:42 -> 96:43, (#45 + #46)
|
||||
Counter in file 0 96:42 -> 96:43, (((((#33 + (#35 + #36)) - #9) - #5) - #45) - #46)
|
||||
Counter in file 0 96:46 -> 96:60, #51
|
||||
Counter in file 0 96:60 -> 96:61, (#49 + #50)
|
||||
Counter in file 0 96:60 -> 96:61, (#51 - #50)
|
||||
Counter in file 0 96:61 -> 98:10, #10
|
||||
Counter in file 0 98:10 -> 98:11, #11
|
||||
Counter in file 0 99:9 -> 99:23, (#10 + #11)
|
||||
Counter in file 0 101:9 -> 101:15, #5
|
||||
Counter in file 0 103:1 -> 103:2, ((#9 + (#10 + #11)) + (((#5 + #6) + (#7 + #8)) + (((#2 + 0) - #3) - #4)))
|
||||
Emitting segments for file: ../coverage/conditions.rs
|
||||
Combined regions:
|
||||
4:9 -> 4:26 (count=1)
|
||||
|
|
@ -89,7 +108,7 @@ Combined regions:
|
|||
24:8 -> 24:12 (count=1)
|
||||
24:13 -> 26:6 (count=1)
|
||||
28:8 -> 28:21 (count=1)
|
||||
29:9 -> 29:23 (count=1)
|
||||
28:22 -> 30:6 (count=1)
|
||||
30:15 -> 30:28 (count=0)
|
||||
31:12 -> 31:25 (count=0)
|
||||
31:29 -> 31:42 (count=0)
|
||||
|
|
@ -100,36 +119,53 @@ Combined regions:
|
|||
33:10 -> 33:11 (count=0)
|
||||
34:9 -> 34:23 (count=0)
|
||||
36:9 -> 36:15 (count=0)
|
||||
39:9 -> 39:26 (count=1)
|
||||
40:8 -> 40:12 (count=1)
|
||||
40:13 -> 42:6 (count=1)
|
||||
44:9 -> 44:10 (count=0)
|
||||
44:16 -> 44:29 (count=1)
|
||||
45:9 -> 45:23 (count=0)
|
||||
46:15 -> 46:28 (count=1)
|
||||
47:12 -> 47:25 (count=0)
|
||||
47:29 -> 47:42 (count=0)
|
||||
47:42 -> 47:43 (count=0)
|
||||
47:46 -> 47:60 (count=0)
|
||||
47:60 -> 47:61 (count=0)
|
||||
47:61 -> 49:10 (count=0)
|
||||
49:10 -> 49:11 (count=0)
|
||||
50:9 -> 50:23 (count=0)
|
||||
52:13 -> 54:15 (count=1)
|
||||
57:9 -> 57:10 (count=0)
|
||||
57:16 -> 57:29 (count=0)
|
||||
58:9 -> 58:23 (count=0)
|
||||
59:15 -> 59:28 (count=0)
|
||||
60:12 -> 60:25 (count=0)
|
||||
60:29 -> 60:42 (count=0)
|
||||
60:42 -> 60:43 (count=0)
|
||||
60:46 -> 60:60 (count=0)
|
||||
60:60 -> 60:61 (count=0)
|
||||
60:61 -> 62:10 (count=0)
|
||||
62:10 -> 62:11 (count=0)
|
||||
63:9 -> 63:23 (count=0)
|
||||
65:9 -> 65:15 (count=0)
|
||||
67:1 -> 67:2 (count=1)
|
||||
39:8 -> 39:12 (count=1)
|
||||
52:13 -> 52:30 (count=1)
|
||||
53:12 -> 53:16 (count=1)
|
||||
53:17 -> 55:10 (count=1)
|
||||
57:12 -> 57:25 (count=1)
|
||||
57:26 -> 59:10 (count=1)
|
||||
65:17 -> 65:30 (count=0)
|
||||
66:16 -> 66:29 (count=0)
|
||||
66:33 -> 66:46 (count=0)
|
||||
66:46 -> 66:47 (count=0)
|
||||
66:50 -> 66:64 (count=0)
|
||||
66:64 -> 66:65 (count=0)
|
||||
66:65 -> 68:14 (count=0)
|
||||
68:14 -> 68:15 (count=0)
|
||||
69:13 -> 69:27 (count=0)
|
||||
71:13 -> 71:19 (count=0)
|
||||
73:6 -> 73:7 (count=1)
|
||||
75:9 -> 75:26 (count=1)
|
||||
76:8 -> 76:12 (count=1)
|
||||
76:13 -> 78:6 (count=1)
|
||||
80:9 -> 80:10 (count=0)
|
||||
80:16 -> 80:29 (count=1)
|
||||
80:30 -> 82:6 (count=0)
|
||||
82:15 -> 82:28 (count=1)
|
||||
83:12 -> 83:25 (count=0)
|
||||
83:29 -> 83:42 (count=0)
|
||||
83:42 -> 83:43 (count=0)
|
||||
83:46 -> 83:60 (count=0)
|
||||
83:60 -> 83:61 (count=0)
|
||||
83:61 -> 85:10 (count=0)
|
||||
85:10 -> 85:11 (count=0)
|
||||
86:9 -> 86:23 (count=0)
|
||||
88:13 -> 90:15 (count=1)
|
||||
93:9 -> 93:10 (count=0)
|
||||
93:16 -> 93:29 (count=0)
|
||||
93:30 -> 95:6 (count=0)
|
||||
95:15 -> 95:28 (count=0)
|
||||
96:12 -> 96:25 (count=0)
|
||||
96:29 -> 96:42 (count=0)
|
||||
96:42 -> 96:43 (count=0)
|
||||
96:46 -> 96:60 (count=0)
|
||||
96:60 -> 96:61 (count=0)
|
||||
96:61 -> 98:10 (count=0)
|
||||
98:10 -> 98:11 (count=0)
|
||||
99:9 -> 99:23 (count=0)
|
||||
101:9 -> 101:15 (count=0)
|
||||
103:1 -> 103:2 (count=1)
|
||||
Segment at 4:9 (count = 1), RegionEntry
|
||||
Segment at 4:26 (count = 0), Skipped
|
||||
Segment at 5:8 (count = 1), RegionEntry
|
||||
|
|
@ -166,8 +202,8 @@ Segment at 24:13 (count = 1), RegionEntry
|
|||
Segment at 26:6 (count = 0), Skipped
|
||||
Segment at 28:8 (count = 1), RegionEntry
|
||||
Segment at 28:21 (count = 0), Skipped
|
||||
Segment at 29:9 (count = 1), RegionEntry
|
||||
Segment at 29:23 (count = 0), Skipped
|
||||
Segment at 28:22 (count = 1), RegionEntry
|
||||
Segment at 30:6 (count = 0), Skipped
|
||||
Segment at 30:15 (count = 0), RegionEntry
|
||||
Segment at 30:28 (count = 0), Skipped
|
||||
Segment at 31:12 (count = 0), RegionEntry
|
||||
|
|
@ -184,55 +220,85 @@ Segment at 34:9 (count = 0), RegionEntry
|
|||
Segment at 34:23 (count = 0), Skipped
|
||||
Segment at 36:9 (count = 0), RegionEntry
|
||||
Segment at 36:15 (count = 0), Skipped
|
||||
Segment at 39:9 (count = 1), RegionEntry
|
||||
Segment at 39:26 (count = 0), Skipped
|
||||
Segment at 40:8 (count = 1), RegionEntry
|
||||
Segment at 40:12 (count = 0), Skipped
|
||||
Segment at 40:13 (count = 1), RegionEntry
|
||||
Segment at 42:6 (count = 0), Skipped
|
||||
Segment at 44:9 (count = 0), RegionEntry
|
||||
Segment at 44:10 (count = 0), Skipped
|
||||
Segment at 44:16 (count = 1), RegionEntry
|
||||
Segment at 44:29 (count = 0), Skipped
|
||||
Segment at 45:9 (count = 0), RegionEntry
|
||||
Segment at 45:23 (count = 0), Skipped
|
||||
Segment at 46:15 (count = 1), RegionEntry
|
||||
Segment at 46:28 (count = 0), Skipped
|
||||
Segment at 47:12 (count = 0), RegionEntry
|
||||
Segment at 47:25 (count = 0), Skipped
|
||||
Segment at 47:29 (count = 0), RegionEntry
|
||||
Segment at 47:42 (count = 0), RegionEntry
|
||||
Segment at 47:43 (count = 0), Skipped
|
||||
Segment at 47:46 (count = 0), RegionEntry
|
||||
Segment at 47:60 (count = 0), RegionEntry
|
||||
Segment at 47:61 (count = 0), RegionEntry
|
||||
Segment at 49:10 (count = 0), RegionEntry
|
||||
Segment at 49:11 (count = 0), Skipped
|
||||
Segment at 50:9 (count = 0), RegionEntry
|
||||
Segment at 50:23 (count = 0), Skipped
|
||||
Segment at 39:8 (count = 1), RegionEntry
|
||||
Segment at 39:12 (count = 0), Skipped
|
||||
Segment at 52:13 (count = 1), RegionEntry
|
||||
Segment at 54:15 (count = 0), Skipped
|
||||
Segment at 57:9 (count = 0), RegionEntry
|
||||
Segment at 57:10 (count = 0), Skipped
|
||||
Segment at 57:16 (count = 0), RegionEntry
|
||||
Segment at 57:29 (count = 0), Skipped
|
||||
Segment at 58:9 (count = 0), RegionEntry
|
||||
Segment at 58:23 (count = 0), Skipped
|
||||
Segment at 59:15 (count = 0), RegionEntry
|
||||
Segment at 59:28 (count = 0), Skipped
|
||||
Segment at 60:12 (count = 0), RegionEntry
|
||||
Segment at 60:25 (count = 0), Skipped
|
||||
Segment at 60:29 (count = 0), RegionEntry
|
||||
Segment at 60:42 (count = 0), RegionEntry
|
||||
Segment at 60:43 (count = 0), Skipped
|
||||
Segment at 60:46 (count = 0), RegionEntry
|
||||
Segment at 60:60 (count = 0), RegionEntry
|
||||
Segment at 60:61 (count = 0), RegionEntry
|
||||
Segment at 62:10 (count = 0), RegionEntry
|
||||
Segment at 62:11 (count = 0), Skipped
|
||||
Segment at 63:9 (count = 0), RegionEntry
|
||||
Segment at 63:23 (count = 0), Skipped
|
||||
Segment at 65:9 (count = 0), RegionEntry
|
||||
Segment at 65:15 (count = 0), Skipped
|
||||
Segment at 67:1 (count = 1), RegionEntry
|
||||
Segment at 67:2 (count = 0), Skipped
|
||||
Segment at 52:30 (count = 0), Skipped
|
||||
Segment at 53:12 (count = 1), RegionEntry
|
||||
Segment at 53:16 (count = 0), Skipped
|
||||
Segment at 53:17 (count = 1), RegionEntry
|
||||
Segment at 55:10 (count = 0), Skipped
|
||||
Segment at 57:12 (count = 1), RegionEntry
|
||||
Segment at 57:25 (count = 0), Skipped
|
||||
Segment at 57:26 (count = 1), RegionEntry
|
||||
Segment at 59:10 (count = 0), Skipped
|
||||
Segment at 65:17 (count = 0), RegionEntry
|
||||
Segment at 65:30 (count = 0), Skipped
|
||||
Segment at 66:16 (count = 0), RegionEntry
|
||||
Segment at 66:29 (count = 0), Skipped
|
||||
Segment at 66:33 (count = 0), RegionEntry
|
||||
Segment at 66:46 (count = 0), RegionEntry
|
||||
Segment at 66:47 (count = 0), Skipped
|
||||
Segment at 66:50 (count = 0), RegionEntry
|
||||
Segment at 66:64 (count = 0), RegionEntry
|
||||
Segment at 66:65 (count = 0), RegionEntry
|
||||
Segment at 68:14 (count = 0), RegionEntry
|
||||
Segment at 68:15 (count = 0), Skipped
|
||||
Segment at 69:13 (count = 0), RegionEntry
|
||||
Segment at 69:27 (count = 0), Skipped
|
||||
Segment at 71:13 (count = 0), RegionEntry
|
||||
Segment at 71:19 (count = 0), Skipped
|
||||
Segment at 73:6 (count = 1), RegionEntry
|
||||
Segment at 73:7 (count = 0), Skipped
|
||||
Segment at 75:9 (count = 1), RegionEntry
|
||||
Segment at 75:26 (count = 0), Skipped
|
||||
Segment at 76:8 (count = 1), RegionEntry
|
||||
Segment at 76:12 (count = 0), Skipped
|
||||
Segment at 76:13 (count = 1), RegionEntry
|
||||
Segment at 78:6 (count = 0), Skipped
|
||||
Segment at 80:9 (count = 0), RegionEntry
|
||||
Segment at 80:10 (count = 0), Skipped
|
||||
Segment at 80:16 (count = 1), RegionEntry
|
||||
Segment at 80:29 (count = 0), Skipped
|
||||
Segment at 80:30 (count = 0), RegionEntry
|
||||
Segment at 82:6 (count = 0), Skipped
|
||||
Segment at 82:15 (count = 1), RegionEntry
|
||||
Segment at 82:28 (count = 0), Skipped
|
||||
Segment at 83:12 (count = 0), RegionEntry
|
||||
Segment at 83:25 (count = 0), Skipped
|
||||
Segment at 83:29 (count = 0), RegionEntry
|
||||
Segment at 83:42 (count = 0), RegionEntry
|
||||
Segment at 83:43 (count = 0), Skipped
|
||||
Segment at 83:46 (count = 0), RegionEntry
|
||||
Segment at 83:60 (count = 0), RegionEntry
|
||||
Segment at 83:61 (count = 0), RegionEntry
|
||||
Segment at 85:10 (count = 0), RegionEntry
|
||||
Segment at 85:11 (count = 0), Skipped
|
||||
Segment at 86:9 (count = 0), RegionEntry
|
||||
Segment at 86:23 (count = 0), Skipped
|
||||
Segment at 88:13 (count = 1), RegionEntry
|
||||
Segment at 90:15 (count = 0), Skipped
|
||||
Segment at 93:9 (count = 0), RegionEntry
|
||||
Segment at 93:10 (count = 0), Skipped
|
||||
Segment at 93:16 (count = 0), RegionEntry
|
||||
Segment at 93:29 (count = 0), Skipped
|
||||
Segment at 93:30 (count = 0), RegionEntry
|
||||
Segment at 95:6 (count = 0), Skipped
|
||||
Segment at 95:15 (count = 0), RegionEntry
|
||||
Segment at 95:28 (count = 0), Skipped
|
||||
Segment at 96:12 (count = 0), RegionEntry
|
||||
Segment at 96:25 (count = 0), Skipped
|
||||
Segment at 96:29 (count = 0), RegionEntry
|
||||
Segment at 96:42 (count = 0), RegionEntry
|
||||
Segment at 96:43 (count = 0), Skipped
|
||||
Segment at 96:46 (count = 0), RegionEntry
|
||||
Segment at 96:60 (count = 0), RegionEntry
|
||||
Segment at 96:61 (count = 0), RegionEntry
|
||||
Segment at 98:10 (count = 0), RegionEntry
|
||||
Segment at 98:11 (count = 0), Skipped
|
||||
Segment at 99:9 (count = 0), RegionEntry
|
||||
Segment at 99:23 (count = 0), Skipped
|
||||
Segment at 101:9 (count = 0), RegionEntry
|
||||
Segment at 101:15 (count = 0), Skipped
|
||||
Segment at 103:1 (count = 1), RegionEntry
|
||||
Segment at 103:2 (count = 0), Skipped
|
||||
|
|
|
|||
|
|
@ -1,7 +1,4 @@
|
|||
Counter in file 0 19:13 -> 19:18, #1
|
||||
Counter in file 0 20:13 -> 20:14, #2
|
||||
Counter in file 0 20:17 -> 20:22, (#1 + 0)
|
||||
Counter in file 0 21:9 -> 22:6, (#2 + 0)
|
||||
Counter in file 0 19:13 -> 22:6, #1
|
||||
Counter in file 0 7:9 -> 9:26, #1
|
||||
Counter in file 0 10:8 -> 10:15, (#1 + 0)
|
||||
Counter in file 0 10:16 -> 12:6, #2
|
||||
|
|
@ -11,21 +8,16 @@ Counter in file 0 48:16 -> 50:6, #3
|
|||
Counter in file 0 50:6 -> 50:7, ((#2 + (#1 - #2)) - #3)
|
||||
Counter in file 0 52:9 -> 57:2, (#3 + ((#2 + (#1 - #2)) - #3))
|
||||
Counter in file 0 33:42 -> 36:10, #1
|
||||
Counter in file 0 41:37 -> 41:41, #1
|
||||
Counter in file 0 42:13 -> 43:10, #2
|
||||
Counter in file 0 40:45 -> 43:10, #1
|
||||
Emitting segments for file: ../coverage/inner_items.rs
|
||||
Combined regions:
|
||||
7:9 -> 9:26 (count=1)
|
||||
10:8 -> 10:15 (count=1)
|
||||
10:16 -> 12:6 (count=1)
|
||||
12:6 -> 12:7 (count=0)
|
||||
19:13 -> 19:18 (count=3)
|
||||
20:13 -> 20:14 (count=3)
|
||||
20:17 -> 20:22 (count=3)
|
||||
21:9 -> 22:6 (count=3)
|
||||
19:13 -> 22:6 (count=3)
|
||||
33:42 -> 36:10 (count=1)
|
||||
41:37 -> 41:41 (count=1)
|
||||
42:13 -> 43:10 (count=1)
|
||||
40:45 -> 43:10 (count=1)
|
||||
48:8 -> 48:15 (count=1)
|
||||
48:16 -> 50:6 (count=1)
|
||||
50:6 -> 50:7 (count=0)
|
||||
|
|
@ -38,18 +30,10 @@ Segment at 10:16 (count = 1), RegionEntry
|
|||
Segment at 12:6 (count = 0), RegionEntry
|
||||
Segment at 12:7 (count = 0), Skipped
|
||||
Segment at 19:13 (count = 3), RegionEntry
|
||||
Segment at 19:18 (count = 0), Skipped
|
||||
Segment at 20:13 (count = 3), RegionEntry
|
||||
Segment at 20:14 (count = 0), Skipped
|
||||
Segment at 20:17 (count = 3), RegionEntry
|
||||
Segment at 20:22 (count = 0), Skipped
|
||||
Segment at 21:9 (count = 3), RegionEntry
|
||||
Segment at 22:6 (count = 0), Skipped
|
||||
Segment at 33:42 (count = 1), RegionEntry
|
||||
Segment at 36:10 (count = 0), Skipped
|
||||
Segment at 41:37 (count = 1), RegionEntry
|
||||
Segment at 41:41 (count = 0), Skipped
|
||||
Segment at 42:13 (count = 1), RegionEntry
|
||||
Segment at 40:45 (count = 1), RegionEntry
|
||||
Segment at 43:10 (count = 0), Skipped
|
||||
Segment at 48:8 (count = 1), RegionEntry
|
||||
Segment at 48:15 (count = 0), Skipped
|
||||
|
|
|
|||
|
|
@ -1,21 +1,20 @@
|
|||
Counter in file 0 2:9 -> 3:27, #1
|
||||
Counter in file 0 5:19 -> 5:32, (#1 + #2)
|
||||
Counter in file 0 6:13 -> 7:24, ((#1 + #2) - #3)
|
||||
Counter in file 0 8:13 -> 8:14, ((((#1 + #2) - #3) + (#5 + #6)) - #7)
|
||||
Counter in file 0 8:18 -> 8:23, (((#1 + #2) - #3) + (#5 + #6))
|
||||
Counter in file 0 9:16 -> 9:22, (((((#1 + #2) - #3) + (#5 + #6)) - #7) + 0)
|
||||
Counter in file 0 10:17 -> 10:22, #8
|
||||
Counter in file 0 12:13 -> 12:19, #9
|
||||
Counter in file 0 13:13 -> 13:19, #10
|
||||
Counter in file 0 14:16 -> 14:22, (#10 + 0)
|
||||
Counter in file 0 15:17 -> 16:27, #11
|
||||
Counter in file 0 17:21 -> 17:33, #4
|
||||
Counter in file 0 19:21 -> 21:14, #5
|
||||
Counter in file 0 21:14 -> 21:15, #6
|
||||
Counter in file 0 22:10 -> 22:11, (#5 + #6)
|
||||
Counter in file 0 23:9 -> 23:23, #2
|
||||
Counter in file 0 24:6 -> 24:7, #3
|
||||
Counter in file 0 25:1 -> 25:2, (#4 + #3)
|
||||
Counter in file 0 5:19 -> 5:32, (#1 + (#2 + #3))
|
||||
Counter in file 0 6:13 -> 7:24, ((#1 + (#2 + #3)) - #4)
|
||||
Counter in file 0 8:13 -> 8:14, ((((#1 + (#2 + #3)) - #4) + (#6 + #7)) - #3)
|
||||
Counter in file 0 8:18 -> 8:23, (((#1 + (#2 + #3)) - #4) + (#6 + #7))
|
||||
Counter in file 0 9:16 -> 9:22, (((((#1 + (#2 + #3)) - #4) + (#6 + #7)) - #3) + 0)
|
||||
Counter in file 0 10:17 -> 10:22, #2
|
||||
Counter in file 0 12:13 -> 13:19, (((((#1 + (#2 + #3)) - #4) + (#6 + #7)) - #3) - #2)
|
||||
Counter in file 0 14:16 -> 14:22, ((((((#1 + (#2 + #3)) - #4) + (#6 + #7)) - #3) - #2) + 0)
|
||||
Counter in file 0 15:17 -> 16:27, ((((((#1 + (#2 + #3)) - #4) + (#6 + #7)) - #3) - #2) - #7)
|
||||
Counter in file 0 17:21 -> 17:33, #5
|
||||
Counter in file 0 18:24 -> 21:14, #6
|
||||
Counter in file 0 21:14 -> 21:15, #7
|
||||
Counter in file 0 22:10 -> 22:11, (#6 + #7)
|
||||
Counter in file 0 23:9 -> 23:23, (#2 + #3)
|
||||
Counter in file 0 24:6 -> 24:7, #4
|
||||
Counter in file 0 25:1 -> 25:2, (#5 + #4)
|
||||
Emitting segments for file: ../coverage/nested_loops.rs
|
||||
Combined regions:
|
||||
2:9 -> 3:27 (count=1)
|
||||
|
|
@ -25,12 +24,11 @@ Combined regions:
|
|||
8:18 -> 8:23 (count=3)
|
||||
9:16 -> 9:22 (count=3)
|
||||
10:17 -> 10:22 (count=0)
|
||||
12:13 -> 12:19 (count=3)
|
||||
13:13 -> 13:19 (count=3)
|
||||
12:13 -> 13:19 (count=3)
|
||||
14:16 -> 14:22 (count=3)
|
||||
15:17 -> 16:27 (count=1)
|
||||
17:21 -> 17:33 (count=1)
|
||||
19:21 -> 21:14 (count=0)
|
||||
18:24 -> 21:14 (count=0)
|
||||
21:14 -> 21:15 (count=2)
|
||||
22:10 -> 22:11 (count=2)
|
||||
23:9 -> 23:23 (count=0)
|
||||
|
|
@ -51,8 +49,6 @@ Segment at 9:22 (count = 0), Skipped
|
|||
Segment at 10:17 (count = 0), RegionEntry
|
||||
Segment at 10:22 (count = 0), Skipped
|
||||
Segment at 12:13 (count = 3), RegionEntry
|
||||
Segment at 12:19 (count = 0), Skipped
|
||||
Segment at 13:13 (count = 3), RegionEntry
|
||||
Segment at 13:19 (count = 0), Skipped
|
||||
Segment at 14:16 (count = 3), RegionEntry
|
||||
Segment at 14:22 (count = 0), Skipped
|
||||
|
|
@ -60,7 +56,7 @@ Segment at 15:17 (count = 1), RegionEntry
|
|||
Segment at 16:27 (count = 0), Skipped
|
||||
Segment at 17:21 (count = 1), RegionEntry
|
||||
Segment at 17:33 (count = 0), Skipped
|
||||
Segment at 19:21 (count = 0), RegionEntry
|
||||
Segment at 18:24 (count = 0), RegionEntry
|
||||
Segment at 21:14 (count = 2), RegionEntry
|
||||
Segment at 21:15 (count = 0), Skipped
|
||||
Segment at 22:10 (count = 2), RegionEntry
|
||||
|
|
|
|||
|
|
@ -0,0 +1,53 @@
|
|||
Counter in file 0 16:9 -> 16:27, #1
|
||||
Counter in file 0 17:11 -> 17:24, (#1 + (#2 + (#3 + #4)))
|
||||
Counter in file 0 18:12 -> 18:26, ((#1 + (#2 + (#3 + #4))) - #5)
|
||||
Counter in file 0 18:27 -> 21:10, #2
|
||||
Counter in file 0 21:19 -> 21:32, (((#1 + (#2 + (#3 + #4))) - #5) - #2)
|
||||
Counter in file 0 21:33 -> 24:10, #3
|
||||
Counter in file 0 24:10 -> 24:11, #4
|
||||
Counter in file 0 24:10 -> 24:11, (#3 + #4)
|
||||
Counter in file 0 25:9 -> 25:23, (#2 + (#3 + #4))
|
||||
Counter in file 0 27:5 -> 28:2, #5
|
||||
Counter in file 0 5:8 -> 5:18, #1
|
||||
Counter in file 0 5:19 -> 7:6, #2
|
||||
Counter in file 0 7:6 -> 7:7, (#1 - #2)
|
||||
Counter in file 0 8:9 -> 13:2, (#2 + (#1 - #2))
|
||||
Emitting segments for file: ../coverage/overflow.rs
|
||||
Combined regions:
|
||||
5:8 -> 5:18 (count=4)
|
||||
5:19 -> 7:6 (count=1)
|
||||
7:6 -> 7:7 (count=3)
|
||||
8:9 -> 13:2 (count=4)
|
||||
16:9 -> 16:27 (count=1)
|
||||
17:11 -> 17:24 (count=10)
|
||||
18:12 -> 18:26 (count=10)
|
||||
18:27 -> 21:10 (count=0)
|
||||
21:19 -> 21:32 (count=10)
|
||||
21:33 -> 24:10 (count=3)
|
||||
24:10 -> 24:11 (count=15)
|
||||
25:9 -> 25:23 (count=9)
|
||||
27:5 -> 28:2 (count=0)
|
||||
Segment at 5:8 (count = 4), RegionEntry
|
||||
Segment at 5:18 (count = 0), Skipped
|
||||
Segment at 5:19 (count = 1), RegionEntry
|
||||
Segment at 7:6 (count = 3), RegionEntry
|
||||
Segment at 7:7 (count = 0), Skipped
|
||||
Segment at 8:9 (count = 4), RegionEntry
|
||||
Segment at 13:2 (count = 0), Skipped
|
||||
Segment at 16:9 (count = 1), RegionEntry
|
||||
Segment at 16:27 (count = 0), Skipped
|
||||
Segment at 17:11 (count = 10), RegionEntry
|
||||
Segment at 17:24 (count = 0), Skipped
|
||||
Segment at 18:12 (count = 10), RegionEntry
|
||||
Segment at 18:26 (count = 0), Skipped
|
||||
Segment at 18:27 (count = 0), RegionEntry
|
||||
Segment at 21:10 (count = 0), Skipped
|
||||
Segment at 21:19 (count = 10), RegionEntry
|
||||
Segment at 21:32 (count = 0), Skipped
|
||||
Segment at 21:33 (count = 3), RegionEntry
|
||||
Segment at 24:10 (count = 15), RegionEntry
|
||||
Segment at 24:11 (count = 0), Skipped
|
||||
Segment at 25:9 (count = 9), RegionEntry
|
||||
Segment at 25:23 (count = 0), Skipped
|
||||
Segment at 27:5 (count = 0), RegionEntry
|
||||
Segment at 28:2 (count = 0), Skipped
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
Counter in file 0 14:9 -> 14:27, #1
|
||||
Counter in file 0 15:11 -> 15:24, (#1 + (#2 + (#3 + #4)))
|
||||
Counter in file 0 16:12 -> 16:26, ((#1 + (#2 + (#3 + #4))) - #5)
|
||||
Counter in file 0 16:27 -> 18:10, #2
|
||||
Counter in file 0 18:19 -> 18:32, (((#1 + (#2 + (#3 + #4))) - #5) - #2)
|
||||
Counter in file 0 18:33 -> 20:10, #3
|
||||
Counter in file 0 20:10 -> 20:11, #4
|
||||
Counter in file 0 20:10 -> 20:11, (#3 + #4)
|
||||
Counter in file 0 21:9 -> 21:23, (#2 + (#3 + #4))
|
||||
Counter in file 0 23:5 -> 24:2, #5
|
||||
Counter in file 0 5:8 -> 5:20, #1
|
||||
Counter in file 0 6:9 -> 7:26, #2
|
||||
Counter in file 0 8:12 -> 11:2, (#1 - #2)
|
||||
Emitting segments for file: ../coverage/panic_unwind.rs
|
||||
Combined regions:
|
||||
5:8 -> 5:20 (count=4)
|
||||
6:9 -> 7:26 (count=1)
|
||||
8:12 -> 11:2 (count=3)
|
||||
14:9 -> 14:27 (count=1)
|
||||
15:11 -> 15:24 (count=10)
|
||||
16:12 -> 16:26 (count=10)
|
||||
16:27 -> 18:10 (count=0)
|
||||
18:19 -> 18:32 (count=10)
|
||||
18:33 -> 20:10 (count=3)
|
||||
20:10 -> 20:11 (count=15)
|
||||
21:9 -> 21:23 (count=9)
|
||||
23:5 -> 24:2 (count=0)
|
||||
Segment at 5:8 (count = 4), RegionEntry
|
||||
Segment at 5:20 (count = 0), Skipped
|
||||
Segment at 6:9 (count = 1), RegionEntry
|
||||
Segment at 7:26 (count = 0), Skipped
|
||||
Segment at 8:12 (count = 3), RegionEntry
|
||||
Segment at 11:2 (count = 0), Skipped
|
||||
Segment at 14:9 (count = 1), RegionEntry
|
||||
Segment at 14:27 (count = 0), Skipped
|
||||
Segment at 15:11 (count = 10), RegionEntry
|
||||
Segment at 15:24 (count = 0), Skipped
|
||||
Segment at 16:12 (count = 10), RegionEntry
|
||||
Segment at 16:26 (count = 0), Skipped
|
||||
Segment at 16:27 (count = 0), RegionEntry
|
||||
Segment at 18:10 (count = 0), Skipped
|
||||
Segment at 18:19 (count = 10), RegionEntry
|
||||
Segment at 18:32 (count = 0), Skipped
|
||||
Segment at 18:33 (count = 3), RegionEntry
|
||||
Segment at 20:10 (count = 15), RegionEntry
|
||||
Segment at 20:11 (count = 0), Skipped
|
||||
Segment at 21:9 (count = 9), RegionEntry
|
||||
Segment at 21:23 (count = 0), Skipped
|
||||
Segment at 23:5 (count = 0), RegionEntry
|
||||
Segment at 24:2 (count = 0), Skipped
|
||||
|
|
@ -3,10 +3,10 @@ Counter in file 0 12:9 -> 12:16, (#1 + 0)
|
|||
Counter in file 0 13:5 -> 18:6, #2
|
||||
Counter in file 0 18:6 -> 18:7, (#1 - #2)
|
||||
Counter in file 0 23:13 -> 25:14, ((#2 + (#1 - #2)) + #3)
|
||||
Counter in file 0 27:13 -> 27:18, #4
|
||||
Counter in file 0 27:13 -> 27:18, (((#2 + (#1 - #2)) + #3) - #3)
|
||||
Counter in file 0 30:9 -> 32:10, #3
|
||||
Counter in file 0 34:6 -> 34:7, (#2 + (#1 - #2))
|
||||
Counter in file 0 35:1 -> 35:2, (#4 + 0)
|
||||
Counter in file 0 35:1 -> 35:2, ((((#2 + (#1 - #2)) + #3) - #3) + 0)
|
||||
Emitting segments for file: ../coverage/simple_loop.rs
|
||||
Combined regions:
|
||||
7:9 -> 9:26 (count=1)
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
Counter in file 0 13:9 -> 14:23, #1
|
||||
Counter in file 0 17:9 -> 17:10, ((#1 + (#2 + #3)) - #4)
|
||||
Counter in file 0 19:9 -> 19:14, (#1 + (#2 + #3))
|
||||
Counter in file 0 21:9 -> 25:26, #8
|
||||
Counter in file 0 27:13 -> 27:41, #9
|
||||
Counter in file 0 21:9 -> 25:26, (((#1 + (#2 + #3)) - #4) + 0)
|
||||
Counter in file 0 27:13 -> 27:41, #8
|
||||
Counter in file 0 27:41 -> 27:42, #5
|
||||
Counter in file 0 28:13 -> 28:42, (#9 - #5)
|
||||
Counter in file 0 28:13 -> 28:42, (#8 - #5)
|
||||
Counter in file 0 28:42 -> 28:43, #6
|
||||
Counter in file 0 32:13 -> 32:42, (#8 - #9)
|
||||
Counter in file 0 32:13 -> 32:42, (((#1 + (#2 + #3)) - #4) - #8)
|
||||
Counter in file 0 32:42 -> 32:43, #7
|
||||
Counter in file 0 33:10 -> 33:11, #2
|
||||
Counter in file 0 33:10 -> 33:11, #3
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
Counter in file 0 5:9 -> 5:27, #1
|
||||
Counter in file 0 7:9 -> 9:10, (#1 + #2)
|
||||
Counter in file 0 12:13 -> 14:14, ((#1 + #2) - #3)
|
||||
Counter in file 0 18:21 -> 20:22, #6
|
||||
Counter in file 0 18:21 -> 20:22, (((#1 + #2) - #3) - #2)
|
||||
Counter in file 0 22:21 -> 22:27, #4
|
||||
Counter in file 0 26:21 -> 26:27, #5
|
||||
Counter in file 0 30:9 -> 32:10, #2
|
||||
|
|
|
|||
|
|
@ -0,0 +1,90 @@
|
|||
Counter in file 0 8:9 -> 8:22, #1
|
||||
Counter in file 0 13:11 -> 14:35, (#1 + 0)
|
||||
Counter in file 0 14:39 -> 14:41, #4
|
||||
Counter in file 0 15:14 -> 15:52, (#2 + #3)
|
||||
Counter in file 0 17:11 -> 17:46, (#4 + 0)
|
||||
Counter in file 0 18:34 -> 18:39, (#4 - #5)
|
||||
Counter in file 0 18:44 -> 18:46, ((#4 - #5) - #6)
|
||||
Counter in file 0 19:14 -> 19:52, (#5 + #6)
|
||||
Counter in file 0 22:9 -> 22:22, (((#4 - #5) - #6) + 0)
|
||||
Counter in file 0 29:11 -> 30:35, (((#4 - #5) - #6) + 0)
|
||||
Counter in file 0 30:39 -> 30:41, #9
|
||||
Counter in file 0 31:14 -> 31:52, (#7 + #8)
|
||||
Counter in file 0 33:11 -> 34:35, (#9 + 0)
|
||||
Counter in file 0 34:39 -> 34:41, #12
|
||||
Counter in file 0 35:14 -> 35:52, (#10 + #11)
|
||||
Counter in file 0 37:1 -> 37:2, (#12 + 0)
|
||||
Counter in file 0 9:9 -> 9:16, #1
|
||||
Counter in file 0 10:16 -> 11:6, #2
|
||||
Counter in file 0 23:9 -> 23:16, #1
|
||||
Counter in file 0 24:9 -> 24:16, #2
|
||||
Counter in file 0 25:9 -> 25:16, #3
|
||||
Counter in file 0 26:16 -> 27:6, #4
|
||||
Emitting segments for file: ../coverage/yield.rs
|
||||
Combined regions:
|
||||
8:9 -> 8:22 (count=1)
|
||||
9:9 -> 9:16 (count=1)
|
||||
10:16 -> 11:6 (count=1)
|
||||
13:11 -> 14:35 (count=1)
|
||||
14:39 -> 14:41 (count=1)
|
||||
15:14 -> 15:52 (count=0)
|
||||
17:11 -> 17:46 (count=1)
|
||||
18:34 -> 18:39 (count=1)
|
||||
18:44 -> 18:46 (count=1)
|
||||
19:14 -> 19:52 (count=0)
|
||||
22:9 -> 22:22 (count=1)
|
||||
23:9 -> 23:16 (count=1)
|
||||
24:9 -> 24:16 (count=1)
|
||||
25:9 -> 25:16 (count=0)
|
||||
26:16 -> 27:6 (count=0)
|
||||
29:11 -> 30:35 (count=1)
|
||||
30:39 -> 30:41 (count=1)
|
||||
31:14 -> 31:52 (count=0)
|
||||
33:11 -> 34:35 (count=1)
|
||||
34:39 -> 34:41 (count=1)
|
||||
35:14 -> 35:52 (count=0)
|
||||
37:1 -> 37:2 (count=1)
|
||||
Segment at 8:9 (count = 1), RegionEntry
|
||||
Segment at 8:22 (count = 0), Skipped
|
||||
Segment at 9:9 (count = 1), RegionEntry
|
||||
Segment at 9:16 (count = 0), Skipped
|
||||
Segment at 10:16 (count = 1), RegionEntry
|
||||
Segment at 11:6 (count = 0), Skipped
|
||||
Segment at 13:11 (count = 1), RegionEntry
|
||||
Segment at 14:35 (count = 0), Skipped
|
||||
Segment at 14:39 (count = 1), RegionEntry
|
||||
Segment at 14:41 (count = 0), Skipped
|
||||
Segment at 15:14 (count = 0), RegionEntry
|
||||
Segment at 15:52 (count = 0), Skipped
|
||||
Segment at 17:11 (count = 1), RegionEntry
|
||||
Segment at 17:46 (count = 0), Skipped
|
||||
Segment at 18:34 (count = 1), RegionEntry
|
||||
Segment at 18:39 (count = 0), Skipped
|
||||
Segment at 18:44 (count = 1), RegionEntry
|
||||
Segment at 18:46 (count = 0), Skipped
|
||||
Segment at 19:14 (count = 0), RegionEntry
|
||||
Segment at 19:52 (count = 0), Skipped
|
||||
Segment at 22:9 (count = 1), RegionEntry
|
||||
Segment at 22:22 (count = 0), Skipped
|
||||
Segment at 23:9 (count = 1), RegionEntry
|
||||
Segment at 23:16 (count = 0), Skipped
|
||||
Segment at 24:9 (count = 1), RegionEntry
|
||||
Segment at 24:16 (count = 0), Skipped
|
||||
Segment at 25:9 (count = 0), RegionEntry
|
||||
Segment at 25:16 (count = 0), Skipped
|
||||
Segment at 26:16 (count = 0), RegionEntry
|
||||
Segment at 27:6 (count = 0), Skipped
|
||||
Segment at 29:11 (count = 1), RegionEntry
|
||||
Segment at 30:35 (count = 0), Skipped
|
||||
Segment at 30:39 (count = 1), RegionEntry
|
||||
Segment at 30:41 (count = 0), Skipped
|
||||
Segment at 31:14 (count = 0), RegionEntry
|
||||
Segment at 31:52 (count = 0), Skipped
|
||||
Segment at 33:11 (count = 1), RegionEntry
|
||||
Segment at 34:35 (count = 0), Skipped
|
||||
Segment at 34:39 (count = 1), RegionEntry
|
||||
Segment at 34:41 (count = 0), Skipped
|
||||
Segment at 35:14 (count = 0), RegionEntry
|
||||
Segment at 35:52 (count = 0), Skipped
|
||||
Segment at 37:1 (count = 1), RegionEntry
|
||||
Segment at 37:2 (count = 0), Skipped
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
"data": [
|
||||
{
|
||||
"files": [
|
||||
{
|
||||
"filename": "../coverage/abort.rs",
|
||||
"summary": {
|
||||
"functions": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"instantiations": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 15,
|
||||
"covered": 13,
|
||||
"percent": 86.66666666666667
|
||||
},
|
||||
"regions": {
|
||||
"count": 10,
|
||||
"covered": 9,
|
||||
"notcovered": 1,
|
||||
"percent": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"functions": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"instantiations": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 15,
|
||||
"covered": 13,
|
||||
"percent": 86.66666666666667
|
||||
},
|
||||
"regions": {
|
||||
"count": 10,
|
||||
"covered": 9,
|
||||
"notcovered": 1,
|
||||
"percent": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"type": "llvm.coverage.json.export",
|
||||
"version": "2.0.1"
|
||||
}
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
"data": [
|
||||
{
|
||||
"files": [
|
||||
{
|
||||
"filename": "../coverage/assert.rs",
|
||||
"summary": {
|
||||
"functions": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"instantiations": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 13,
|
||||
"covered": 10,
|
||||
"percent": 76.92307692307693
|
||||
},
|
||||
"regions": {
|
||||
"count": 14,
|
||||
"covered": 12,
|
||||
"notcovered": 2,
|
||||
"percent": 85.71428571428571
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"functions": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"instantiations": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 13,
|
||||
"covered": 10,
|
||||
"percent": 76.92307692307693
|
||||
},
|
||||
"regions": {
|
||||
"count": 14,
|
||||
"covered": 12,
|
||||
"notcovered": 2,
|
||||
"percent": 85.71428571428571
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"type": "llvm.coverage.json.export",
|
||||
"version": "2.0.1"
|
||||
}
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
"data": [
|
||||
{
|
||||
"files": [
|
||||
{
|
||||
"filename": "../coverage/async.rs",
|
||||
"summary": {
|
||||
"functions": {
|
||||
"count": 9,
|
||||
"covered": 9,
|
||||
"percent": 100
|
||||
},
|
||||
"instantiations": {
|
||||
"count": 9,
|
||||
"covered": 9,
|
||||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 31,
|
||||
"covered": 30,
|
||||
"percent": 96.7741935483871
|
||||
},
|
||||
"regions": {
|
||||
"count": 21,
|
||||
"covered": 18,
|
||||
"notcovered": 3,
|
||||
"percent": 85.71428571428571
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"functions": {
|
||||
"count": 9,
|
||||
"covered": 9,
|
||||
"percent": 100
|
||||
},
|
||||
"instantiations": {
|
||||
"count": 9,
|
||||
"covered": 9,
|
||||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 31,
|
||||
"covered": 30,
|
||||
"percent": 96.7741935483871
|
||||
},
|
||||
"regions": {
|
||||
"count": 21,
|
||||
"covered": 18,
|
||||
"notcovered": 3,
|
||||
"percent": 85.71428571428571
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"type": "llvm.coverage.json.export",
|
||||
"version": "2.0.1"
|
||||
}
|
||||
|
|
@ -16,15 +16,15 @@
|
|||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 49,
|
||||
"covered": 23,
|
||||
"percent": 46.93877551020408
|
||||
"count": 64,
|
||||
"covered": 33,
|
||||
"percent": 51.5625
|
||||
},
|
||||
"regions": {
|
||||
"count": 69,
|
||||
"covered": 18,
|
||||
"notcovered": 51,
|
||||
"percent": 26.08695652173913
|
||||
"count": 88,
|
||||
"covered": 25,
|
||||
"notcovered": 63,
|
||||
"percent": 28.40909090909091
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -41,15 +41,15 @@
|
|||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 49,
|
||||
"covered": 23,
|
||||
"percent": 46.93877551020408
|
||||
"count": 64,
|
||||
"covered": 33,
|
||||
"percent": 51.5625
|
||||
},
|
||||
"regions": {
|
||||
"count": 69,
|
||||
"covered": 18,
|
||||
"notcovered": 51,
|
||||
"percent": 26.08695652173913
|
||||
"count": 88,
|
||||
"covered": 25,
|
||||
"notcovered": 63,
|
||||
"percent": 28.40909090909091
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,15 +16,15 @@
|
|||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 26,
|
||||
"covered": 26,
|
||||
"count": 27,
|
||||
"covered": 27,
|
||||
"percent": 100
|
||||
},
|
||||
"regions": {
|
||||
"count": 15,
|
||||
"covered": 13,
|
||||
"count": 11,
|
||||
"covered": 9,
|
||||
"notcovered": 2,
|
||||
"percent": 86.66666666666667
|
||||
"percent": 81.81818181818183
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -41,15 +41,15 @@
|
|||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 26,
|
||||
"covered": 26,
|
||||
"count": 27,
|
||||
"covered": 27,
|
||||
"percent": 100
|
||||
},
|
||||
"regions": {
|
||||
"count": 15,
|
||||
"covered": 13,
|
||||
"count": 11,
|
||||
"covered": 9,
|
||||
"notcovered": 2,
|
||||
"percent": 86.66666666666667
|
||||
"percent": 81.81818181818183
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,15 +16,15 @@
|
|||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 21,
|
||||
"count": 22,
|
||||
"covered": 16,
|
||||
"percent": 76.19047619047619
|
||||
"percent": 72.72727272727273
|
||||
},
|
||||
"regions": {
|
||||
"count": 18,
|
||||
"covered": 14,
|
||||
"count": 17,
|
||||
"covered": 13,
|
||||
"notcovered": 4,
|
||||
"percent": 77.77777777777779
|
||||
"percent": 76.47058823529412
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -41,15 +41,15 @@
|
|||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 21,
|
||||
"count": 22,
|
||||
"covered": 16,
|
||||
"percent": 76.19047619047619
|
||||
"percent": 72.72727272727273
|
||||
},
|
||||
"regions": {
|
||||
"count": 18,
|
||||
"covered": 14,
|
||||
"count": 17,
|
||||
"covered": 13,
|
||||
"notcovered": 4,
|
||||
"percent": 77.77777777777779
|
||||
"percent": 76.47058823529412
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
"data": [
|
||||
{
|
||||
"files": [
|
||||
{
|
||||
"filename": "../coverage/overflow.rs",
|
||||
"summary": {
|
||||
"functions": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"instantiations": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 21,
|
||||
"covered": 17,
|
||||
"percent": 80.95238095238095
|
||||
},
|
||||
"regions": {
|
||||
"count": 14,
|
||||
"covered": 12,
|
||||
"notcovered": 2,
|
||||
"percent": 85.71428571428571
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"functions": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"instantiations": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 21,
|
||||
"covered": 17,
|
||||
"percent": 80.95238095238095
|
||||
},
|
||||
"regions": {
|
||||
"count": 14,
|
||||
"covered": 12,
|
||||
"notcovered": 2,
|
||||
"percent": 85.71428571428571
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"type": "llvm.coverage.json.export",
|
||||
"version": "2.0.1"
|
||||
}
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
"data": [
|
||||
{
|
||||
"files": [
|
||||
{
|
||||
"filename": "../coverage/panic_unwind.rs",
|
||||
"summary": {
|
||||
"functions": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"instantiations": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 17,
|
||||
"covered": 14,
|
||||
"percent": 82.35294117647058
|
||||
},
|
||||
"regions": {
|
||||
"count": 13,
|
||||
"covered": 11,
|
||||
"notcovered": 2,
|
||||
"percent": 84.61538461538461
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"functions": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"instantiations": {
|
||||
"count": 2,
|
||||
"covered": 2,
|
||||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 17,
|
||||
"covered": 14,
|
||||
"percent": 82.35294117647058
|
||||
},
|
||||
"regions": {
|
||||
"count": 13,
|
||||
"covered": 11,
|
||||
"notcovered": 2,
|
||||
"percent": 84.61538461538461
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"type": "llvm.coverage.json.export",
|
||||
"version": "2.0.1"
|
||||
}
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
"data": [
|
||||
{
|
||||
"files": [
|
||||
{
|
||||
"filename": "../coverage/yield.rs",
|
||||
"summary": {
|
||||
"functions": {
|
||||
"count": 3,
|
||||
"covered": 3,
|
||||
"percent": 100
|
||||
},
|
||||
"instantiations": {
|
||||
"count": 3,
|
||||
"covered": 3,
|
||||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 23,
|
||||
"covered": 16,
|
||||
"percent": 69.56521739130434
|
||||
},
|
||||
"regions": {
|
||||
"count": 22,
|
||||
"covered": 16,
|
||||
"notcovered": 6,
|
||||
"percent": 72.72727272727273
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"totals": {
|
||||
"functions": {
|
||||
"count": 3,
|
||||
"covered": 3,
|
||||
"percent": 100
|
||||
},
|
||||
"instantiations": {
|
||||
"count": 3,
|
||||
"covered": 3,
|
||||
"percent": 100
|
||||
},
|
||||
"lines": {
|
||||
"count": 23,
|
||||
"covered": 16,
|
||||
"percent": 69.56521739130434
|
||||
},
|
||||
"regions": {
|
||||
"count": 22,
|
||||
"covered": 16,
|
||||
"notcovered": 6,
|
||||
"percent": 72.72727272727273
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"type": "llvm.coverage.json.export",
|
||||
"version": "2.0.1"
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
1| |#![feature(unwind_attributes)]
|
||||
2| |#![allow(unused_assignments)]
|
||||
3| |
|
||||
4| |#[unwind(aborts)]
|
||||
5| |fn might_abort(should_abort: bool) {
|
||||
6| 4| if should_abort {
|
||||
7| 0| println!("aborting...");
|
||||
8| 0| panic!("panics and aborts");
|
||||
9| 4| } else {
|
||||
10| 4| println!("Don't Panic");
|
||||
11| 4| }
|
||||
12| 4|}
|
||||
13| |
|
||||
14| |fn main() -> Result<(),u8> {
|
||||
15| 1| let mut countdown = 10;
|
||||
16| 11| while countdown > 0 {
|
||||
17| 10| if countdown < 5 {
|
||||
18| 4| might_abort(false);
|
||||
19| 6| }
|
||||
20| 10| countdown -= 1;
|
||||
21| | }
|
||||
22| 1| Ok(())
|
||||
23| 1|}
|
||||
24| |
|
||||
25| |// Notes:
|
||||
26| |// 1. Compare this program and its coverage results to those of the similar tests
|
||||
27| |// `panic_unwind.rs` and `try_error_result.rs`.
|
||||
28| |// 2. This test confirms the coverage generated when a program includes `TerminatorKind::Abort`.
|
||||
29| |// 3. The test does not invoke the abort. By executing to a successful completion, the coverage
|
||||
30| |// results show where the program did and did not execute.
|
||||
31| |// 4. If the program actually aborted, the coverage counters would not be saved (which "works as
|
||||
32| |// intended"). Coverage results would show no executed coverage regions.
|
||||
33| |// 6. If `should_abort` is `true` and the program aborts, the program exits with a `132` status
|
||||
34| |// (on Linux at least).
|
||||
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
1| |#![allow(unused_assignments)]
|
||||
2| |// expect-exit-status-101
|
||||
3| |
|
||||
4| |fn might_fail_assert(one_plus_one: u32) {
|
||||
5| 4| println!("does 1 + 1 = {}?", one_plus_one);
|
||||
6| 4| assert_eq!(1 + 1, one_plus_one, "the argument was wrong");
|
||||
^1
|
||||
7| 3|}
|
||||
8| |
|
||||
9| |fn main() -> Result<(),u8> {
|
||||
10| 1| let mut countdown = 10;
|
||||
11| 10| while countdown > 0 {
|
||||
12| 10| if countdown == 1 {
|
||||
13| 0| might_fail_assert(3);
|
||||
14| 10| } else if countdown < 5 {
|
||||
15| 3| might_fail_assert(2);
|
||||
16| 15| }
|
||||
17| 9| countdown -= 1;
|
||||
18| | }
|
||||
19| 0| Ok(())
|
||||
20| 0|}
|
||||
21| |
|
||||
22| |// Notes:
|
||||
23| |// 1. Compare this program and its coverage results to those of the very similar test
|
||||
24| |// `panic_unwind.rs`, and similar tests `abort.rs` and `try_error_result.rs`.
|
||||
25| |// 2. This test confirms the coverage generated when a program passes or fails an `assert!()` or
|
||||
26| |// related `assert_*!()` macro.
|
||||
27| |// 3. Notably, the `assert` macros *do not* generate `TerminatorKind::Assert`. The macros produce
|
||||
28| |// conditional expressions, `TerminatorKind::SwitchInt` branches, and a possible call to
|
||||
29| |// `begin_panic_fmt()` (that begins a panic unwind, if the assertion test fails).
|
||||
30| |// 4. `TerminatoKind::Assert` is, however, also present in the MIR generated for this test
|
||||
31| |// (and in many other coverage tests). The `Assert` terminator is typically generated by the
|
||||
32| |// Rust compiler to check for runtime failures, such as numeric overflows.
|
||||
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
1| |#![allow(unused_assignments)]
|
||||
2| |
|
||||
3| |// require-rust-edition-2018
|
||||
4| |
|
||||
5| 1|async fn f() -> u8 { 1 }
|
||||
6| |
|
||||
7| |async fn foo() -> [bool; 10] { [false; 10] }
|
||||
8| |
|
||||
9| |pub async fn g(x: u8) {
|
||||
10| | match x {
|
||||
11| | y if f().await == y => (),
|
||||
12| | _ => (),
|
||||
13| | }
|
||||
14| 1|}
|
||||
15| |
|
||||
16| |// #78366: check the reference to the binding is recorded even if the binding is not autorefed
|
||||
17| |
|
||||
18| |async fn h(x: usize) {
|
||||
19| | match x {
|
||||
20| | y if foo().await[y] => (),
|
||||
21| | _ => (),
|
||||
22| | }
|
||||
23| 1|}
|
||||
24| |
|
||||
25| 1|async fn i(x: u8) {
|
||||
26| 1| match x {
|
||||
27| 1| y if f().await == y + 1 => (),
|
||||
^0 ^0
|
||||
28| 1| _ => (),
|
||||
29| | }
|
||||
30| 2|}
|
||||
31| |
|
||||
32| 1|fn main() {
|
||||
33| 1| let _ = g(10);
|
||||
34| 1| let _ = h(9);
|
||||
35| 1| let mut future = Box::pin(i(8));
|
||||
36| 1| executor::block_on(future.as_mut());
|
||||
37| 1|}
|
||||
38| |
|
||||
39| |mod executor {
|
||||
40| | use core::{
|
||||
41| | future::Future,
|
||||
42| | pin::Pin,
|
||||
43| | task::{Context, Poll, RawWaker, RawWakerVTable, Waker},
|
||||
44| | };
|
||||
45| |
|
||||
46| | pub fn block_on<F: Future>(mut future: F) -> F::Output {
|
||||
47| 1| let mut future = unsafe { Pin::new_unchecked(&mut future) };
|
||||
48| 1|
|
||||
49| 1| static VTABLE: RawWakerVTable = RawWakerVTable::new(
|
||||
50| 1| |_| unimplemented!("clone"),
|
||||
51| 1| |_| unimplemented!("wake"),
|
||||
52| 1| |_| unimplemented!("wake_by_ref"),
|
||||
53| 1| |_| (),
|
||||
54| 1| );
|
||||
55| 1| let waker = unsafe { Waker::from_raw(RawWaker::new(core::ptr::null(), &VTABLE)) };
|
||||
56| 1| let mut context = Context::from_waker(&waker);
|
||||
57| |
|
||||
58| | loop {
|
||||
59| 1| if let Poll::Ready(val) = future.as_mut().poll(&mut context) {
|
||||
60| 1| break val;
|
||||
61| | }
|
||||
62| 0| }
|
||||
63| 1| }
|
||||
64| |}
|
||||
|
||||
|
|
@ -27,7 +27,8 @@
|
|||
27| |
|
||||
28| 1| if countdown > 7 {
|
||||
29| 1| countdown -= 4;
|
||||
30| 0| } else if countdown > 2 {
|
||||
30| 1| } else if countdown > 2 {
|
||||
^0
|
||||
31| 0| if countdown < 1 || countdown > 5 || countdown != 9 {
|
||||
32| 0| countdown = 0;
|
||||
33| 0| }
|
||||
|
|
@ -36,34 +37,70 @@
|
|||
36| 0| return;
|
||||
37| | }
|
||||
38| |
|
||||
39| 1| let mut countdown = 0;
|
||||
40| 1| if true {
|
||||
41| 1| countdown = 1;
|
||||
42| 1| }
|
||||
43| |
|
||||
44| 1| let z = if countdown > 7 {
|
||||
^0
|
||||
45| 0| countdown -= 4;
|
||||
46| 1| } else if countdown > 2 {
|
||||
47| 0| if countdown < 1 || countdown > 5 || countdown != 9 {
|
||||
48| 0| countdown = 0;
|
||||
49| 0| }
|
||||
50| 0| countdown -= 5;
|
||||
51| | } else {
|
||||
52| 1| let should_be_reachable = countdown;
|
||||
53| 1| println!("reached");
|
||||
54| 1| return;
|
||||
55| | };
|
||||
39| 1| if true {
|
||||
40| | // Demonstrate the difference with `TerminatorKind::Assert` as of 2020-11-15. Assert is no
|
||||
41| | // longer treated as a `BasicCoverageBlock` terminator, which changed the coverage region,
|
||||
42| | // for the executed `then` block above, to include the closing brace on line 30. That
|
||||
43| | // changed the line count, but the coverage code region (for the `else if` condition) is
|
||||
44| | // still valid.
|
||||
45| | //
|
||||
46| | // Note that `if` (then) and `else` blocks include the closing brace in their coverage
|
||||
47| | // code regions when the last line in the block ends in a semicolon, because the Rust
|
||||
48| | // compiler inserts a `StatementKind::Assign` to assign `const ()` to a `Place`, for the
|
||||
49| | // empty value for the executed block. When the last line does not end in a semicolon
|
||||
50| | // (that is, when the block actually results in a value), the additional `Assign` is not
|
||||
51| | // generated, and the brace is not included.
|
||||
52| 1| let mut countdown = 0;
|
||||
53| 1| if true {
|
||||
54| 1| countdown = 10;
|
||||
55| 1| }
|
||||
56| |
|
||||
57| 0| let w = if countdown > 7 {
|
||||
58| 0| countdown -= 4;
|
||||
59| 0| } else if countdown > 2 {
|
||||
60| 0| if countdown < 1 || countdown > 5 || countdown != 9 {
|
||||
61| 0| countdown = 0;
|
||||
62| 0| }
|
||||
63| 0| countdown -= 5;
|
||||
64| | } else {
|
||||
65| 0| return;
|
||||
66| | };
|
||||
67| 1|}
|
||||
57| 1| if countdown > 7 {
|
||||
58| 1| countdown -= 4;
|
||||
59| 1| }
|
||||
60| | // The closing brace of the `then` branch is now included in the coverage region, and shown
|
||||
61| | // as "executed" (giving its line a count of 1 here). Since, in the original version above,
|
||||
62| | // the closing brace shares the same line as the `else if` conditional expression (which is
|
||||
63| | // not executed if the first `then` condition is true), only the condition's code region is
|
||||
64| | // marked with a count of 0 now.
|
||||
65| 0| else if countdown > 2 {
|
||||
66| 0| if countdown < 1 || countdown > 5 || countdown != 9 {
|
||||
67| 0| countdown = 0;
|
||||
68| 0| }
|
||||
69| 0| countdown -= 5;
|
||||
70| | } else {
|
||||
71| 0| return;
|
||||
72| | }
|
||||
73| 1| }
|
||||
74| |
|
||||
75| 1| let mut countdown = 0;
|
||||
76| 1| if true {
|
||||
77| 1| countdown = 1;
|
||||
78| 1| }
|
||||
79| |
|
||||
80| 1| let z = if countdown > 7 {
|
||||
^0
|
||||
81| 0| countdown -= 4;
|
||||
82| 1| } else if countdown > 2 {
|
||||
83| 0| if countdown < 1 || countdown > 5 || countdown != 9 {
|
||||
84| 0| countdown = 0;
|
||||
85| 0| }
|
||||
86| 0| countdown -= 5;
|
||||
87| | } else {
|
||||
88| 1| let should_be_reachable = countdown;
|
||||
89| 1| println!("reached");
|
||||
90| 1| return;
|
||||
91| | };
|
||||
92| |
|
||||
93| 0| let w = if countdown > 7 {
|
||||
94| 0| countdown -= 4;
|
||||
95| 0| } else if countdown > 2 {
|
||||
96| 0| if countdown < 1 || countdown > 5 || countdown != 9 {
|
||||
97| 0| countdown = 0;
|
||||
98| 0| }
|
||||
99| 0| countdown -= 5;
|
||||
100| | } else {
|
||||
101| 0| return;
|
||||
102| | };
|
||||
103| 1|}
|
||||
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
37| | }
|
||||
38| |
|
||||
39| | impl InTrait for InStruct {
|
||||
40| | fn trait_func(&mut self, incr: u32) {
|
||||
40| 1| fn trait_func(&mut self, incr: u32) {
|
||||
41| 1| self.in_struct_field += incr;
|
||||
42| 1| in_func(self.in_struct_field);
|
||||
43| 1| }
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
15| 1| a -= 10;
|
||||
16| 1| if is_true {
|
||||
17| 1| break 'outer;
|
||||
18| | } else {
|
||||
18| 0| } else {
|
||||
19| 0| a -= 2;
|
||||
20| 0| }
|
||||
21| 2| }
|
||||
|
|
|
|||
|
|
@ -0,0 +1,64 @@
|
|||
1| |#![allow(unused_assignments)]
|
||||
2| |// expect-exit-status-101
|
||||
3| |
|
||||
4| |fn might_overflow(to_add: u32) -> u32 {
|
||||
5| 4| if to_add > 5 {
|
||||
6| 1| println!("this will probably overflow");
|
||||
7| 3| }
|
||||
8| 4| let add_to = u32::MAX - 5;
|
||||
9| 4| println!("does {} + {} overflow?", add_to, to_add);
|
||||
10| 4| let result = to_add + add_to;
|
||||
11| 4| println!("continuing after overflow check");
|
||||
12| 4| result
|
||||
13| 4|}
|
||||
14| |
|
||||
15| |fn main() -> Result<(),u8> {
|
||||
16| 1| let mut countdown = 10;
|
||||
17| 10| while countdown > 0 {
|
||||
18| 10| if countdown == 1 {
|
||||
19| 0| let result = might_overflow(10);
|
||||
20| 0| println!("Result: {}", result);
|
||||
21| 10| } else if countdown < 5 {
|
||||
22| 3| let result = might_overflow(1);
|
||||
23| 3| println!("Result: {}", result);
|
||||
24| 15| }
|
||||
25| 9| countdown -= 1;
|
||||
26| | }
|
||||
27| 0| Ok(())
|
||||
28| 0|}
|
||||
29| |
|
||||
30| |// Notes:
|
||||
31| |// 1. Compare this program and its coverage results to those of the very similar test `assert.rs`,
|
||||
32| |// and similar tests `panic_unwind.rs`, abort.rs` and `try_error_result.rs`.
|
||||
33| |// 2. This test confirms the coverage generated when a program passes or fails a
|
||||
34| |// compiler-generated `TerminatorKind::Assert` (based on an overflow check, in this case).
|
||||
35| |// 3. Similar to how the coverage instrumentation handles `TerminatorKind::Call`,
|
||||
36| |// compiler-generated assertion failures are assumed to be a symptom of a program bug, not
|
||||
37| |// expected behavior. To simplify the coverage graphs and keep instrumented programs as
|
||||
38| |// small and fast as possible, `Assert` terminators are assumed to always succeed, and
|
||||
39| |// therefore are considered "non-branching" terminators. So, an `Assert` terminator does not
|
||||
40| |// get its own coverage counter.
|
||||
41| |// 4. After an unhandled panic or failed Assert, coverage results may not always be intuitive.
|
||||
42| |// In this test, the final count for the statements after the `if` block in `might_overflow()`
|
||||
43| |// is 4, even though the lines after `to_add + add_to` were executed only 3 times. Depending
|
||||
44| |// on the MIR graph and the structure of the code, this count could have been 3 (which might
|
||||
45| |// have been valid for the overflowed add `+`, but should have been 4 for the lines before
|
||||
46| |// the overflow. The reason for this potential uncertainty is, a `CounterKind` is incremented
|
||||
47| |// via StatementKind::Counter at the end of the block, but (as in the case in this test),
|
||||
48| |// a CounterKind::Expression is always evaluated. In this case, the expression was based on
|
||||
49| |// a `Counter` incremented as part of the evaluation of the `if` expression, which was
|
||||
50| |// executed, and counted, 4 times, before reaching the overflow add.
|
||||
51| |
|
||||
52| |// If the program did not overflow, the coverage for `might_overflow()` would look like this:
|
||||
53| |//
|
||||
54| |// 4| |fn might_overflow(to_add: u32) -> u32 {
|
||||
55| |// 5| 4| if to_add > 5 {
|
||||
56| |// 6| 0| println!("this will probably overflow");
|
||||
57| |// 7| 4| }
|
||||
58| |// 8| 4| let add_to = u32::MAX - 5;
|
||||
59| |// 9| 4| println!("does {} + {} overflow?", add_to, to_add);
|
||||
60| |// 10| 4| let result = to_add + add_to;
|
||||
61| |// 11| 4| println!("continuing after overflow check");
|
||||
62| |// 12| 4| result
|
||||
63| |// 13| 4|}
|
||||
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
1| |#![allow(unused_assignments)]
|
||||
2| |// expect-exit-status-101
|
||||
3| |
|
||||
4| |fn might_panic(should_panic: bool) {
|
||||
5| 4| if should_panic {
|
||||
6| 1| println!("panicking...");
|
||||
7| 1| panic!("panics");
|
||||
8| 3| } else {
|
||||
9| 3| println!("Don't Panic");
|
||||
10| 3| }
|
||||
11| 3|}
|
||||
12| |
|
||||
13| |fn main() -> Result<(),u8> {
|
||||
14| 1| let mut countdown = 10;
|
||||
15| 10| while countdown > 0 {
|
||||
16| 10| if countdown == 1 {
|
||||
17| 0| might_panic(true);
|
||||
18| 10| } else if countdown < 5 {
|
||||
19| 3| might_panic(false);
|
||||
20| 15| }
|
||||
21| 9| countdown -= 1;
|
||||
22| | }
|
||||
23| 0| Ok(())
|
||||
24| 0|}
|
||||
25| |
|
||||
26| |// Notes:
|
||||
27| |// 1. Compare this program and its coverage results to those of the similar tests `abort.rs` and
|
||||
28| |// `try_error_result.rs`.
|
||||
29| |// 2. Since the `panic_unwind.rs` test is allowed to unwind, it is also allowed to execute the
|
||||
30| |// normal program exit cleanup, including writing out the current values of the coverage
|
||||
31| |// counters.
|
||||
32| |// 3. The coverage results show (interestingly) that the `panic!()` call did execute, but it does
|
||||
33| |// not show coverage of the `if countdown == 1` branch in `main()` that calls
|
||||
34| |// `might_panic(true)` (causing the call to `panic!()`).
|
||||
35| |// 4. The reason `main()`s `if countdown == 1` branch, calling `might_panic(true)`, appears
|
||||
36| |// "uncovered" is, InstrumentCoverage (intentionally) treats `TerminatorKind::Call` terminators
|
||||
37| |// as non-branching, because when a program executes normally, they always are. Errors handled
|
||||
38| |// via the try `?` operator produce error handling branches that *are* treated as branches in
|
||||
39| |// coverage results. By treating calls without try `?` operators as non-branching (assumed to
|
||||
40| |// return normally and continue) the coverage graph can be simplified, producing smaller,
|
||||
41| |// faster binaries, and cleaner coverage results.
|
||||
42| |// 5. The reason the coverage results actually show `panic!()` was called is most likely because
|
||||
43| |// `panic!()` is a macro, not a simple function call, and there are other `Statement`s and/or
|
||||
44| |// `Terminator`s that execute with a coverage counter before the panic and unwind occur.
|
||||
45| |// 6. By best practice, programs should not panic. By design, the coverage implementation will not
|
||||
46| |// incur additional cost (in program size and execution time) to improve coverage results for
|
||||
47| |// an event that is not supposted to happen.
|
||||
48| |// 7. FIXME(#78544): This issue describes a feature request for a proposed option to enable
|
||||
49| |// more accurate coverage results for tests that intentionally panic.
|
||||
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
1| |#![feature(generators, generator_trait)]
|
||||
2| |#![allow(unused_assignments)]
|
||||
3| |
|
||||
4| |use std::ops::{Generator, GeneratorState};
|
||||
5| |use std::pin::Pin;
|
||||
6| |
|
||||
7| |fn main() {
|
||||
8| 1| let mut generator = || {
|
||||
9| 1| yield 1;
|
||||
10| 1| return "foo"
|
||||
11| 1| };
|
||||
12| |
|
||||
13| 1| match Pin::new(&mut generator).resume(()) {
|
||||
14| 1| GeneratorState::Yielded(1) => {}
|
||||
15| 0| _ => panic!("unexpected value from resume"),
|
||||
16| | }
|
||||
17| 1| match Pin::new(&mut generator).resume(()) {
|
||||
18| 1| GeneratorState::Complete("foo") => {}
|
||||
19| 0| _ => panic!("unexpected value from resume"),
|
||||
20| | }
|
||||
21| |
|
||||
22| 1| let mut generator = || {
|
||||
23| 1| yield 1;
|
||||
24| 1| yield 2;
|
||||
25| 0| yield 3;
|
||||
26| 0| return "foo"
|
||||
27| 0| };
|
||||
28| |
|
||||
29| 1| match Pin::new(&mut generator).resume(()) {
|
||||
30| 1| GeneratorState::Yielded(1) => {}
|
||||
31| 0| _ => panic!("unexpected value from resume"),
|
||||
32| | }
|
||||
33| 1| match Pin::new(&mut generator).resume(()) {
|
||||
34| 1| GeneratorState::Yielded(2) => {}
|
||||
35| 0| _ => panic!("unexpected value from resume"),
|
||||
36| | }
|
||||
37| 1|}
|
||||
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
Counter in file 0 15:9 -> 15:27, #1
|
||||
Counter in file 0 16:11 -> 16:24, (#1 + (#2 + #3))
|
||||
Counter in file 0 17:12 -> 17:25, ((#1 + (#2 + #3)) - #4)
|
||||
Counter in file 0 17:26 -> 19:10, #2
|
||||
Counter in file 0 19:10 -> 19:11, #3
|
||||
Counter in file 0 20:9 -> 20:23, (#2 + #3)
|
||||
Counter in file 0 22:5 -> 23:2, #4
|
||||
Counter in file 0 6:8 -> 6:20, #1
|
||||
Counter in file 0 7:9 -> 8:37, #2
|
||||
Counter in file 0 9:12 -> 12:2, (#1 - #2)
|
||||
Emitting segments for file: ../coverage/abort.rs
|
||||
Combined regions:
|
||||
6:8 -> 6:20 (count=4)
|
||||
7:9 -> 8:37 (count=0)
|
||||
9:12 -> 12:2 (count=4)
|
||||
15:9 -> 15:27 (count=1)
|
||||
16:11 -> 16:24 (count=11)
|
||||
17:12 -> 17:25 (count=10)
|
||||
17:26 -> 19:10 (count=4)
|
||||
19:10 -> 19:11 (count=6)
|
||||
20:9 -> 20:23 (count=10)
|
||||
22:5 -> 23:2 (count=1)
|
||||
Segment at 6:8 (count = 4), RegionEntry
|
||||
Segment at 6:20 (count = 0), Skipped
|
||||
Segment at 7:9 (count = 0), RegionEntry
|
||||
Segment at 8:37 (count = 0), Skipped
|
||||
Segment at 9:12 (count = 4), RegionEntry
|
||||
Segment at 12:2 (count = 0), Skipped
|
||||
Segment at 15:9 (count = 1), RegionEntry
|
||||
Segment at 15:27 (count = 0), Skipped
|
||||
Segment at 16:11 (count = 11), RegionEntry
|
||||
Segment at 16:24 (count = 0), Skipped
|
||||
Segment at 17:12 (count = 10), RegionEntry
|
||||
Segment at 17:25 (count = 0), Skipped
|
||||
Segment at 17:26 (count = 4), RegionEntry
|
||||
Segment at 19:10 (count = 6), RegionEntry
|
||||
Segment at 19:11 (count = 0), Skipped
|
||||
Segment at 20:9 (count = 10), RegionEntry
|
||||
Segment at 20:23 (count = 0), Skipped
|
||||
Segment at 22:5 (count = 1), RegionEntry
|
||||
Segment at 23:2 (count = 0), Skipped
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
Counter in file 0 10:9 -> 10:27, #1
|
||||
Counter in file 0 11:11 -> 11:24, (#1 + (#2 + (#3 + #4)))
|
||||
Counter in file 0 12:12 -> 12:26, ((#1 + (#2 + (#3 + #4))) - #5)
|
||||
Counter in file 0 12:27 -> 14:10, #2
|
||||
Counter in file 0 14:19 -> 14:32, (((#1 + (#2 + (#3 + #4))) - #5) - #2)
|
||||
Counter in file 0 14:33 -> 16:10, #3
|
||||
Counter in file 0 16:10 -> 16:11, #4
|
||||
Counter in file 0 16:10 -> 16:11, (#3 + #4)
|
||||
Counter in file 0 17:9 -> 17:23, (#2 + (#3 + #4))
|
||||
Counter in file 0 19:5 -> 20:2, #5
|
||||
Counter in file 0 5:5 -> 5:48, #1
|
||||
Counter in file 0 6:16 -> 6:21, (#1 + 0)
|
||||
Counter in file 0 6:37 -> 6:61, #2
|
||||
Counter in file 0 7:1 -> 7:2, (#1 - #2)
|
||||
Emitting segments for file: ../coverage/assert.rs
|
||||
Combined regions:
|
||||
5:5 -> 5:48 (count=4)
|
||||
6:16 -> 6:21 (count=4)
|
||||
6:37 -> 6:61 (count=1)
|
||||
7:1 -> 7:2 (count=3)
|
||||
10:9 -> 10:27 (count=1)
|
||||
11:11 -> 11:24 (count=10)
|
||||
12:12 -> 12:26 (count=10)
|
||||
12:27 -> 14:10 (count=0)
|
||||
14:19 -> 14:32 (count=10)
|
||||
14:33 -> 16:10 (count=3)
|
||||
16:10 -> 16:11 (count=15)
|
||||
17:9 -> 17:23 (count=9)
|
||||
19:5 -> 20:2 (count=0)
|
||||
Segment at 5:5 (count = 4), RegionEntry
|
||||
Segment at 5:48 (count = 0), Skipped
|
||||
Segment at 6:16 (count = 4), RegionEntry
|
||||
Segment at 6:21 (count = 0), Skipped
|
||||
Segment at 6:37 (count = 1), RegionEntry
|
||||
Segment at 6:61 (count = 0), Skipped
|
||||
Segment at 7:1 (count = 3), RegionEntry
|
||||
Segment at 7:2 (count = 0), Skipped
|
||||
Segment at 10:9 (count = 1), RegionEntry
|
||||
Segment at 10:27 (count = 0), Skipped
|
||||
Segment at 11:11 (count = 10), RegionEntry
|
||||
Segment at 11:24 (count = 0), Skipped
|
||||
Segment at 12:12 (count = 10), RegionEntry
|
||||
Segment at 12:26 (count = 0), Skipped
|
||||
Segment at 12:27 (count = 0), RegionEntry
|
||||
Segment at 14:10 (count = 0), Skipped
|
||||
Segment at 14:19 (count = 10), RegionEntry
|
||||
Segment at 14:32 (count = 0), Skipped
|
||||
Segment at 14:33 (count = 3), RegionEntry
|
||||
Segment at 16:10 (count = 15), RegionEntry
|
||||
Segment at 16:11 (count = 0), Skipped
|
||||
Segment at 17:9 (count = 9), RegionEntry
|
||||
Segment at 17:23 (count = 0), Skipped
|
||||
Segment at 19:5 (count = 0), RegionEntry
|
||||
Segment at 20:2 (count = 0), Skipped
|
||||
|
|
@ -0,0 +1,85 @@
|
|||
Counter in file 0 15:9 -> 15:75, #1
|
||||
Counter in file 0 15:9 -> 15:75, #1
|
||||
Counter in file 0 15:9 -> 15:75, #1
|
||||
Counter in file 0 47:13 -> 56:54, #1
|
||||
Counter in file 0 59:32 -> 59:35, ((#1 + #2) - #2)
|
||||
Counter in file 0 59:39 -> 59:73, (#1 + #2)
|
||||
Counter in file 0 60:23 -> 60:26, (((#1 + #2) - #2) + 0)
|
||||
Counter in file 0 62:10 -> 62:11, #2
|
||||
Counter in file 0 63:5 -> 63:6, (((#1 + #2) - #2) + 0)
|
||||
Counter in file 0 53:17 -> 53:19, #1
|
||||
Counter in file 0 7:44 -> 7:45, #1
|
||||
Counter in file 0 5:24 -> 5:25, #1
|
||||
Counter in file 0 5:22 -> 5:25, #1
|
||||
Counter in file 0 25:19 -> 26:12, #1
|
||||
Counter in file 0 27:9 -> 27:10, #3
|
||||
Counter in file 0 27:14 -> 27:17, (#1 + 0)
|
||||
Counter in file 0 27:27 -> 27:32, #2
|
||||
Counter in file 0 27:32 -> 27:33, (#2 - #3)
|
||||
Counter in file 0 27:36 -> 27:38, (#3 + 0)
|
||||
Counter in file 0 28:14 -> 28:16, #4
|
||||
Counter in file 0 30:1 -> 30:2, (#3 + #4)
|
||||
Counter in file 0 32:11 -> 37:2, #1
|
||||
Counter in file 0 30:1 -> 30:2, #1
|
||||
Counter in file 0 14:1 -> 14:2, #1
|
||||
Counter in file 0 23:1 -> 23:2, #1
|
||||
Emitting segments for file: ../coverage/async.rs
|
||||
Combined regions:
|
||||
5:22 -> 5:25 (count=1)
|
||||
5:24 -> 5:25 (count=1)
|
||||
14:1 -> 14:2 (count=1)
|
||||
23:1 -> 23:2 (count=1)
|
||||
25:19 -> 26:12 (count=1)
|
||||
27:9 -> 27:10 (count=0)
|
||||
27:14 -> 27:17 (count=1)
|
||||
27:27 -> 27:32 (count=1)
|
||||
27:32 -> 27:33 (count=1)
|
||||
27:36 -> 27:38 (count=0)
|
||||
28:14 -> 28:16 (count=1)
|
||||
30:1 -> 30:2 (count=2)
|
||||
32:11 -> 37:2 (count=1)
|
||||
47:13 -> 56:54 (count=1)
|
||||
53:17 -> 53:19 (count=1)
|
||||
59:32 -> 59:35 (count=1)
|
||||
59:39 -> 59:73 (count=1)
|
||||
60:23 -> 60:26 (count=1)
|
||||
62:10 -> 62:11 (count=0)
|
||||
63:5 -> 63:6 (count=1)
|
||||
Segment at 5:22 (count = 1), RegionEntry
|
||||
Segment at 5:24 (count = 1), RegionEntry
|
||||
Segment at 5:25 (count = 0), Skipped
|
||||
Segment at 14:1 (count = 1), RegionEntry
|
||||
Segment at 14:2 (count = 0), Skipped
|
||||
Segment at 23:1 (count = 1), RegionEntry
|
||||
Segment at 23:2 (count = 0), Skipped
|
||||
Segment at 25:19 (count = 1), RegionEntry
|
||||
Segment at 26:12 (count = 0), Skipped
|
||||
Segment at 27:9 (count = 0), RegionEntry
|
||||
Segment at 27:10 (count = 0), Skipped
|
||||
Segment at 27:14 (count = 1), RegionEntry
|
||||
Segment at 27:17 (count = 0), Skipped
|
||||
Segment at 27:27 (count = 1), RegionEntry
|
||||
Segment at 27:32 (count = 1), RegionEntry
|
||||
Segment at 27:33 (count = 0), Skipped
|
||||
Segment at 27:36 (count = 0), RegionEntry
|
||||
Segment at 27:38 (count = 0), Skipped
|
||||
Segment at 28:14 (count = 1), RegionEntry
|
||||
Segment at 28:16 (count = 0), Skipped
|
||||
Segment at 30:1 (count = 2), RegionEntry
|
||||
Segment at 30:2 (count = 0), Skipped
|
||||
Segment at 32:11 (count = 1), RegionEntry
|
||||
Segment at 37:2 (count = 0), Skipped
|
||||
Segment at 47:13 (count = 1), RegionEntry
|
||||
Segment at 53:17 (count = 1), RegionEntry
|
||||
Segment at 53:19 (count = 1)
|
||||
Segment at 56:54 (count = 0), Skipped
|
||||
Segment at 59:32 (count = 1), RegionEntry
|
||||
Segment at 59:35 (count = 0), Skipped
|
||||
Segment at 59:39 (count = 1), RegionEntry
|
||||
Segment at 59:73 (count = 0), Skipped
|
||||
Segment at 60:23 (count = 1), RegionEntry
|
||||
Segment at 60:26 (count = 0), Skipped
|
||||
Segment at 62:10 (count = 0), RegionEntry
|
||||
Segment at 62:11 (count = 0), Skipped
|
||||
Segment at 63:5 (count = 1), RegionEntry
|
||||
Segment at 63:6 (count = 0), Skipped
|
||||
|
|
@ -1,72 +1,91 @@
|
|||
Counter in file 0 4:9 -> 4:26, #1
|
||||
Counter in file 0 5:8 -> 5:12, (#1 + 0)
|
||||
Counter in file 0 5:13 -> 7:6, #2
|
||||
Counter in file 0 10:9 -> 10:10, (#4 + #11)
|
||||
Counter in file 0 10:9 -> 10:10, (#3 + (#12 + #13))
|
||||
Counter in file 0 10:16 -> 10:29, (#2 + 0)
|
||||
Counter in file 0 11:9 -> 12:10, #4
|
||||
Counter in file 0 11:9 -> 12:10, #3
|
||||
Counter in file 0 13:15 -> 13:28, ((#2 + 0) - #3)
|
||||
Counter in file 0 14:12 -> 14:25, #5
|
||||
Counter in file 0 14:29 -> 14:42, (#5 - #13)
|
||||
Counter in file 0 14:42 -> 14:43, (#13 + #14)
|
||||
Counter in file 0 14:42 -> 14:43, ((#5 - #13) - #14)
|
||||
Counter in file 0 14:46 -> 14:60, #21
|
||||
Counter in file 0 14:60 -> 14:61, (#17 + #18)
|
||||
Counter in file 0 14:60 -> 14:61, (#21 - #18)
|
||||
Counter in file 0 14:61 -> 16:10, #22
|
||||
Counter in file 0 16:10 -> 16:11, #23
|
||||
Counter in file 0 17:9 -> 18:18, #11
|
||||
Counter in file 0 20:9 -> 20:15, (((#2 + 0) - #3) - #5)
|
||||
Counter in file 0 23:9 -> 23:26, ((#4 + #11) + 0)
|
||||
Counter in file 0 24:8 -> 24:12, ((#4 + #11) + 0)
|
||||
Counter in file 0 24:13 -> 26:6, #12
|
||||
Counter in file 0 28:8 -> 28:21, (#12 + 0)
|
||||
Counter in file 0 29:9 -> 29:23, #16
|
||||
Counter in file 0 30:15 -> 30:28, ((#12 + 0) - #15)
|
||||
Counter in file 0 31:12 -> 31:25, (((#12 + 0) - #15) - #8)
|
||||
Counter in file 0 31:29 -> 31:42, ((((#12 + 0) - #15) - #8) - #24)
|
||||
Counter in file 0 31:42 -> 31:43, (((((#12 + 0) - #15) - #8) - #24) - #25)
|
||||
Counter in file 0 14:12 -> 14:25, #4
|
||||
Counter in file 0 14:29 -> 14:42, (#4 - #15)
|
||||
Counter in file 0 14:42 -> 14:43, ((#4 - #15) - #16)
|
||||
Counter in file 0 14:42 -> 14:43, (#15 + #16)
|
||||
Counter in file 0 14:46 -> 14:60, #23
|
||||
Counter in file 0 14:60 -> 14:61, (#18 + #19)
|
||||
Counter in file 0 14:60 -> 14:61, (#23 - #19)
|
||||
Counter in file 0 14:61 -> 16:10, #12
|
||||
Counter in file 0 16:10 -> 16:11, #13
|
||||
Counter in file 0 17:9 -> 18:18, (#12 + #13)
|
||||
Counter in file 0 20:9 -> 20:15, (((#2 + 0) - #3) - #4)
|
||||
Counter in file 0 23:9 -> 23:26, ((#3 + (#12 + #13)) + 0)
|
||||
Counter in file 0 24:8 -> 24:12, ((#3 + (#12 + #13)) + 0)
|
||||
Counter in file 0 24:13 -> 26:6, #14
|
||||
Counter in file 0 28:8 -> 28:21, (#14 + 0)
|
||||
Counter in file 0 28:22 -> 30:6, #17
|
||||
Counter in file 0 30:15 -> 30:28, ((#14 + 0) - #17)
|
||||
Counter in file 0 31:12 -> 31:25, (((#14 + 0) - #17) - #8)
|
||||
Counter in file 0 31:29 -> 31:42, ((((#14 + 0) - #17) - #8) - #24)
|
||||
Counter in file 0 31:42 -> 31:43, (((((#14 + 0) - #17) - #8) - #24) - #25)
|
||||
Counter in file 0 31:42 -> 31:43, (#24 + #25)
|
||||
Counter in file 0 31:46 -> 31:60, #32
|
||||
Counter in file 0 31:60 -> 31:61, (#28 + #29)
|
||||
Counter in file 0 31:60 -> 31:61, (#32 - #29)
|
||||
Counter in file 0 31:61 -> 33:10, #33
|
||||
Counter in file 0 33:10 -> 33:11, #34
|
||||
Counter in file 0 34:9 -> 34:23, #19
|
||||
Counter in file 0 31:46 -> 31:60, #34
|
||||
Counter in file 0 31:60 -> 31:61, (#34 - #32)
|
||||
Counter in file 0 31:60 -> 31:61, (#31 + #32)
|
||||
Counter in file 0 31:61 -> 33:10, #20
|
||||
Counter in file 0 33:10 -> 33:11, #21
|
||||
Counter in file 0 34:9 -> 34:23, (#20 + #21)
|
||||
Counter in file 0 36:9 -> 36:15, #8
|
||||
Counter in file 0 39:9 -> 39:26, (#16 + #19)
|
||||
Counter in file 0 40:8 -> 40:12, ((#16 + #19) + 0)
|
||||
Counter in file 0 40:13 -> 42:6, #20
|
||||
Counter in file 0 44:9 -> 44:10, (#27 + #30)
|
||||
Counter in file 0 44:16 -> 44:29, (#20 + 0)
|
||||
Counter in file 0 45:9 -> 45:23, #27
|
||||
Counter in file 0 46:15 -> 46:28, ((#20 + 0) - #26)
|
||||
Counter in file 0 47:12 -> 47:25, (((#20 + 0) - #26) - #7)
|
||||
Counter in file 0 47:29 -> 47:42, ((((#20 + 0) - #26) - #7) - #35)
|
||||
Counter in file 0 47:42 -> 47:43, (#35 + #36)
|
||||
Counter in file 0 47:42 -> 47:43, (((((#20 + 0) - #26) - #7) - #35) - #36)
|
||||
Counter in file 0 47:46 -> 47:60, #41
|
||||
Counter in file 0 47:60 -> 47:61, (#37 + #38)
|
||||
Counter in file 0 47:60 -> 47:61, (#41 - #38)
|
||||
Counter in file 0 47:61 -> 49:10, #42
|
||||
Counter in file 0 49:10 -> 49:11, #43
|
||||
Counter in file 0 50:9 -> 50:23, #30
|
||||
Counter in file 0 52:13 -> 54:15, #7
|
||||
Counter in file 0 57:9 -> 57:10, (#9 + #10)
|
||||
Counter in file 0 57:16 -> 57:29, ((#27 + #30) + 0)
|
||||
Counter in file 0 58:9 -> 58:23, #9
|
||||
Counter in file 0 59:15 -> 59:28, ((#27 + #30) - #31)
|
||||
Counter in file 0 60:12 -> 60:25, (((#27 + #30) - #31) - #6)
|
||||
Counter in file 0 60:29 -> 60:42, ((((#27 + #30) - #31) - #6) - #39)
|
||||
Counter in file 0 60:42 -> 60:43, (#39 + #40)
|
||||
Counter in file 0 60:42 -> 60:43, (((((#27 + #30) - #31) - #6) - #39) - #40)
|
||||
Counter in file 0 60:46 -> 60:60, #46
|
||||
Counter in file 0 60:60 -> 60:61, (#46 - #45)
|
||||
Counter in file 0 60:60 -> 60:61, (#44 + #45)
|
||||
Counter in file 0 60:61 -> 62:10, #47
|
||||
Counter in file 0 62:10 -> 62:11, #48
|
||||
Counter in file 0 63:9 -> 63:23, #10
|
||||
Counter in file 0 65:9 -> 65:15, #6
|
||||
Counter in file 0 67:1 -> 67:2, ((#9 + #10) + (((#6 + #7) + #8) + (((#2 + 0) - #3) - #5)))
|
||||
Counter in file 0 39:8 -> 39:12, (#17 + (#20 + #21))
|
||||
Counter in file 0 52:13 -> 52:30, #22
|
||||
Counter in file 0 53:12 -> 53:16, (#22 + 0)
|
||||
Counter in file 0 53:17 -> 55:10, #26
|
||||
Counter in file 0 57:12 -> 57:25, (#26 + 0)
|
||||
Counter in file 0 57:26 -> 59:10, #27
|
||||
Counter in file 0 65:17 -> 65:30, ((#26 + 0) - #27)
|
||||
Counter in file 0 66:16 -> 66:29, (((#26 + 0) - #27) - #7)
|
||||
Counter in file 0 66:33 -> 66:46, ((((#26 + 0) - #27) - #7) - #37)
|
||||
Counter in file 0 66:46 -> 66:47, (#37 + #38)
|
||||
Counter in file 0 66:46 -> 66:47, (((((#26 + 0) - #27) - #7) - #37) - #38)
|
||||
Counter in file 0 66:50 -> 66:64, #47
|
||||
Counter in file 0 66:64 -> 66:65, (#47 - #42)
|
||||
Counter in file 0 66:64 -> 66:65, (#41 + #42)
|
||||
Counter in file 0 66:65 -> 68:14, #28
|
||||
Counter in file 0 68:14 -> 68:15, #29
|
||||
Counter in file 0 69:13 -> 69:27, (#28 + #29)
|
||||
Counter in file 0 71:13 -> 71:19, #7
|
||||
Counter in file 0 73:6 -> 73:7, (#27 + (#28 + #29))
|
||||
Counter in file 0 75:9 -> 75:26, ((#27 + (#28 + #29)) + 0)
|
||||
Counter in file 0 76:8 -> 76:12, (((#27 + (#28 + #29)) + 0) + 0)
|
||||
Counter in file 0 76:13 -> 78:6, #30
|
||||
Counter in file 0 80:9 -> 80:10, (#33 + (#35 + #36))
|
||||
Counter in file 0 80:16 -> 80:29, (#30 + 0)
|
||||
Counter in file 0 80:30 -> 82:6, #33
|
||||
Counter in file 0 82:15 -> 82:28, ((#30 + 0) - #33)
|
||||
Counter in file 0 83:12 -> 83:25, (((#30 + 0) - #33) - #6)
|
||||
Counter in file 0 83:29 -> 83:42, ((((#30 + 0) - #33) - #6) - #39)
|
||||
Counter in file 0 83:42 -> 83:43, (#39 + #40)
|
||||
Counter in file 0 83:42 -> 83:43, (((((#30 + 0) - #33) - #6) - #39) - #40)
|
||||
Counter in file 0 83:46 -> 83:60, #48
|
||||
Counter in file 0 83:60 -> 83:61, (#43 + #44)
|
||||
Counter in file 0 83:60 -> 83:61, (#48 - #44)
|
||||
Counter in file 0 83:61 -> 85:10, #35
|
||||
Counter in file 0 85:10 -> 85:11, #36
|
||||
Counter in file 0 86:9 -> 86:23, (#35 + #36)
|
||||
Counter in file 0 88:13 -> 90:15, #6
|
||||
Counter in file 0 93:9 -> 93:10, (#9 + (#10 + #11))
|
||||
Counter in file 0 93:16 -> 93:29, ((#33 + (#35 + #36)) + 0)
|
||||
Counter in file 0 93:30 -> 95:6, #9
|
||||
Counter in file 0 95:15 -> 95:28, ((#33 + (#35 + #36)) - #9)
|
||||
Counter in file 0 96:12 -> 96:25, (((#33 + (#35 + #36)) - #9) - #5)
|
||||
Counter in file 0 96:29 -> 96:42, ((((#33 + (#35 + #36)) - #9) - #5) - #45)
|
||||
Counter in file 0 96:42 -> 96:43, (#45 + #46)
|
||||
Counter in file 0 96:42 -> 96:43, (((((#33 + (#35 + #36)) - #9) - #5) - #45) - #46)
|
||||
Counter in file 0 96:46 -> 96:60, #51
|
||||
Counter in file 0 96:60 -> 96:61, (#49 + #50)
|
||||
Counter in file 0 96:60 -> 96:61, (#51 - #50)
|
||||
Counter in file 0 96:61 -> 98:10, #10
|
||||
Counter in file 0 98:10 -> 98:11, #11
|
||||
Counter in file 0 99:9 -> 99:23, (#10 + #11)
|
||||
Counter in file 0 101:9 -> 101:15, #5
|
||||
Counter in file 0 103:1 -> 103:2, ((#9 + (#10 + #11)) + (((#5 + #6) + (#7 + #8)) + (((#2 + 0) - #3) - #4)))
|
||||
Emitting segments for file: ../coverage/conditions.rs
|
||||
Combined regions:
|
||||
4:9 -> 4:26 (count=1)
|
||||
|
|
@ -89,7 +108,7 @@ Combined regions:
|
|||
24:8 -> 24:12 (count=1)
|
||||
24:13 -> 26:6 (count=1)
|
||||
28:8 -> 28:21 (count=1)
|
||||
29:9 -> 29:23 (count=1)
|
||||
28:22 -> 30:6 (count=1)
|
||||
30:15 -> 30:28 (count=0)
|
||||
31:12 -> 31:25 (count=0)
|
||||
31:29 -> 31:42 (count=0)
|
||||
|
|
@ -100,36 +119,53 @@ Combined regions:
|
|||
33:10 -> 33:11 (count=0)
|
||||
34:9 -> 34:23 (count=0)
|
||||
36:9 -> 36:15 (count=0)
|
||||
39:9 -> 39:26 (count=1)
|
||||
40:8 -> 40:12 (count=1)
|
||||
40:13 -> 42:6 (count=1)
|
||||
44:9 -> 44:10 (count=0)
|
||||
44:16 -> 44:29 (count=1)
|
||||
45:9 -> 45:23 (count=0)
|
||||
46:15 -> 46:28 (count=1)
|
||||
47:12 -> 47:25 (count=0)
|
||||
47:29 -> 47:42 (count=0)
|
||||
47:42 -> 47:43 (count=0)
|
||||
47:46 -> 47:60 (count=0)
|
||||
47:60 -> 47:61 (count=0)
|
||||
47:61 -> 49:10 (count=0)
|
||||
49:10 -> 49:11 (count=0)
|
||||
50:9 -> 50:23 (count=0)
|
||||
52:13 -> 54:15 (count=1)
|
||||
57:9 -> 57:10 (count=0)
|
||||
57:16 -> 57:29 (count=0)
|
||||
58:9 -> 58:23 (count=0)
|
||||
59:15 -> 59:28 (count=0)
|
||||
60:12 -> 60:25 (count=0)
|
||||
60:29 -> 60:42 (count=0)
|
||||
60:42 -> 60:43 (count=0)
|
||||
60:46 -> 60:60 (count=0)
|
||||
60:60 -> 60:61 (count=0)
|
||||
60:61 -> 62:10 (count=0)
|
||||
62:10 -> 62:11 (count=0)
|
||||
63:9 -> 63:23 (count=0)
|
||||
65:9 -> 65:15 (count=0)
|
||||
67:1 -> 67:2 (count=1)
|
||||
39:8 -> 39:12 (count=1)
|
||||
52:13 -> 52:30 (count=1)
|
||||
53:12 -> 53:16 (count=1)
|
||||
53:17 -> 55:10 (count=1)
|
||||
57:12 -> 57:25 (count=1)
|
||||
57:26 -> 59:10 (count=1)
|
||||
65:17 -> 65:30 (count=0)
|
||||
66:16 -> 66:29 (count=0)
|
||||
66:33 -> 66:46 (count=0)
|
||||
66:46 -> 66:47 (count=0)
|
||||
66:50 -> 66:64 (count=0)
|
||||
66:64 -> 66:65 (count=0)
|
||||
66:65 -> 68:14 (count=0)
|
||||
68:14 -> 68:15 (count=0)
|
||||
69:13 -> 69:27 (count=0)
|
||||
71:13 -> 71:19 (count=0)
|
||||
73:6 -> 73:7 (count=1)
|
||||
75:9 -> 75:26 (count=1)
|
||||
76:8 -> 76:12 (count=1)
|
||||
76:13 -> 78:6 (count=1)
|
||||
80:9 -> 80:10 (count=0)
|
||||
80:16 -> 80:29 (count=1)
|
||||
80:30 -> 82:6 (count=0)
|
||||
82:15 -> 82:28 (count=1)
|
||||
83:12 -> 83:25 (count=0)
|
||||
83:29 -> 83:42 (count=0)
|
||||
83:42 -> 83:43 (count=0)
|
||||
83:46 -> 83:60 (count=0)
|
||||
83:60 -> 83:61 (count=0)
|
||||
83:61 -> 85:10 (count=0)
|
||||
85:10 -> 85:11 (count=0)
|
||||
86:9 -> 86:23 (count=0)
|
||||
88:13 -> 90:15 (count=1)
|
||||
93:9 -> 93:10 (count=0)
|
||||
93:16 -> 93:29 (count=0)
|
||||
93:30 -> 95:6 (count=0)
|
||||
95:15 -> 95:28 (count=0)
|
||||
96:12 -> 96:25 (count=0)
|
||||
96:29 -> 96:42 (count=0)
|
||||
96:42 -> 96:43 (count=0)
|
||||
96:46 -> 96:60 (count=0)
|
||||
96:60 -> 96:61 (count=0)
|
||||
96:61 -> 98:10 (count=0)
|
||||
98:10 -> 98:11 (count=0)
|
||||
99:9 -> 99:23 (count=0)
|
||||
101:9 -> 101:15 (count=0)
|
||||
103:1 -> 103:2 (count=1)
|
||||
Segment at 4:9 (count = 1), RegionEntry
|
||||
Segment at 4:26 (count = 0), Skipped
|
||||
Segment at 5:8 (count = 1), RegionEntry
|
||||
|
|
@ -166,8 +202,8 @@ Segment at 24:13 (count = 1), RegionEntry
|
|||
Segment at 26:6 (count = 0), Skipped
|
||||
Segment at 28:8 (count = 1), RegionEntry
|
||||
Segment at 28:21 (count = 0), Skipped
|
||||
Segment at 29:9 (count = 1), RegionEntry
|
||||
Segment at 29:23 (count = 0), Skipped
|
||||
Segment at 28:22 (count = 1), RegionEntry
|
||||
Segment at 30:6 (count = 0), Skipped
|
||||
Segment at 30:15 (count = 0), RegionEntry
|
||||
Segment at 30:28 (count = 0), Skipped
|
||||
Segment at 31:12 (count = 0), RegionEntry
|
||||
|
|
@ -184,55 +220,85 @@ Segment at 34:9 (count = 0), RegionEntry
|
|||
Segment at 34:23 (count = 0), Skipped
|
||||
Segment at 36:9 (count = 0), RegionEntry
|
||||
Segment at 36:15 (count = 0), Skipped
|
||||
Segment at 39:9 (count = 1), RegionEntry
|
||||
Segment at 39:26 (count = 0), Skipped
|
||||
Segment at 40:8 (count = 1), RegionEntry
|
||||
Segment at 40:12 (count = 0), Skipped
|
||||
Segment at 40:13 (count = 1), RegionEntry
|
||||
Segment at 42:6 (count = 0), Skipped
|
||||
Segment at 44:9 (count = 0), RegionEntry
|
||||
Segment at 44:10 (count = 0), Skipped
|
||||
Segment at 44:16 (count = 1), RegionEntry
|
||||
Segment at 44:29 (count = 0), Skipped
|
||||
Segment at 45:9 (count = 0), RegionEntry
|
||||
Segment at 45:23 (count = 0), Skipped
|
||||
Segment at 46:15 (count = 1), RegionEntry
|
||||
Segment at 46:28 (count = 0), Skipped
|
||||
Segment at 47:12 (count = 0), RegionEntry
|
||||
Segment at 47:25 (count = 0), Skipped
|
||||
Segment at 47:29 (count = 0), RegionEntry
|
||||
Segment at 47:42 (count = 0), RegionEntry
|
||||
Segment at 47:43 (count = 0), Skipped
|
||||
Segment at 47:46 (count = 0), RegionEntry
|
||||
Segment at 47:60 (count = 0), RegionEntry
|
||||
Segment at 47:61 (count = 0), RegionEntry
|
||||
Segment at 49:10 (count = 0), RegionEntry
|
||||
Segment at 49:11 (count = 0), Skipped
|
||||
Segment at 50:9 (count = 0), RegionEntry
|
||||
Segment at 50:23 (count = 0), Skipped
|
||||
Segment at 39:8 (count = 1), RegionEntry
|
||||
Segment at 39:12 (count = 0), Skipped
|
||||
Segment at 52:13 (count = 1), RegionEntry
|
||||
Segment at 54:15 (count = 0), Skipped
|
||||
Segment at 57:9 (count = 0), RegionEntry
|
||||
Segment at 57:10 (count = 0), Skipped
|
||||
Segment at 57:16 (count = 0), RegionEntry
|
||||
Segment at 57:29 (count = 0), Skipped
|
||||
Segment at 58:9 (count = 0), RegionEntry
|
||||
Segment at 58:23 (count = 0), Skipped
|
||||
Segment at 59:15 (count = 0), RegionEntry
|
||||
Segment at 59:28 (count = 0), Skipped
|
||||
Segment at 60:12 (count = 0), RegionEntry
|
||||
Segment at 60:25 (count = 0), Skipped
|
||||
Segment at 60:29 (count = 0), RegionEntry
|
||||
Segment at 60:42 (count = 0), RegionEntry
|
||||
Segment at 60:43 (count = 0), Skipped
|
||||
Segment at 60:46 (count = 0), RegionEntry
|
||||
Segment at 60:60 (count = 0), RegionEntry
|
||||
Segment at 60:61 (count = 0), RegionEntry
|
||||
Segment at 62:10 (count = 0), RegionEntry
|
||||
Segment at 62:11 (count = 0), Skipped
|
||||
Segment at 63:9 (count = 0), RegionEntry
|
||||
Segment at 63:23 (count = 0), Skipped
|
||||
Segment at 65:9 (count = 0), RegionEntry
|
||||
Segment at 65:15 (count = 0), Skipped
|
||||
Segment at 67:1 (count = 1), RegionEntry
|
||||
Segment at 67:2 (count = 0), Skipped
|
||||
Segment at 52:30 (count = 0), Skipped
|
||||
Segment at 53:12 (count = 1), RegionEntry
|
||||
Segment at 53:16 (count = 0), Skipped
|
||||
Segment at 53:17 (count = 1), RegionEntry
|
||||
Segment at 55:10 (count = 0), Skipped
|
||||
Segment at 57:12 (count = 1), RegionEntry
|
||||
Segment at 57:25 (count = 0), Skipped
|
||||
Segment at 57:26 (count = 1), RegionEntry
|
||||
Segment at 59:10 (count = 0), Skipped
|
||||
Segment at 65:17 (count = 0), RegionEntry
|
||||
Segment at 65:30 (count = 0), Skipped
|
||||
Segment at 66:16 (count = 0), RegionEntry
|
||||
Segment at 66:29 (count = 0), Skipped
|
||||
Segment at 66:33 (count = 0), RegionEntry
|
||||
Segment at 66:46 (count = 0), RegionEntry
|
||||
Segment at 66:47 (count = 0), Skipped
|
||||
Segment at 66:50 (count = 0), RegionEntry
|
||||
Segment at 66:64 (count = 0), RegionEntry
|
||||
Segment at 66:65 (count = 0), RegionEntry
|
||||
Segment at 68:14 (count = 0), RegionEntry
|
||||
Segment at 68:15 (count = 0), Skipped
|
||||
Segment at 69:13 (count = 0), RegionEntry
|
||||
Segment at 69:27 (count = 0), Skipped
|
||||
Segment at 71:13 (count = 0), RegionEntry
|
||||
Segment at 71:19 (count = 0), Skipped
|
||||
Segment at 73:6 (count = 1), RegionEntry
|
||||
Segment at 73:7 (count = 0), Skipped
|
||||
Segment at 75:9 (count = 1), RegionEntry
|
||||
Segment at 75:26 (count = 0), Skipped
|
||||
Segment at 76:8 (count = 1), RegionEntry
|
||||
Segment at 76:12 (count = 0), Skipped
|
||||
Segment at 76:13 (count = 1), RegionEntry
|
||||
Segment at 78:6 (count = 0), Skipped
|
||||
Segment at 80:9 (count = 0), RegionEntry
|
||||
Segment at 80:10 (count = 0), Skipped
|
||||
Segment at 80:16 (count = 1), RegionEntry
|
||||
Segment at 80:29 (count = 0), Skipped
|
||||
Segment at 80:30 (count = 0), RegionEntry
|
||||
Segment at 82:6 (count = 0), Skipped
|
||||
Segment at 82:15 (count = 1), RegionEntry
|
||||
Segment at 82:28 (count = 0), Skipped
|
||||
Segment at 83:12 (count = 0), RegionEntry
|
||||
Segment at 83:25 (count = 0), Skipped
|
||||
Segment at 83:29 (count = 0), RegionEntry
|
||||
Segment at 83:42 (count = 0), RegionEntry
|
||||
Segment at 83:43 (count = 0), Skipped
|
||||
Segment at 83:46 (count = 0), RegionEntry
|
||||
Segment at 83:60 (count = 0), RegionEntry
|
||||
Segment at 83:61 (count = 0), RegionEntry
|
||||
Segment at 85:10 (count = 0), RegionEntry
|
||||
Segment at 85:11 (count = 0), Skipped
|
||||
Segment at 86:9 (count = 0), RegionEntry
|
||||
Segment at 86:23 (count = 0), Skipped
|
||||
Segment at 88:13 (count = 1), RegionEntry
|
||||
Segment at 90:15 (count = 0), Skipped
|
||||
Segment at 93:9 (count = 0), RegionEntry
|
||||
Segment at 93:10 (count = 0), Skipped
|
||||
Segment at 93:16 (count = 0), RegionEntry
|
||||
Segment at 93:29 (count = 0), Skipped
|
||||
Segment at 93:30 (count = 0), RegionEntry
|
||||
Segment at 95:6 (count = 0), Skipped
|
||||
Segment at 95:15 (count = 0), RegionEntry
|
||||
Segment at 95:28 (count = 0), Skipped
|
||||
Segment at 96:12 (count = 0), RegionEntry
|
||||
Segment at 96:25 (count = 0), Skipped
|
||||
Segment at 96:29 (count = 0), RegionEntry
|
||||
Segment at 96:42 (count = 0), RegionEntry
|
||||
Segment at 96:43 (count = 0), Skipped
|
||||
Segment at 96:46 (count = 0), RegionEntry
|
||||
Segment at 96:60 (count = 0), RegionEntry
|
||||
Segment at 96:61 (count = 0), RegionEntry
|
||||
Segment at 98:10 (count = 0), RegionEntry
|
||||
Segment at 98:11 (count = 0), Skipped
|
||||
Segment at 99:9 (count = 0), RegionEntry
|
||||
Segment at 99:23 (count = 0), Skipped
|
||||
Segment at 101:9 (count = 0), RegionEntry
|
||||
Segment at 101:15 (count = 0), Skipped
|
||||
Segment at 103:1 (count = 1), RegionEntry
|
||||
Segment at 103:2 (count = 0), Skipped
|
||||
|
|
|
|||
|
|
@ -1,7 +1,4 @@
|
|||
Counter in file 0 19:13 -> 19:18, #1
|
||||
Counter in file 0 20:13 -> 20:14, #2
|
||||
Counter in file 0 20:17 -> 20:22, (#1 + 0)
|
||||
Counter in file 0 21:9 -> 22:6, (#2 + 0)
|
||||
Counter in file 0 19:13 -> 22:6, #1
|
||||
Counter in file 0 7:9 -> 9:26, #1
|
||||
Counter in file 0 10:8 -> 10:15, (#1 + 0)
|
||||
Counter in file 0 10:16 -> 12:6, #2
|
||||
|
|
@ -11,21 +8,16 @@ Counter in file 0 48:16 -> 50:6, #3
|
|||
Counter in file 0 50:6 -> 50:7, ((#2 + (#1 - #2)) - #3)
|
||||
Counter in file 0 52:9 -> 57:2, (#3 + ((#2 + (#1 - #2)) - #3))
|
||||
Counter in file 0 33:42 -> 36:10, #1
|
||||
Counter in file 0 41:37 -> 41:41, #1
|
||||
Counter in file 0 42:13 -> 43:10, #2
|
||||
Counter in file 0 40:45 -> 43:10, #1
|
||||
Emitting segments for file: ../coverage/inner_items.rs
|
||||
Combined regions:
|
||||
7:9 -> 9:26 (count=1)
|
||||
10:8 -> 10:15 (count=1)
|
||||
10:16 -> 12:6 (count=1)
|
||||
12:6 -> 12:7 (count=0)
|
||||
19:13 -> 19:18 (count=3)
|
||||
20:13 -> 20:14 (count=3)
|
||||
20:17 -> 20:22 (count=3)
|
||||
21:9 -> 22:6 (count=3)
|
||||
19:13 -> 22:6 (count=3)
|
||||
33:42 -> 36:10 (count=1)
|
||||
41:37 -> 41:41 (count=1)
|
||||
42:13 -> 43:10 (count=1)
|
||||
40:45 -> 43:10 (count=1)
|
||||
48:8 -> 48:15 (count=1)
|
||||
48:16 -> 50:6 (count=1)
|
||||
50:6 -> 50:7 (count=0)
|
||||
|
|
@ -38,18 +30,10 @@ Segment at 10:16 (count = 1), RegionEntry
|
|||
Segment at 12:6 (count = 0), RegionEntry
|
||||
Segment at 12:7 (count = 0), Skipped
|
||||
Segment at 19:13 (count = 3), RegionEntry
|
||||
Segment at 19:18 (count = 0), Skipped
|
||||
Segment at 20:13 (count = 3), RegionEntry
|
||||
Segment at 20:14 (count = 0), Skipped
|
||||
Segment at 20:17 (count = 3), RegionEntry
|
||||
Segment at 20:22 (count = 0), Skipped
|
||||
Segment at 21:9 (count = 3), RegionEntry
|
||||
Segment at 22:6 (count = 0), Skipped
|
||||
Segment at 33:42 (count = 1), RegionEntry
|
||||
Segment at 36:10 (count = 0), Skipped
|
||||
Segment at 41:37 (count = 1), RegionEntry
|
||||
Segment at 41:41 (count = 0), Skipped
|
||||
Segment at 42:13 (count = 1), RegionEntry
|
||||
Segment at 40:45 (count = 1), RegionEntry
|
||||
Segment at 43:10 (count = 0), Skipped
|
||||
Segment at 48:8 (count = 1), RegionEntry
|
||||
Segment at 48:15 (count = 0), Skipped
|
||||
|
|
|
|||
|
|
@ -1,21 +1,20 @@
|
|||
Counter in file 0 2:9 -> 3:27, #1
|
||||
Counter in file 0 5:19 -> 5:32, (#1 + #2)
|
||||
Counter in file 0 6:13 -> 7:24, ((#1 + #2) - #3)
|
||||
Counter in file 0 8:13 -> 8:14, ((((#1 + #2) - #3) + (#5 + #6)) - #7)
|
||||
Counter in file 0 8:18 -> 8:23, (((#1 + #2) - #3) + (#5 + #6))
|
||||
Counter in file 0 9:16 -> 9:22, (((((#1 + #2) - #3) + (#5 + #6)) - #7) + 0)
|
||||
Counter in file 0 10:17 -> 10:22, #8
|
||||
Counter in file 0 12:13 -> 12:19, #9
|
||||
Counter in file 0 13:13 -> 13:19, #10
|
||||
Counter in file 0 14:16 -> 14:22, (#10 + 0)
|
||||
Counter in file 0 15:17 -> 16:27, #11
|
||||
Counter in file 0 17:21 -> 17:33, #4
|
||||
Counter in file 0 19:21 -> 21:14, #5
|
||||
Counter in file 0 21:14 -> 21:15, #6
|
||||
Counter in file 0 22:10 -> 22:11, (#5 + #6)
|
||||
Counter in file 0 23:9 -> 23:23, #2
|
||||
Counter in file 0 24:6 -> 24:7, #3
|
||||
Counter in file 0 25:1 -> 25:2, (#4 + #3)
|
||||
Counter in file 0 5:19 -> 5:32, (#1 + (#2 + #3))
|
||||
Counter in file 0 6:13 -> 7:24, ((#1 + (#2 + #3)) - #4)
|
||||
Counter in file 0 8:13 -> 8:14, ((((#1 + (#2 + #3)) - #4) + (#6 + #7)) - #3)
|
||||
Counter in file 0 8:18 -> 8:23, (((#1 + (#2 + #3)) - #4) + (#6 + #7))
|
||||
Counter in file 0 9:16 -> 9:22, (((((#1 + (#2 + #3)) - #4) + (#6 + #7)) - #3) + 0)
|
||||
Counter in file 0 10:17 -> 10:22, #2
|
||||
Counter in file 0 12:13 -> 13:19, (((((#1 + (#2 + #3)) - #4) + (#6 + #7)) - #3) - #2)
|
||||
Counter in file 0 14:16 -> 14:22, ((((((#1 + (#2 + #3)) - #4) + (#6 + #7)) - #3) - #2) + 0)
|
||||
Counter in file 0 15:17 -> 16:27, ((((((#1 + (#2 + #3)) - #4) + (#6 + #7)) - #3) - #2) - #7)
|
||||
Counter in file 0 17:21 -> 17:33, #5
|
||||
Counter in file 0 18:24 -> 21:14, #6
|
||||
Counter in file 0 21:14 -> 21:15, #7
|
||||
Counter in file 0 22:10 -> 22:11, (#6 + #7)
|
||||
Counter in file 0 23:9 -> 23:23, (#2 + #3)
|
||||
Counter in file 0 24:6 -> 24:7, #4
|
||||
Counter in file 0 25:1 -> 25:2, (#5 + #4)
|
||||
Emitting segments for file: ../coverage/nested_loops.rs
|
||||
Combined regions:
|
||||
2:9 -> 3:27 (count=1)
|
||||
|
|
@ -25,12 +24,11 @@ Combined regions:
|
|||
8:18 -> 8:23 (count=3)
|
||||
9:16 -> 9:22 (count=3)
|
||||
10:17 -> 10:22 (count=0)
|
||||
12:13 -> 12:19 (count=3)
|
||||
13:13 -> 13:19 (count=3)
|
||||
12:13 -> 13:19 (count=3)
|
||||
14:16 -> 14:22 (count=3)
|
||||
15:17 -> 16:27 (count=1)
|
||||
17:21 -> 17:33 (count=1)
|
||||
19:21 -> 21:14 (count=0)
|
||||
18:24 -> 21:14 (count=0)
|
||||
21:14 -> 21:15 (count=2)
|
||||
22:10 -> 22:11 (count=2)
|
||||
23:9 -> 23:23 (count=0)
|
||||
|
|
@ -51,8 +49,6 @@ Segment at 9:22 (count = 0), Skipped
|
|||
Segment at 10:17 (count = 0), RegionEntry
|
||||
Segment at 10:22 (count = 0), Skipped
|
||||
Segment at 12:13 (count = 3), RegionEntry
|
||||
Segment at 12:19 (count = 0), Skipped
|
||||
Segment at 13:13 (count = 3), RegionEntry
|
||||
Segment at 13:19 (count = 0), Skipped
|
||||
Segment at 14:16 (count = 3), RegionEntry
|
||||
Segment at 14:22 (count = 0), Skipped
|
||||
|
|
@ -60,7 +56,7 @@ Segment at 15:17 (count = 1), RegionEntry
|
|||
Segment at 16:27 (count = 0), Skipped
|
||||
Segment at 17:21 (count = 1), RegionEntry
|
||||
Segment at 17:33 (count = 0), Skipped
|
||||
Segment at 19:21 (count = 0), RegionEntry
|
||||
Segment at 18:24 (count = 0), RegionEntry
|
||||
Segment at 21:14 (count = 2), RegionEntry
|
||||
Segment at 21:15 (count = 0), Skipped
|
||||
Segment at 22:10 (count = 2), RegionEntry
|
||||
|
|
|
|||
|
|
@ -0,0 +1,53 @@
|
|||
Counter in file 0 16:9 -> 16:27, #1
|
||||
Counter in file 0 17:11 -> 17:24, (#1 + (#2 + (#3 + #4)))
|
||||
Counter in file 0 18:12 -> 18:26, ((#1 + (#2 + (#3 + #4))) - #5)
|
||||
Counter in file 0 18:27 -> 21:10, #2
|
||||
Counter in file 0 21:19 -> 21:32, (((#1 + (#2 + (#3 + #4))) - #5) - #2)
|
||||
Counter in file 0 21:33 -> 24:10, #3
|
||||
Counter in file 0 24:10 -> 24:11, #4
|
||||
Counter in file 0 24:10 -> 24:11, (#3 + #4)
|
||||
Counter in file 0 25:9 -> 25:23, (#2 + (#3 + #4))
|
||||
Counter in file 0 27:5 -> 28:2, #5
|
||||
Counter in file 0 5:8 -> 5:18, #1
|
||||
Counter in file 0 5:19 -> 7:6, #2
|
||||
Counter in file 0 7:6 -> 7:7, (#1 - #2)
|
||||
Counter in file 0 8:9 -> 13:2, (#2 + (#1 - #2))
|
||||
Emitting segments for file: ../coverage/overflow.rs
|
||||
Combined regions:
|
||||
5:8 -> 5:18 (count=4)
|
||||
5:19 -> 7:6 (count=1)
|
||||
7:6 -> 7:7 (count=3)
|
||||
8:9 -> 13:2 (count=4)
|
||||
16:9 -> 16:27 (count=1)
|
||||
17:11 -> 17:24 (count=10)
|
||||
18:12 -> 18:26 (count=10)
|
||||
18:27 -> 21:10 (count=0)
|
||||
21:19 -> 21:32 (count=10)
|
||||
21:33 -> 24:10 (count=3)
|
||||
24:10 -> 24:11 (count=15)
|
||||
25:9 -> 25:23 (count=9)
|
||||
27:5 -> 28:2 (count=0)
|
||||
Segment at 5:8 (count = 4), RegionEntry
|
||||
Segment at 5:18 (count = 0), Skipped
|
||||
Segment at 5:19 (count = 1), RegionEntry
|
||||
Segment at 7:6 (count = 3), RegionEntry
|
||||
Segment at 7:7 (count = 0), Skipped
|
||||
Segment at 8:9 (count = 4), RegionEntry
|
||||
Segment at 13:2 (count = 0), Skipped
|
||||
Segment at 16:9 (count = 1), RegionEntry
|
||||
Segment at 16:27 (count = 0), Skipped
|
||||
Segment at 17:11 (count = 10), RegionEntry
|
||||
Segment at 17:24 (count = 0), Skipped
|
||||
Segment at 18:12 (count = 10), RegionEntry
|
||||
Segment at 18:26 (count = 0), Skipped
|
||||
Segment at 18:27 (count = 0), RegionEntry
|
||||
Segment at 21:10 (count = 0), Skipped
|
||||
Segment at 21:19 (count = 10), RegionEntry
|
||||
Segment at 21:32 (count = 0), Skipped
|
||||
Segment at 21:33 (count = 3), RegionEntry
|
||||
Segment at 24:10 (count = 15), RegionEntry
|
||||
Segment at 24:11 (count = 0), Skipped
|
||||
Segment at 25:9 (count = 9), RegionEntry
|
||||
Segment at 25:23 (count = 0), Skipped
|
||||
Segment at 27:5 (count = 0), RegionEntry
|
||||
Segment at 28:2 (count = 0), Skipped
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
Counter in file 0 14:9 -> 14:27, #1
|
||||
Counter in file 0 15:11 -> 15:24, (#1 + (#2 + (#3 + #4)))
|
||||
Counter in file 0 16:12 -> 16:26, ((#1 + (#2 + (#3 + #4))) - #5)
|
||||
Counter in file 0 16:27 -> 18:10, #2
|
||||
Counter in file 0 18:19 -> 18:32, (((#1 + (#2 + (#3 + #4))) - #5) - #2)
|
||||
Counter in file 0 18:33 -> 20:10, #3
|
||||
Counter in file 0 20:10 -> 20:11, #4
|
||||
Counter in file 0 20:10 -> 20:11, (#3 + #4)
|
||||
Counter in file 0 21:9 -> 21:23, (#2 + (#3 + #4))
|
||||
Counter in file 0 23:5 -> 24:2, #5
|
||||
Counter in file 0 5:8 -> 5:20, #1
|
||||
Counter in file 0 6:9 -> 7:26, #2
|
||||
Counter in file 0 8:12 -> 11:2, (#1 - #2)
|
||||
Emitting segments for file: ../coverage/panic_unwind.rs
|
||||
Combined regions:
|
||||
5:8 -> 5:20 (count=4)
|
||||
6:9 -> 7:26 (count=1)
|
||||
8:12 -> 11:2 (count=3)
|
||||
14:9 -> 14:27 (count=1)
|
||||
15:11 -> 15:24 (count=10)
|
||||
16:12 -> 16:26 (count=10)
|
||||
16:27 -> 18:10 (count=0)
|
||||
18:19 -> 18:32 (count=10)
|
||||
18:33 -> 20:10 (count=3)
|
||||
20:10 -> 20:11 (count=15)
|
||||
21:9 -> 21:23 (count=9)
|
||||
23:5 -> 24:2 (count=0)
|
||||
Segment at 5:8 (count = 4), RegionEntry
|
||||
Segment at 5:20 (count = 0), Skipped
|
||||
Segment at 6:9 (count = 1), RegionEntry
|
||||
Segment at 7:26 (count = 0), Skipped
|
||||
Segment at 8:12 (count = 3), RegionEntry
|
||||
Segment at 11:2 (count = 0), Skipped
|
||||
Segment at 14:9 (count = 1), RegionEntry
|
||||
Segment at 14:27 (count = 0), Skipped
|
||||
Segment at 15:11 (count = 10), RegionEntry
|
||||
Segment at 15:24 (count = 0), Skipped
|
||||
Segment at 16:12 (count = 10), RegionEntry
|
||||
Segment at 16:26 (count = 0), Skipped
|
||||
Segment at 16:27 (count = 0), RegionEntry
|
||||
Segment at 18:10 (count = 0), Skipped
|
||||
Segment at 18:19 (count = 10), RegionEntry
|
||||
Segment at 18:32 (count = 0), Skipped
|
||||
Segment at 18:33 (count = 3), RegionEntry
|
||||
Segment at 20:10 (count = 15), RegionEntry
|
||||
Segment at 20:11 (count = 0), Skipped
|
||||
Segment at 21:9 (count = 9), RegionEntry
|
||||
Segment at 21:23 (count = 0), Skipped
|
||||
Segment at 23:5 (count = 0), RegionEntry
|
||||
Segment at 24:2 (count = 0), Skipped
|
||||
|
|
@ -1,28 +1,28 @@
|
|||
Counter in file 0 4:32 -> 4:33, (#3 + (#1 + #2))
|
||||
Counter in file 0 4:48 -> 4:49, ((#1 + #2) + ((#3 + #4) + ((#5 + #6) + #7)))
|
||||
Counter in file 0 7:5 -> 7:6, #1
|
||||
Counter in file 0 21:11 -> 26:2, #1
|
||||
Counter in file 0 8:5 -> 8:17, #1
|
||||
Counter in file 0 8:5 -> 8:17, #1
|
||||
Counter in file 0 4:39 -> 4:40, #1
|
||||
Counter in file 0 4:48 -> 4:49, (#1 + 0)
|
||||
Counter in file 0 7:5 -> 7:6, #1
|
||||
Counter in file 0 4:39 -> 4:40, #1
|
||||
Counter in file 0 4:48 -> 4:49, (#1 + 0)
|
||||
Counter in file 0 8:5 -> 8:17, #1
|
||||
Counter in file 0 4:32 -> 4:33, ((#4 + #5) + #6)
|
||||
Counter in file 0 7:5 -> 7:6, #1
|
||||
Counter in file 0 4:53 -> 4:54, (#1 + (#2 + (#3 + #4)))
|
||||
Counter in file 0 13:9 -> 18:6, #1
|
||||
Counter in file 0 4:39 -> 4:40, #1
|
||||
Counter in file 0 4:48 -> 4:49, (#1 + 0)
|
||||
Counter in file 0 7:5 -> 7:6, #1
|
||||
Counter in file 0 4:10 -> 4:15, #1
|
||||
Counter in file 0 4:35 -> 4:37, #1
|
||||
Counter in file 0 7:5 -> 7:6, #1
|
||||
Counter in file 0 7:5 -> 7:6, #1
|
||||
Counter in file 0 4:17 -> 4:22, #1
|
||||
Counter in file 0 8:5 -> 8:17, #1
|
||||
Counter in file 0 13:9 -> 18:6, #1
|
||||
Counter in file 0 7:5 -> 7:6, #1
|
||||
Counter in file 0 4:39 -> 4:40, #1
|
||||
Counter in file 0 4:48 -> 4:49, (#1 + 0)
|
||||
Counter in file 0 7:5 -> 7:6, #1
|
||||
Counter in file 0 4:10 -> 4:15, #1
|
||||
Counter in file 0 8:5 -> 8:17, #1
|
||||
Counter in file 0 4:35 -> 4:37, #1
|
||||
Counter in file 0 8:5 -> 8:17, #1
|
||||
Counter in file 0 8:5 -> 8:17, #1
|
||||
Counter in file 0 4:17 -> 4:22, #1
|
||||
Counter in file 0 4:39 -> 4:40, #1
|
||||
Counter in file 0 4:48 -> 4:49, (#1 + 0)
|
||||
Counter in file 0 4:32 -> 4:33, (#3 + (#1 + #2))
|
||||
Emitting segments for file: ../coverage/partial_eq.rs
|
||||
Combined regions:
|
||||
4:17 -> 4:22 (count=2)
|
||||
|
|
|
|||
|
|
@ -3,10 +3,10 @@ Counter in file 0 12:9 -> 12:16, (#1 + 0)
|
|||
Counter in file 0 13:5 -> 18:6, #2
|
||||
Counter in file 0 18:6 -> 18:7, (#1 - #2)
|
||||
Counter in file 0 23:13 -> 25:14, ((#2 + (#1 - #2)) + #3)
|
||||
Counter in file 0 27:13 -> 27:18, #4
|
||||
Counter in file 0 27:13 -> 27:18, (((#2 + (#1 - #2)) + #3) - #3)
|
||||
Counter in file 0 30:9 -> 32:10, #3
|
||||
Counter in file 0 34:6 -> 34:7, (#2 + (#1 - #2))
|
||||
Counter in file 0 35:1 -> 35:2, (#4 + 0)
|
||||
Counter in file 0 35:1 -> 35:2, ((((#2 + (#1 - #2)) + #3) - #3) + 0)
|
||||
Emitting segments for file: ../coverage/simple_loop.rs
|
||||
Combined regions:
|
||||
7:9 -> 9:26 (count=1)
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
Counter in file 0 13:9 -> 14:23, #1
|
||||
Counter in file 0 17:9 -> 17:10, ((#1 + (#2 + #3)) - #4)
|
||||
Counter in file 0 19:9 -> 19:14, (#1 + (#2 + #3))
|
||||
Counter in file 0 21:9 -> 25:26, #8
|
||||
Counter in file 0 27:13 -> 27:41, #9
|
||||
Counter in file 0 21:9 -> 25:26, (((#1 + (#2 + #3)) - #4) + 0)
|
||||
Counter in file 0 27:13 -> 27:41, #8
|
||||
Counter in file 0 27:41 -> 27:42, #5
|
||||
Counter in file 0 28:13 -> 28:42, (#9 - #5)
|
||||
Counter in file 0 28:13 -> 28:42, (#8 - #5)
|
||||
Counter in file 0 28:42 -> 28:43, #6
|
||||
Counter in file 0 32:13 -> 32:42, (#8 - #9)
|
||||
Counter in file 0 32:13 -> 32:42, (((#1 + (#2 + #3)) - #4) - #8)
|
||||
Counter in file 0 32:42 -> 32:43, #7
|
||||
Counter in file 0 33:10 -> 33:11, #2
|
||||
Counter in file 0 33:10 -> 33:11, #3
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
Counter in file 0 5:9 -> 5:27, #1
|
||||
Counter in file 0 7:9 -> 9:10, (#1 + #2)
|
||||
Counter in file 0 12:13 -> 14:14, ((#1 + #2) - #3)
|
||||
Counter in file 0 18:21 -> 20:22, #6
|
||||
Counter in file 0 18:21 -> 20:22, (((#1 + #2) - #3) - #2)
|
||||
Counter in file 0 22:21 -> 22:27, #4
|
||||
Counter in file 0 26:21 -> 26:27, #5
|
||||
Counter in file 0 30:9 -> 32:10, #2
|
||||
|
|
|
|||
|
|
@ -0,0 +1,90 @@
|
|||
Counter in file 0 8:9 -> 8:22, #1
|
||||
Counter in file 0 13:11 -> 14:35, (#1 + 0)
|
||||
Counter in file 0 14:39 -> 14:41, #4
|
||||
Counter in file 0 15:14 -> 15:52, (#2 + #3)
|
||||
Counter in file 0 17:11 -> 17:46, (#4 + 0)
|
||||
Counter in file 0 18:34 -> 18:39, (#4 - #5)
|
||||
Counter in file 0 18:44 -> 18:46, ((#4 - #5) - #6)
|
||||
Counter in file 0 19:14 -> 19:52, (#5 + #6)
|
||||
Counter in file 0 22:9 -> 22:22, (((#4 - #5) - #6) + 0)
|
||||
Counter in file 0 29:11 -> 30:35, (((#4 - #5) - #6) + 0)
|
||||
Counter in file 0 30:39 -> 30:41, #9
|
||||
Counter in file 0 31:14 -> 31:52, (#7 + #8)
|
||||
Counter in file 0 33:11 -> 34:35, (#9 + 0)
|
||||
Counter in file 0 34:39 -> 34:41, #12
|
||||
Counter in file 0 35:14 -> 35:52, (#10 + #11)
|
||||
Counter in file 0 37:1 -> 37:2, (#12 + 0)
|
||||
Counter in file 0 9:9 -> 9:16, #1
|
||||
Counter in file 0 10:16 -> 11:6, #2
|
||||
Counter in file 0 23:9 -> 23:16, #1
|
||||
Counter in file 0 24:9 -> 24:16, #2
|
||||
Counter in file 0 25:9 -> 25:16, #3
|
||||
Counter in file 0 26:16 -> 27:6, #4
|
||||
Emitting segments for file: ../coverage/yield.rs
|
||||
Combined regions:
|
||||
8:9 -> 8:22 (count=1)
|
||||
9:9 -> 9:16 (count=1)
|
||||
10:16 -> 11:6 (count=1)
|
||||
13:11 -> 14:35 (count=1)
|
||||
14:39 -> 14:41 (count=1)
|
||||
15:14 -> 15:52 (count=0)
|
||||
17:11 -> 17:46 (count=1)
|
||||
18:34 -> 18:39 (count=1)
|
||||
18:44 -> 18:46 (count=1)
|
||||
19:14 -> 19:52 (count=0)
|
||||
22:9 -> 22:22 (count=1)
|
||||
23:9 -> 23:16 (count=1)
|
||||
24:9 -> 24:16 (count=1)
|
||||
25:9 -> 25:16 (count=0)
|
||||
26:16 -> 27:6 (count=0)
|
||||
29:11 -> 30:35 (count=1)
|
||||
30:39 -> 30:41 (count=1)
|
||||
31:14 -> 31:52 (count=0)
|
||||
33:11 -> 34:35 (count=1)
|
||||
34:39 -> 34:41 (count=1)
|
||||
35:14 -> 35:52 (count=0)
|
||||
37:1 -> 37:2 (count=1)
|
||||
Segment at 8:9 (count = 1), RegionEntry
|
||||
Segment at 8:22 (count = 0), Skipped
|
||||
Segment at 9:9 (count = 1), RegionEntry
|
||||
Segment at 9:16 (count = 0), Skipped
|
||||
Segment at 10:16 (count = 1), RegionEntry
|
||||
Segment at 11:6 (count = 0), Skipped
|
||||
Segment at 13:11 (count = 1), RegionEntry
|
||||
Segment at 14:35 (count = 0), Skipped
|
||||
Segment at 14:39 (count = 1), RegionEntry
|
||||
Segment at 14:41 (count = 0), Skipped
|
||||
Segment at 15:14 (count = 0), RegionEntry
|
||||
Segment at 15:52 (count = 0), Skipped
|
||||
Segment at 17:11 (count = 1), RegionEntry
|
||||
Segment at 17:46 (count = 0), Skipped
|
||||
Segment at 18:34 (count = 1), RegionEntry
|
||||
Segment at 18:39 (count = 0), Skipped
|
||||
Segment at 18:44 (count = 1), RegionEntry
|
||||
Segment at 18:46 (count = 0), Skipped
|
||||
Segment at 19:14 (count = 0), RegionEntry
|
||||
Segment at 19:52 (count = 0), Skipped
|
||||
Segment at 22:9 (count = 1), RegionEntry
|
||||
Segment at 22:22 (count = 0), Skipped
|
||||
Segment at 23:9 (count = 1), RegionEntry
|
||||
Segment at 23:16 (count = 0), Skipped
|
||||
Segment at 24:9 (count = 1), RegionEntry
|
||||
Segment at 24:16 (count = 0), Skipped
|
||||
Segment at 25:9 (count = 0), RegionEntry
|
||||
Segment at 25:16 (count = 0), Skipped
|
||||
Segment at 26:16 (count = 0), RegionEntry
|
||||
Segment at 27:6 (count = 0), Skipped
|
||||
Segment at 29:11 (count = 1), RegionEntry
|
||||
Segment at 30:35 (count = 0), Skipped
|
||||
Segment at 30:39 (count = 1), RegionEntry
|
||||
Segment at 30:41 (count = 0), Skipped
|
||||
Segment at 31:14 (count = 0), RegionEntry
|
||||
Segment at 31:52 (count = 0), Skipped
|
||||
Segment at 33:11 (count = 1), RegionEntry
|
||||
Segment at 34:35 (count = 0), Skipped
|
||||
Segment at 34:39 (count = 1), RegionEntry
|
||||
Segment at 34:41 (count = 0), Skipped
|
||||
Segment at 35:14 (count = 0), RegionEntry
|
||||
Segment at 35:52 (count = 0), Skipped
|
||||
Segment at 37:1 (count = 1), RegionEntry
|
||||
Segment at 37:2 (count = 0), Skipped
|
||||
|
|
@ -43,6 +43,9 @@ endif
|
|||
%: $(SOURCEDIR)/%.rs
|
||||
# Compile the test program with coverage instrumentation and generate relevant MIR.
|
||||
$(RUSTC) $(SOURCEDIR)/$@.rs \
|
||||
$$( grep -q '^\/\/ require-rust-edition-2018' $(SOURCEDIR)/$@.rs && \
|
||||
echo "--edition=2018" \
|
||||
) \
|
||||
-Zinstrument-coverage \
|
||||
-Clink-dead-code=$(LINK_DEAD_CODE) \
|
||||
-Zdump-mir=InstrumentCoverage \
|
||||
|
|
|
|||
|
|
@ -0,0 +1,99 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
Preview this file as rendered HTML from the github source at:
|
||||
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.abort/abort.main.-------.InstrumentCoverage.0.html
|
||||
|
||||
For revisions in Pull Requests (PR):
|
||||
* Replace "rust-lang" with the github PR author
|
||||
* Replace "master" with the PR branch name
|
||||
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>abort.main - Coverage Spans</title>
|
||||
<style>
|
||||
.line {
|
||||
counter-increment: line;
|
||||
}
|
||||
.line:before {
|
||||
content: counter(line) ": ";
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
font-style: italic;
|
||||
width: 3.8em;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
filter: opacity(50%);
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.code {
|
||||
color: #dddddd;
|
||||
background-color: #222222;
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
line-height: 1.4em;
|
||||
border-bottom: 2px solid #222222;
|
||||
white-space: pre;
|
||||
display: inline-block;
|
||||
}
|
||||
.odd {
|
||||
background-color: #55bbff;
|
||||
color: #223311;
|
||||
}
|
||||
.even {
|
||||
background-color: #ee7756;
|
||||
color: #551133;
|
||||
}
|
||||
.code {
|
||||
--index: calc(var(--layer) - 1);
|
||||
padding-top: calc(var(--index) * 0.15em);
|
||||
filter:
|
||||
hue-rotate(calc(var(--index) * 25deg))
|
||||
saturate(calc(100% - (var(--index) * 2%)))
|
||||
brightness(calc(100% - (var(--index) * 1.5%)));
|
||||
}
|
||||
.annotation {
|
||||
color: #4444ff;
|
||||
font-family: monospace;
|
||||
font-style: italic;
|
||||
display: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
body:active .annotation {
|
||||
/* requires holding mouse down anywhere on the page */
|
||||
display: inline-block;
|
||||
}
|
||||
span:hover .annotation {
|
||||
/* requires hover over a span ONLY on its first line */
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 13"><span class="line"><span class="code" style="--layer: 0">fn main() -> Result<(),u8> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> let </span><span><span class="code even" style="--layer: 1" title="15:25-15:27: @0[1]: _1 = const 10_i32
|
||||
15:9-15:22: @0[2]: FakeRead(ForLet, _1)"><span class="annotation">@0⦊</span>mut countdown = 10<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> while </span><span><span class="code odd" style="--layer: 1" title="16:11-16:20: @2[2]: _5 = _1
|
||||
16:11-16:24: @2[3]: _4 = Gt(move _5, const 0_i32)
|
||||
16:11-16:24: @2[5]: FakeRead(ForMatchedPlace, _4)"><span class="annotation">@1,2⦊</span>countdown > 0<span class="annotation">⦉@1,2</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> if </span><span><span class="code even" style="--layer: 1" title="17:12-17:21: @5[3]: _8 = _1
|
||||
17:12-17:25: @5[4]: _7 = Lt(move _8, const 5_i32)
|
||||
17:12-17:25: @5[6]: FakeRead(ForMatchedPlace, _7)"><span class="annotation">@3,5⦊</span>countdown < 5<span class="annotation">⦉@3,5</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="18:13-18:31: @8.Call: _9 = might_abort(const false) -> [return: bb9, unwind: bb12]
|
||||
17:26-19:10: @9[1]: _6 = const ()
|
||||
19:10-19:10: @9.Goto: goto -> bb10"><span class="annotation">@6,8,9⦊</span>{</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="18:13-18:31: @8.Call: _9 = might_abort(const false) -> [return: bb9, unwind: bb12]
|
||||
17:26-19:10: @9[1]: _6 = const ()
|
||||
19:10-19:10: @9.Goto: goto -> bb10"> might_abort(false);</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="18:13-18:31: @8.Call: _9 = might_abort(const false) -> [return: bb9, unwind: bb12]
|
||||
17:26-19:10: @9[1]: _6 = const ()
|
||||
19:10-19:10: @9.Goto: goto -> bb10"> }<span class="annotation">⦉@6,8,9</span></span></span><span><span class="code even" style="--layer: 1" title="19:10-19:10: @7.Goto: goto -> bb10"><span class="annotation">@7⦊</span>‸<span class="annotation">⦉@7</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="20:9-20:23: @10[2]: _10 = CheckedSub(_1, const 1_i32)
|
||||
20:9-20:23: @11[0]: _1 = move (_10.0: i32)"><span class="annotation">@10,11⦊</span>countdown -= 1<span class="annotation">⦉@10,11</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="22:8-22:10: @4[4]: _12 = ()
|
||||
22:5-22:11: @4[5]: _0 = std::result::Result::<(), u8>::Ok(move _12)
|
||||
23:2-23:2: @4.Return: return"><span class="annotation">@4⦊</span>Ok(())</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="22:8-22:10: @4[4]: _12 = ()
|
||||
22:5-22:11: @4[5]: _0 = std::result::Result::<(), u8>::Ok(move _12)
|
||||
23:2-23:2: @4.Return: return">}<span class="annotation">⦉@4</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,164 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
Preview this file as rendered HTML from the github source at:
|
||||
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.abort/abort.might_abort.-------.InstrumentCoverage.0.html
|
||||
|
||||
For revisions in Pull Requests (PR):
|
||||
* Replace "rust-lang" with the github PR author
|
||||
* Replace "master" with the PR branch name
|
||||
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>abort.might_abort - Coverage Spans</title>
|
||||
<style>
|
||||
.line {
|
||||
counter-increment: line;
|
||||
}
|
||||
.line:before {
|
||||
content: counter(line) ": ";
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
font-style: italic;
|
||||
width: 3.8em;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
filter: opacity(50%);
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.code {
|
||||
color: #dddddd;
|
||||
background-color: #222222;
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
line-height: 1.4em;
|
||||
border-bottom: 2px solid #222222;
|
||||
white-space: pre;
|
||||
display: inline-block;
|
||||
}
|
||||
.odd {
|
||||
background-color: #55bbff;
|
||||
color: #223311;
|
||||
}
|
||||
.even {
|
||||
background-color: #ee7756;
|
||||
color: #551133;
|
||||
}
|
||||
.code {
|
||||
--index: calc(var(--layer) - 1);
|
||||
padding-top: calc(var(--index) * 0.15em);
|
||||
filter:
|
||||
hue-rotate(calc(var(--index) * 25deg))
|
||||
saturate(calc(100% - (var(--index) * 2%)))
|
||||
brightness(calc(100% - (var(--index) * 1.5%)));
|
||||
}
|
||||
.annotation {
|
||||
color: #4444ff;
|
||||
font-family: monospace;
|
||||
font-style: italic;
|
||||
display: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
body:active .annotation {
|
||||
/* requires holding mouse down anywhere on the page */
|
||||
display: inline-block;
|
||||
}
|
||||
span:hover .annotation {
|
||||
/* requires hover over a span ONLY on its first line */
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 4"><span class="line"><span class="code" style="--layer: 0">fn might_abort(should_abort: bool) {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> if </span><span><span class="code even" style="--layer: 1" title="6:8-6:20: @0[1]: _2 = _1
|
||||
6:8-6:20: @0[2]: FakeRead(ForMatchedPlace, _2)"><span class="annotation">@0⦊</span>should_abort<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="7:18-7:31: @3[6]: _33 = const might_abort::promoted[3]
|
||||
7:18-7:31: @3[7]: _9 = &(*_33)
|
||||
7:18-7:31: @3[8]: _8 = &(*_9)
|
||||
7:18-7:31: @3[9]: _7 = move _8 as &[&str] (Pointer(Unsize))
|
||||
7:9-7:33: @3[15]: _15 = ()
|
||||
7:9-7:33: @3[16]: FakeRead(ForMatchedPlace, _15)
|
||||
7:9-7:33: @3[17]: _32 = const might_abort::promoted[2]
|
||||
7:9-7:33: @3[18]: _13 = &(*_32)
|
||||
7:9-7:33: @3[19]: _12 = &(*_13)
|
||||
7:9-7:33: @3[20]: _11 = move _12 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
7:9-7:33: @3.Call: _6 = Arguments::new_v1(move _7, move _11) -> [return: bb4, unwind: bb8]
|
||||
7:9-7:33: @4.Call: _5 = _print(move _6) -> [return: bb5, unwind: bb8]
|
||||
7:9-7:33: @5[5]: _4 = const ()
|
||||
8:9-8:37: @5.Call: begin_panic::<&str>(const "panics and aborts") -> bb8"><span class="annotation">@1,3,4,5⦊</span>println!("aborting...");</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="7:18-7:31: @3[6]: _33 = const might_abort::promoted[3]
|
||||
7:18-7:31: @3[7]: _9 = &(*_33)
|
||||
7:18-7:31: @3[8]: _8 = &(*_9)
|
||||
7:18-7:31: @3[9]: _7 = move _8 as &[&str] (Pointer(Unsize))
|
||||
7:9-7:33: @3[15]: _15 = ()
|
||||
7:9-7:33: @3[16]: FakeRead(ForMatchedPlace, _15)
|
||||
7:9-7:33: @3[17]: _32 = const might_abort::promoted[2]
|
||||
7:9-7:33: @3[18]: _13 = &(*_32)
|
||||
7:9-7:33: @3[19]: _12 = &(*_13)
|
||||
7:9-7:33: @3[20]: _11 = move _12 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
7:9-7:33: @3.Call: _6 = Arguments::new_v1(move _7, move _11) -> [return: bb4, unwind: bb8]
|
||||
7:9-7:33: @4.Call: _5 = _print(move _6) -> [return: bb5, unwind: bb8]
|
||||
7:9-7:33: @5[5]: _4 = const ()
|
||||
8:9-8:37: @5.Call: begin_panic::<&str>(const "panics and aborts") -> bb8"> panic!("panics and aborts");<span class="annotation">⦉@1,3,4,5</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> } else </span><span><span class="code even" style="--layer: 1" title="10:18-10:31: @2[6]: _31 = const might_abort::promoted[1]
|
||||
10:18-10:31: @2[7]: _23 = &(*_31)
|
||||
10:18-10:31: @2[8]: _22 = &(*_23)
|
||||
10:18-10:31: @2[9]: _21 = move _22 as &[&str] (Pointer(Unsize))
|
||||
10:9-10:33: @2[15]: _29 = ()
|
||||
10:9-10:33: @2[16]: FakeRead(ForMatchedPlace, _29)
|
||||
10:9-10:33: @2[17]: _30 = const might_abort::promoted[0]
|
||||
10:9-10:33: @2[18]: _27 = &(*_30)
|
||||
10:9-10:33: @2[19]: _26 = &(*_27)
|
||||
10:9-10:33: @2[20]: _25 = move _26 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
10:9-10:33: @2.Call: _20 = Arguments::new_v1(move _21, move _25) -> [return: bb6, unwind: bb8]
|
||||
10:9-10:33: @6.Call: _19 = _print(move _20) -> [return: bb7, unwind: bb8]
|
||||
10:9-10:33: @7[5]: _18 = const ()
|
||||
9:12-11:6: @7[7]: _0 = const ()
|
||||
12:2-12:2: @7.Return: return"><span class="annotation">@2,6,7⦊</span>{</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="10:18-10:31: @2[6]: _31 = const might_abort::promoted[1]
|
||||
10:18-10:31: @2[7]: _23 = &(*_31)
|
||||
10:18-10:31: @2[8]: _22 = &(*_23)
|
||||
10:18-10:31: @2[9]: _21 = move _22 as &[&str] (Pointer(Unsize))
|
||||
10:9-10:33: @2[15]: _29 = ()
|
||||
10:9-10:33: @2[16]: FakeRead(ForMatchedPlace, _29)
|
||||
10:9-10:33: @2[17]: _30 = const might_abort::promoted[0]
|
||||
10:9-10:33: @2[18]: _27 = &(*_30)
|
||||
10:9-10:33: @2[19]: _26 = &(*_27)
|
||||
10:9-10:33: @2[20]: _25 = move _26 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
10:9-10:33: @2.Call: _20 = Arguments::new_v1(move _21, move _25) -> [return: bb6, unwind: bb8]
|
||||
10:9-10:33: @6.Call: _19 = _print(move _20) -> [return: bb7, unwind: bb8]
|
||||
10:9-10:33: @7[5]: _18 = const ()
|
||||
9:12-11:6: @7[7]: _0 = const ()
|
||||
12:2-12:2: @7.Return: return"> println!("Don't Panic");</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="10:18-10:31: @2[6]: _31 = const might_abort::promoted[1]
|
||||
10:18-10:31: @2[7]: _23 = &(*_31)
|
||||
10:18-10:31: @2[8]: _22 = &(*_23)
|
||||
10:18-10:31: @2[9]: _21 = move _22 as &[&str] (Pointer(Unsize))
|
||||
10:9-10:33: @2[15]: _29 = ()
|
||||
10:9-10:33: @2[16]: FakeRead(ForMatchedPlace, _29)
|
||||
10:9-10:33: @2[17]: _30 = const might_abort::promoted[0]
|
||||
10:9-10:33: @2[18]: _27 = &(*_30)
|
||||
10:9-10:33: @2[19]: _26 = &(*_27)
|
||||
10:9-10:33: @2[20]: _25 = move _26 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
10:9-10:33: @2.Call: _20 = Arguments::new_v1(move _21, move _25) -> [return: bb6, unwind: bb8]
|
||||
10:9-10:33: @6.Call: _19 = _print(move _20) -> [return: bb7, unwind: bb8]
|
||||
10:9-10:33: @7[5]: _18 = const ()
|
||||
9:12-11:6: @7[7]: _0 = const ()
|
||||
12:2-12:2: @7.Return: return"> }</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="10:18-10:31: @2[6]: _31 = const might_abort::promoted[1]
|
||||
10:18-10:31: @2[7]: _23 = &(*_31)
|
||||
10:18-10:31: @2[8]: _22 = &(*_23)
|
||||
10:18-10:31: @2[9]: _21 = move _22 as &[&str] (Pointer(Unsize))
|
||||
10:9-10:33: @2[15]: _29 = ()
|
||||
10:9-10:33: @2[16]: FakeRead(ForMatchedPlace, _29)
|
||||
10:9-10:33: @2[17]: _30 = const might_abort::promoted[0]
|
||||
10:9-10:33: @2[18]: _27 = &(*_30)
|
||||
10:9-10:33: @2[19]: _26 = &(*_27)
|
||||
10:9-10:33: @2[20]: _25 = move _26 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
10:9-10:33: @2.Call: _20 = Arguments::new_v1(move _21, move _25) -> [return: bb6, unwind: bb8]
|
||||
10:9-10:33: @6.Call: _19 = _print(move _20) -> [return: bb7, unwind: bb8]
|
||||
10:9-10:33: @7[5]: _18 = const ()
|
||||
9:12-11:6: @7[7]: _0 = const ()
|
||||
12:2-12:2: @7.Return: return">}<span class="annotation">⦉@2,6,7</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,103 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
Preview this file as rendered HTML from the github source at:
|
||||
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.assert/assert.main.-------.InstrumentCoverage.0.html
|
||||
|
||||
For revisions in Pull Requests (PR):
|
||||
* Replace "rust-lang" with the github PR author
|
||||
* Replace "master" with the PR branch name
|
||||
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>assert.main - Coverage Spans</title>
|
||||
<style>
|
||||
.line {
|
||||
counter-increment: line;
|
||||
}
|
||||
.line:before {
|
||||
content: counter(line) ": ";
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
font-style: italic;
|
||||
width: 3.8em;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
filter: opacity(50%);
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.code {
|
||||
color: #dddddd;
|
||||
background-color: #222222;
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
line-height: 1.4em;
|
||||
border-bottom: 2px solid #222222;
|
||||
white-space: pre;
|
||||
display: inline-block;
|
||||
}
|
||||
.odd {
|
||||
background-color: #55bbff;
|
||||
color: #223311;
|
||||
}
|
||||
.even {
|
||||
background-color: #ee7756;
|
||||
color: #551133;
|
||||
}
|
||||
.code {
|
||||
--index: calc(var(--layer) - 1);
|
||||
padding-top: calc(var(--index) * 0.15em);
|
||||
filter:
|
||||
hue-rotate(calc(var(--index) * 25deg))
|
||||
saturate(calc(100% - (var(--index) * 2%)))
|
||||
brightness(calc(100% - (var(--index) * 1.5%)));
|
||||
}
|
||||
.annotation {
|
||||
color: #4444ff;
|
||||
font-family: monospace;
|
||||
font-style: italic;
|
||||
display: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
body:active .annotation {
|
||||
/* requires holding mouse down anywhere on the page */
|
||||
display: inline-block;
|
||||
}
|
||||
span:hover .annotation {
|
||||
/* requires hover over a span ONLY on its first line */
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 8"><span class="line"><span class="code" style="--layer: 0">fn main() -> Result<(),u8> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> let </span><span><span class="code even" style="--layer: 1" title="10:25-10:27: @0[1]: _1 = const 10_i32
|
||||
10:9-10:22: @0[2]: FakeRead(ForLet, _1)"><span class="annotation">@0⦊</span>mut countdown = 10<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> while </span><span><span class="code odd" style="--layer: 1" title="11:11-11:20: @2[2]: _5 = _1
|
||||
11:11-11:24: @2[3]: _4 = Gt(move _5, const 0_i32)
|
||||
11:11-11:24: @2[5]: FakeRead(ForMatchedPlace, _4)"><span class="annotation">@1,2⦊</span>countdown > 0<span class="annotation">⦉@1,2</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> if </span><span><span class="code even" style="--layer: 1" title="12:12-12:21: @5[3]: _8 = _1
|
||||
12:12-12:26: @5[4]: _7 = Eq(move _8, const 1_i32)
|
||||
12:12-12:26: @5[6]: FakeRead(ForMatchedPlace, _7)"><span class="annotation">@3,5⦊</span>countdown == 1<span class="annotation">⦉@3,5</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="13:13-13:33: @8.Call: _9 = might_fail_assert(const 3_u32) -> [return: bb9, unwind: bb17]
|
||||
12:27-14:10: @9[1]: _6 = const ()"><span class="annotation">@6,8,9⦊</span>{</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="13:13-13:33: @8.Call: _9 = might_fail_assert(const 3_u32) -> [return: bb9, unwind: bb17]
|
||||
12:27-14:10: @9[1]: _6 = const ()"> might_fail_assert(3);</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="13:13-13:33: @8.Call: _9 = might_fail_assert(const 3_u32) -> [return: bb9, unwind: bb17]
|
||||
12:27-14:10: @9[1]: _6 = const ()"> }<span class="annotation">⦉@6,8,9</span></span></span><span class="code" style="--layer: 0"> else if </span><span><span class="code even" style="--layer: 1" title="14:19-14:28: @7[2]: _11 = _1
|
||||
14:19-14:32: @7[3]: _10 = Lt(move _11, const 5_i32)
|
||||
14:19-14:32: @7[5]: FakeRead(ForMatchedPlace, _10)"><span class="annotation">@7⦊</span>countdown < 5<span class="annotation">⦉@7</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="15:13-15:33: @12.Call: _12 = might_fail_assert(const 2_u32) -> [return: bb13, unwind: bb17]
|
||||
14:33-16:10: @13[1]: _6 = const ()"><span class="annotation">@10,12,13⦊</span>{</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="15:13-15:33: @12.Call: _12 = might_fail_assert(const 2_u32) -> [return: bb13, unwind: bb17]
|
||||
14:33-16:10: @13[1]: _6 = const ()"> might_fail_assert(2);</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="15:13-15:33: @12.Call: _12 = might_fail_assert(const 2_u32) -> [return: bb13, unwind: bb17]
|
||||
14:33-16:10: @13[1]: _6 = const ()"> }<span class="annotation">⦉@10,12,13</span></span></span><span><span class="code even" style="--layer: 1" title="16:10-16:10: @11.Goto: goto -> bb14"><span class="annotation">@11⦊</span>‸<span class="annotation">⦉@11</span></span></span><span><span class="code odd" style="--layer: 1" title="16:10-16:10: @14.Goto: goto -> bb15"><span class="annotation">@14⦊</span>‸<span class="annotation">⦉@14</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="17:9-17:23: @15[2]: _13 = CheckedSub(_1, const 1_i32)
|
||||
17:9-17:23: @16[0]: _1 = move (_13.0: i32)"><span class="annotation">@15,16⦊</span>countdown -= 1<span class="annotation">⦉@15,16</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="19:8-19:10: @4[4]: _15 = ()
|
||||
19:5-19:11: @4[5]: _0 = std::result::Result::<(), u8>::Ok(move _15)
|
||||
20:2-20:2: @4.Return: return"><span class="annotation">@4⦊</span>Ok(())</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="19:8-19:10: @4[4]: _15 = ()
|
||||
19:5-19:11: @4[5]: _0 = std::result::Result::<(), u8>::Ok(move _15)
|
||||
20:2-20:2: @4.Return: return">}<span class="annotation">⦉@4</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,97 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
Preview this file as rendered HTML from the github source at:
|
||||
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.assert/assert.might_fail_assert.-------.InstrumentCoverage.0.html
|
||||
|
||||
For revisions in Pull Requests (PR):
|
||||
* Replace "rust-lang" with the github PR author
|
||||
* Replace "master" with the PR branch name
|
||||
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>assert.might_fail_assert - Coverage Spans</title>
|
||||
<style>
|
||||
.line {
|
||||
counter-increment: line;
|
||||
}
|
||||
.line:before {
|
||||
content: counter(line) ": ";
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
font-style: italic;
|
||||
width: 3.8em;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
filter: opacity(50%);
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.code {
|
||||
color: #dddddd;
|
||||
background-color: #222222;
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
line-height: 1.4em;
|
||||
border-bottom: 2px solid #222222;
|
||||
white-space: pre;
|
||||
display: inline-block;
|
||||
}
|
||||
.odd {
|
||||
background-color: #55bbff;
|
||||
color: #223311;
|
||||
}
|
||||
.even {
|
||||
background-color: #ee7756;
|
||||
color: #551133;
|
||||
}
|
||||
.code {
|
||||
--index: calc(var(--layer) - 1);
|
||||
padding-top: calc(var(--index) * 0.15em);
|
||||
filter:
|
||||
hue-rotate(calc(var(--index) * 25deg))
|
||||
saturate(calc(100% - (var(--index) * 2%)))
|
||||
brightness(calc(100% - (var(--index) * 1.5%)));
|
||||
}
|
||||
.annotation {
|
||||
color: #4444ff;
|
||||
font-family: monospace;
|
||||
font-style: italic;
|
||||
display: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
body:active .annotation {
|
||||
/* requires holding mouse down anywhere on the page */
|
||||
display: inline-block;
|
||||
}
|
||||
span:hover .annotation {
|
||||
/* requires hover over a span ONLY on its first line */
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 3"><span class="line"><span class="code" style="--layer: 0">fn might_fail_assert(one_plus_one: u32) {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="5:14-5:32: @0[6]: _75 = const might_fail_assert::promoted[4]
|
||||
5:14-5:32: @0[7]: _7 = &(*_75)
|
||||
5:14-5:32: @0[8]: _6 = &(*_7)
|
||||
5:14-5:32: @0[9]: _5 = move _6 as &[&str] (Pointer(Unsize))
|
||||
5:34-5:46: @0[17]: _14 = &_1
|
||||
5:5-5:48: @0[18]: _13 = (move _14,)
|
||||
5:5-5:48: @0[20]: FakeRead(ForMatchedPlace, _13)
|
||||
5:5-5:48: @0[22]: _15 = (_13.0: &u32)
|
||||
5:5-5:48: @0[25]: _17 = &(*_15)
|
||||
5:5-5:48: @0[27]: _18 = <u32 as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r u32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer))
|
||||
5:5-5:48: @0.Call: _16 = ArgumentV1::new::<u32>(move _17, move _18) -> [return: bb1, unwind: bb13]
|
||||
5:5-5:48: @1[2]: _12 = [move _16]
|
||||
5:5-5:48: @1[5]: _11 = &_12
|
||||
5:5-5:48: @1[6]: _10 = &(*_11)
|
||||
5:5-5:48: @1[7]: _9 = move _10 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
5:5-5:48: @1.Call: _4 = Arguments::new_v1(move _5, move _9) -> [return: bb2, unwind: bb13]
|
||||
5:5-5:48: @2.Call: _3 = _print(move _4) -> [return: bb3, unwind: bb13]
|
||||
5:5-5:48: @3[6]: _2 = const ()"><span class="annotation">@0,1,2,3,4⦊</span>println!("does 1 + 1 = {}?", one_plus_one);<span class="annotation">⦉@0,1,2,3,4</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> assert_eq!(</span><span><span class="code even" style="--layer: 1" title="6:16-6:21: @3[11]: _23 = CheckedAdd(const 1_u32, const 1_u32)"><span class="annotation">@0,1,2,3,4⦊</span>1 + 1<span class="annotation">⦉@0,1,2,3,4</span></span></span><span class="code" style="--layer: 0">, one_plus_one, </span><span><span class="code odd" style="--layer: 1" title="6:37-6:61: @7[30]: _72 = const might_fail_assert::promoted[1]
|
||||
6:37-6:61: @7[31]: _52 = &(*_72)
|
||||
6:37-6:61: @7[32]: _51 = &(*_52)
|
||||
6:37-6:61: @7[33]: _50 = move _51 as &[&str] (Pointer(Unsize))"><span class="annotation">@5,7,8,9,10,11,12⦊</span>"the argument was wrong"<span class="annotation">⦉@5,7,8,9,10,11,12</span></span></span><span class="code" style="--layer: 0">);</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code even" style="--layer: 1" title="7:2-7:2: @6.Return: return"><span class="annotation">@6⦊</span>‸<span class="annotation">⦉@6</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,89 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
Preview this file as rendered HTML from the github source at:
|
||||
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.async/async.executor-block_on-VTABLE-%7Bclosure%230%7D.-------.InstrumentCoverage.0.html
|
||||
|
||||
For revisions in Pull Requests (PR):
|
||||
* Replace "rust-lang" with the github PR author
|
||||
* Replace "master" with the PR branch name
|
||||
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>async.executor-block_on-VTABLE-{closure#0} - Coverage Spans</title>
|
||||
<style>
|
||||
.line {
|
||||
counter-increment: line;
|
||||
}
|
||||
.line:before {
|
||||
content: counter(line) ": ";
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
font-style: italic;
|
||||
width: 3.8em;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
filter: opacity(50%);
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.code {
|
||||
color: #dddddd;
|
||||
background-color: #222222;
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
line-height: 1.4em;
|
||||
border-bottom: 2px solid #222222;
|
||||
white-space: pre;
|
||||
display: inline-block;
|
||||
}
|
||||
.odd {
|
||||
background-color: #55bbff;
|
||||
color: #223311;
|
||||
}
|
||||
.even {
|
||||
background-color: #ee7756;
|
||||
color: #551133;
|
||||
}
|
||||
.code {
|
||||
--index: calc(var(--layer) - 1);
|
||||
padding-top: calc(var(--index) * 0.15em);
|
||||
filter:
|
||||
hue-rotate(calc(var(--index) * 25deg))
|
||||
saturate(calc(100% - (var(--index) * 2%)))
|
||||
brightness(calc(100% - (var(--index) * 1.5%)));
|
||||
}
|
||||
.annotation {
|
||||
color: #4444ff;
|
||||
font-family: monospace;
|
||||
font-style: italic;
|
||||
display: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
body:active .annotation {
|
||||
/* requires holding mouse down anywhere on the page */
|
||||
display: inline-block;
|
||||
}
|
||||
span:hover .annotation {
|
||||
/* requires hover over a span ONLY on its first line */
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 13"><span class="line"> <span class="code" style="--layer: 0">{</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="15:38-15:74: @1[3]: _15 = (move _16,)
|
||||
15:38-15:74: @1[5]: FakeRead(ForMatchedPlace, _15)
|
||||
15:38-15:74: @1[7]: _27 = (_15.0: &std::fmt::Arguments)
|
||||
15:38-15:74: @1[10]: _29 = &(*_27)
|
||||
15:38-15:74: @1[12]: _30 = <Arguments as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::fmt::Arguments, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer))
|
||||
15:38-15:74: @1.Call: _28 = ArgumentV1::new::<Arguments>(move _29, move _30) -> [return: bb2, unwind: bb4]
|
||||
15:38-15:74: @2[2]: _14 = [move _28]
|
||||
15:38-15:74: @2[5]: _13 = &_14
|
||||
15:38-15:74: @2[6]: _12 = &(*_13)
|
||||
15:38-15:74: @2[7]: _11 = move _12 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
15:38-15:74: @2.Call: _6 = Arguments::new_v1(move _7, move _11) -> [return: bb3, unwind: bb4]
|
||||
15:37-15:74: @3[2]: _5 = &_6
|
||||
15:37-15:74: @3[3]: _4 = &(*_5)
|
||||
15:9-15:75: @3.Call: begin_panic_fmt(move _4) -> bb4"><span class="annotation">@0,1,2,3⦊</span>$crate::rt::begin_panic_fmt(&$crate::format_args!($fmt, $($arg)+))<span class="annotation">⦉@0,1,2,3</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,89 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
Preview this file as rendered HTML from the github source at:
|
||||
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.async/async.executor-block_on-VTABLE-%7Bclosure%231%7D.-------.InstrumentCoverage.0.html
|
||||
|
||||
For revisions in Pull Requests (PR):
|
||||
* Replace "rust-lang" with the github PR author
|
||||
* Replace "master" with the PR branch name
|
||||
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>async.executor-block_on-VTABLE-{closure#1} - Coverage Spans</title>
|
||||
<style>
|
||||
.line {
|
||||
counter-increment: line;
|
||||
}
|
||||
.line:before {
|
||||
content: counter(line) ": ";
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
font-style: italic;
|
||||
width: 3.8em;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
filter: opacity(50%);
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.code {
|
||||
color: #dddddd;
|
||||
background-color: #222222;
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
line-height: 1.4em;
|
||||
border-bottom: 2px solid #222222;
|
||||
white-space: pre;
|
||||
display: inline-block;
|
||||
}
|
||||
.odd {
|
||||
background-color: #55bbff;
|
||||
color: #223311;
|
||||
}
|
||||
.even {
|
||||
background-color: #ee7756;
|
||||
color: #551133;
|
||||
}
|
||||
.code {
|
||||
--index: calc(var(--layer) - 1);
|
||||
padding-top: calc(var(--index) * 0.15em);
|
||||
filter:
|
||||
hue-rotate(calc(var(--index) * 25deg))
|
||||
saturate(calc(100% - (var(--index) * 2%)))
|
||||
brightness(calc(100% - (var(--index) * 1.5%)));
|
||||
}
|
||||
.annotation {
|
||||
color: #4444ff;
|
||||
font-family: monospace;
|
||||
font-style: italic;
|
||||
display: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
body:active .annotation {
|
||||
/* requires holding mouse down anywhere on the page */
|
||||
display: inline-block;
|
||||
}
|
||||
span:hover .annotation {
|
||||
/* requires hover over a span ONLY on its first line */
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 13"><span class="line"> <span class="code" style="--layer: 0">{</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="15:38-15:74: @1[3]: _15 = (move _16,)
|
||||
15:38-15:74: @1[5]: FakeRead(ForMatchedPlace, _15)
|
||||
15:38-15:74: @1[7]: _27 = (_15.0: &std::fmt::Arguments)
|
||||
15:38-15:74: @1[10]: _29 = &(*_27)
|
||||
15:38-15:74: @1[12]: _30 = <Arguments as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::fmt::Arguments, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer))
|
||||
15:38-15:74: @1.Call: _28 = ArgumentV1::new::<Arguments>(move _29, move _30) -> [return: bb2, unwind: bb4]
|
||||
15:38-15:74: @2[2]: _14 = [move _28]
|
||||
15:38-15:74: @2[5]: _13 = &_14
|
||||
15:38-15:74: @2[6]: _12 = &(*_13)
|
||||
15:38-15:74: @2[7]: _11 = move _12 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
15:38-15:74: @2.Call: _6 = Arguments::new_v1(move _7, move _11) -> [return: bb3, unwind: bb4]
|
||||
15:37-15:74: @3[2]: _5 = &_6
|
||||
15:37-15:74: @3[3]: _4 = &(*_5)
|
||||
15:9-15:75: @3.Call: begin_panic_fmt(move _4) -> bb4"><span class="annotation">@0,1,2,3⦊</span>$crate::rt::begin_panic_fmt(&$crate::format_args!($fmt, $($arg)+))<span class="annotation">⦉@0,1,2,3</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,89 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
Preview this file as rendered HTML from the github source at:
|
||||
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.async/async.executor-block_on-VTABLE-%7Bclosure%232%7D.-------.InstrumentCoverage.0.html
|
||||
|
||||
For revisions in Pull Requests (PR):
|
||||
* Replace "rust-lang" with the github PR author
|
||||
* Replace "master" with the PR branch name
|
||||
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>async.executor-block_on-VTABLE-{closure#2} - Coverage Spans</title>
|
||||
<style>
|
||||
.line {
|
||||
counter-increment: line;
|
||||
}
|
||||
.line:before {
|
||||
content: counter(line) ": ";
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
font-style: italic;
|
||||
width: 3.8em;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
filter: opacity(50%);
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.code {
|
||||
color: #dddddd;
|
||||
background-color: #222222;
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
line-height: 1.4em;
|
||||
border-bottom: 2px solid #222222;
|
||||
white-space: pre;
|
||||
display: inline-block;
|
||||
}
|
||||
.odd {
|
||||
background-color: #55bbff;
|
||||
color: #223311;
|
||||
}
|
||||
.even {
|
||||
background-color: #ee7756;
|
||||
color: #551133;
|
||||
}
|
||||
.code {
|
||||
--index: calc(var(--layer) - 1);
|
||||
padding-top: calc(var(--index) * 0.15em);
|
||||
filter:
|
||||
hue-rotate(calc(var(--index) * 25deg))
|
||||
saturate(calc(100% - (var(--index) * 2%)))
|
||||
brightness(calc(100% - (var(--index) * 1.5%)));
|
||||
}
|
||||
.annotation {
|
||||
color: #4444ff;
|
||||
font-family: monospace;
|
||||
font-style: italic;
|
||||
display: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
body:active .annotation {
|
||||
/* requires holding mouse down anywhere on the page */
|
||||
display: inline-block;
|
||||
}
|
||||
span:hover .annotation {
|
||||
/* requires hover over a span ONLY on its first line */
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 13"><span class="line"> <span class="code" style="--layer: 0">{</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="15:38-15:74: @1[3]: _15 = (move _16,)
|
||||
15:38-15:74: @1[5]: FakeRead(ForMatchedPlace, _15)
|
||||
15:38-15:74: @1[7]: _27 = (_15.0: &std::fmt::Arguments)
|
||||
15:38-15:74: @1[10]: _29 = &(*_27)
|
||||
15:38-15:74: @1[12]: _30 = <Arguments as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r std::fmt::Arguments, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer))
|
||||
15:38-15:74: @1.Call: _28 = ArgumentV1::new::<Arguments>(move _29, move _30) -> [return: bb2, unwind: bb4]
|
||||
15:38-15:74: @2[2]: _14 = [move _28]
|
||||
15:38-15:74: @2[5]: _13 = &_14
|
||||
15:38-15:74: @2[6]: _12 = &(*_13)
|
||||
15:38-15:74: @2[7]: _11 = move _12 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
15:38-15:74: @2.Call: _6 = Arguments::new_v1(move _7, move _11) -> [return: bb3, unwind: bb4]
|
||||
15:37-15:74: @3[2]: _5 = &_6
|
||||
15:37-15:74: @3[3]: _4 = &(*_5)
|
||||
15:9-15:75: @3.Call: begin_panic_fmt(move _4) -> bb4"><span class="annotation">@0,1,2,3⦊</span>$crate::rt::begin_panic_fmt(&$crate::format_args!($fmt, $($arg)+))<span class="annotation">⦉@0,1,2,3</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
Preview this file as rendered HTML from the github source at:
|
||||
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.async/async.executor-block_on-VTABLE-%7Bclosure%233%7D.-------.InstrumentCoverage.0.html
|
||||
|
||||
For revisions in Pull Requests (PR):
|
||||
* Replace "rust-lang" with the github PR author
|
||||
* Replace "master" with the PR branch name
|
||||
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>async.executor-block_on-VTABLE-{closure#3} - Coverage Spans</title>
|
||||
<style>
|
||||
.line {
|
||||
counter-increment: line;
|
||||
}
|
||||
.line:before {
|
||||
content: counter(line) ": ";
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
font-style: italic;
|
||||
width: 3.8em;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
filter: opacity(50%);
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.code {
|
||||
color: #dddddd;
|
||||
background-color: #222222;
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
line-height: 1.4em;
|
||||
border-bottom: 2px solid #222222;
|
||||
white-space: pre;
|
||||
display: inline-block;
|
||||
}
|
||||
.odd {
|
||||
background-color: #55bbff;
|
||||
color: #223311;
|
||||
}
|
||||
.even {
|
||||
background-color: #ee7756;
|
||||
color: #551133;
|
||||
}
|
||||
.code {
|
||||
--index: calc(var(--layer) - 1);
|
||||
padding-top: calc(var(--index) * 0.15em);
|
||||
filter:
|
||||
hue-rotate(calc(var(--index) * 25deg))
|
||||
saturate(calc(100% - (var(--index) * 2%)))
|
||||
brightness(calc(100% - (var(--index) * 1.5%)));
|
||||
}
|
||||
.annotation {
|
||||
color: #4444ff;
|
||||
font-family: monospace;
|
||||
font-style: italic;
|
||||
display: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
body:active .annotation {
|
||||
/* requires holding mouse down anywhere on the page */
|
||||
display: inline-block;
|
||||
}
|
||||
span:hover .annotation {
|
||||
/* requires hover over a span ONLY on its first line */
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 52"><span class="line"> <span class="code" style="--layer: 0">|_| </span><span><span class="code even" style="--layer: 1" title="53:17-53:19: @0[0]: _0 = ()
|
||||
53:19-53:19: @0.Return: return"><span class="annotation">@0⦊</span>()<span class="annotation">⦉@0</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,226 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
Preview this file as rendered HTML from the github source at:
|
||||
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.async/async.executor-block_on.-------.InstrumentCoverage.0.html
|
||||
|
||||
For revisions in Pull Requests (PR):
|
||||
* Replace "rust-lang" with the github PR author
|
||||
* Replace "master" with the PR branch name
|
||||
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>async.executor-block_on - Coverage Spans</title>
|
||||
<style>
|
||||
.line {
|
||||
counter-increment: line;
|
||||
}
|
||||
.line:before {
|
||||
content: counter(line) ": ";
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
font-style: italic;
|
||||
width: 3.8em;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
filter: opacity(50%);
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.code {
|
||||
color: #dddddd;
|
||||
background-color: #222222;
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
line-height: 1.4em;
|
||||
border-bottom: 2px solid #222222;
|
||||
white-space: pre;
|
||||
display: inline-block;
|
||||
}
|
||||
.odd {
|
||||
background-color: #55bbff;
|
||||
color: #223311;
|
||||
}
|
||||
.even {
|
||||
background-color: #ee7756;
|
||||
color: #551133;
|
||||
}
|
||||
.code {
|
||||
--index: calc(var(--layer) - 1);
|
||||
padding-top: calc(var(--index) * 0.15em);
|
||||
filter:
|
||||
hue-rotate(calc(var(--index) * 25deg))
|
||||
saturate(calc(100% - (var(--index) * 2%)))
|
||||
brightness(calc(100% - (var(--index) * 1.5%)));
|
||||
}
|
||||
.annotation {
|
||||
color: #4444ff;
|
||||
font-family: monospace;
|
||||
font-style: italic;
|
||||
display: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
body:active .annotation {
|
||||
/* requires holding mouse down anywhere on the page */
|
||||
display: inline-block;
|
||||
}
|
||||
span:hover .annotation {
|
||||
/* requires hover over a span ONLY on its first line */
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 45"><span class="line"> <span class="code" style="--layer: 0">pub fn block_on<F: Future>(mut future: F) -> F::Output {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> let </span><span><span class="code even" style="--layer: 1" title="47:54-47:65: @0[2]: _3 = &mut _1
|
||||
47:35-47:66: @0.Call: _2 = Pin::<&mut F>::new_unchecked(move _3) -> [return: bb1, unwind: bb20]
|
||||
47:13-47:23: @1[1]: FakeRead(ForLet, _2)
|
||||
55:60-55:77: @1.Call: _6 = null::<()>() -> [return: bb2, unwind: bb20]
|
||||
55:80-55:86: @2[3]: _9 = const {alloc0: &RawWakerVTable}
|
||||
55:79-55:86: @2[4]: _8 = &(*_9)
|
||||
55:79-55:86: @2[5]: _7 = &(*_8)
|
||||
55:46-55:87: @2.Call: _5 = RawWaker::new(move _6, move _7) -> [return: bb3, unwind: bb20]
|
||||
55:30-55:88: @3.Call: _4 = Waker::from_raw(move _5) -> [return: bb4, unwind: bb20]
|
||||
55:13-55:18: @4[1]: FakeRead(ForLet, _4)
|
||||
56:47-56:53: @4[7]: _12 = &_4
|
||||
56:47-56:53: @4[8]: _11 = &(*_12)
|
||||
56:27-56:54: @4.Call: _10 = Context::from_waker(move _11) -> [return: bb5, unwind: bb19]
|
||||
56:13-56:24: @5[1]: FakeRead(ForLet, _10)"><span class="annotation">@0,1,2,3,4,5⦊</span>mut future = unsafe { Pin::new_unchecked(&mut future) };</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="47:54-47:65: @0[2]: _3 = &mut _1
|
||||
47:35-47:66: @0.Call: _2 = Pin::<&mut F>::new_unchecked(move _3) -> [return: bb1, unwind: bb20]
|
||||
47:13-47:23: @1[1]: FakeRead(ForLet, _2)
|
||||
55:60-55:77: @1.Call: _6 = null::<()>() -> [return: bb2, unwind: bb20]
|
||||
55:80-55:86: @2[3]: _9 = const {alloc0: &RawWakerVTable}
|
||||
55:79-55:86: @2[4]: _8 = &(*_9)
|
||||
55:79-55:86: @2[5]: _7 = &(*_8)
|
||||
55:46-55:87: @2.Call: _5 = RawWaker::new(move _6, move _7) -> [return: bb3, unwind: bb20]
|
||||
55:30-55:88: @3.Call: _4 = Waker::from_raw(move _5) -> [return: bb4, unwind: bb20]
|
||||
55:13-55:18: @4[1]: FakeRead(ForLet, _4)
|
||||
56:47-56:53: @4[7]: _12 = &_4
|
||||
56:47-56:53: @4[8]: _11 = &(*_12)
|
||||
56:27-56:54: @4.Call: _10 = Context::from_waker(move _11) -> [return: bb5, unwind: bb19]
|
||||
56:13-56:24: @5[1]: FakeRead(ForLet, _10)"></span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="47:54-47:65: @0[2]: _3 = &mut _1
|
||||
47:35-47:66: @0.Call: _2 = Pin::<&mut F>::new_unchecked(move _3) -> [return: bb1, unwind: bb20]
|
||||
47:13-47:23: @1[1]: FakeRead(ForLet, _2)
|
||||
55:60-55:77: @1.Call: _6 = null::<()>() -> [return: bb2, unwind: bb20]
|
||||
55:80-55:86: @2[3]: _9 = const {alloc0: &RawWakerVTable}
|
||||
55:79-55:86: @2[4]: _8 = &(*_9)
|
||||
55:79-55:86: @2[5]: _7 = &(*_8)
|
||||
55:46-55:87: @2.Call: _5 = RawWaker::new(move _6, move _7) -> [return: bb3, unwind: bb20]
|
||||
55:30-55:88: @3.Call: _4 = Waker::from_raw(move _5) -> [return: bb4, unwind: bb20]
|
||||
55:13-55:18: @4[1]: FakeRead(ForLet, _4)
|
||||
56:47-56:53: @4[7]: _12 = &_4
|
||||
56:47-56:53: @4[8]: _11 = &(*_12)
|
||||
56:27-56:54: @4.Call: _10 = Context::from_waker(move _11) -> [return: bb5, unwind: bb19]
|
||||
56:13-56:24: @5[1]: FakeRead(ForLet, _10)"> static VTABLE: RawWakerVTable = RawWakerVTable::new(</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="47:54-47:65: @0[2]: _3 = &mut _1
|
||||
47:35-47:66: @0.Call: _2 = Pin::<&mut F>::new_unchecked(move _3) -> [return: bb1, unwind: bb20]
|
||||
47:13-47:23: @1[1]: FakeRead(ForLet, _2)
|
||||
55:60-55:77: @1.Call: _6 = null::<()>() -> [return: bb2, unwind: bb20]
|
||||
55:80-55:86: @2[3]: _9 = const {alloc0: &RawWakerVTable}
|
||||
55:79-55:86: @2[4]: _8 = &(*_9)
|
||||
55:79-55:86: @2[5]: _7 = &(*_8)
|
||||
55:46-55:87: @2.Call: _5 = RawWaker::new(move _6, move _7) -> [return: bb3, unwind: bb20]
|
||||
55:30-55:88: @3.Call: _4 = Waker::from_raw(move _5) -> [return: bb4, unwind: bb20]
|
||||
55:13-55:18: @4[1]: FakeRead(ForLet, _4)
|
||||
56:47-56:53: @4[7]: _12 = &_4
|
||||
56:47-56:53: @4[8]: _11 = &(*_12)
|
||||
56:27-56:54: @4.Call: _10 = Context::from_waker(move _11) -> [return: bb5, unwind: bb19]
|
||||
56:13-56:24: @5[1]: FakeRead(ForLet, _10)"> |_| unimplemented!("clone"),</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="47:54-47:65: @0[2]: _3 = &mut _1
|
||||
47:35-47:66: @0.Call: _2 = Pin::<&mut F>::new_unchecked(move _3) -> [return: bb1, unwind: bb20]
|
||||
47:13-47:23: @1[1]: FakeRead(ForLet, _2)
|
||||
55:60-55:77: @1.Call: _6 = null::<()>() -> [return: bb2, unwind: bb20]
|
||||
55:80-55:86: @2[3]: _9 = const {alloc0: &RawWakerVTable}
|
||||
55:79-55:86: @2[4]: _8 = &(*_9)
|
||||
55:79-55:86: @2[5]: _7 = &(*_8)
|
||||
55:46-55:87: @2.Call: _5 = RawWaker::new(move _6, move _7) -> [return: bb3, unwind: bb20]
|
||||
55:30-55:88: @3.Call: _4 = Waker::from_raw(move _5) -> [return: bb4, unwind: bb20]
|
||||
55:13-55:18: @4[1]: FakeRead(ForLet, _4)
|
||||
56:47-56:53: @4[7]: _12 = &_4
|
||||
56:47-56:53: @4[8]: _11 = &(*_12)
|
||||
56:27-56:54: @4.Call: _10 = Context::from_waker(move _11) -> [return: bb5, unwind: bb19]
|
||||
56:13-56:24: @5[1]: FakeRead(ForLet, _10)"> |_| unimplemented!("wake"),</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="47:54-47:65: @0[2]: _3 = &mut _1
|
||||
47:35-47:66: @0.Call: _2 = Pin::<&mut F>::new_unchecked(move _3) -> [return: bb1, unwind: bb20]
|
||||
47:13-47:23: @1[1]: FakeRead(ForLet, _2)
|
||||
55:60-55:77: @1.Call: _6 = null::<()>() -> [return: bb2, unwind: bb20]
|
||||
55:80-55:86: @2[3]: _9 = const {alloc0: &RawWakerVTable}
|
||||
55:79-55:86: @2[4]: _8 = &(*_9)
|
||||
55:79-55:86: @2[5]: _7 = &(*_8)
|
||||
55:46-55:87: @2.Call: _5 = RawWaker::new(move _6, move _7) -> [return: bb3, unwind: bb20]
|
||||
55:30-55:88: @3.Call: _4 = Waker::from_raw(move _5) -> [return: bb4, unwind: bb20]
|
||||
55:13-55:18: @4[1]: FakeRead(ForLet, _4)
|
||||
56:47-56:53: @4[7]: _12 = &_4
|
||||
56:47-56:53: @4[8]: _11 = &(*_12)
|
||||
56:27-56:54: @4.Call: _10 = Context::from_waker(move _11) -> [return: bb5, unwind: bb19]
|
||||
56:13-56:24: @5[1]: FakeRead(ForLet, _10)"> |_| unimplemented!("wake_by_ref"),</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="47:54-47:65: @0[2]: _3 = &mut _1
|
||||
47:35-47:66: @0.Call: _2 = Pin::<&mut F>::new_unchecked(move _3) -> [return: bb1, unwind: bb20]
|
||||
47:13-47:23: @1[1]: FakeRead(ForLet, _2)
|
||||
55:60-55:77: @1.Call: _6 = null::<()>() -> [return: bb2, unwind: bb20]
|
||||
55:80-55:86: @2[3]: _9 = const {alloc0: &RawWakerVTable}
|
||||
55:79-55:86: @2[4]: _8 = &(*_9)
|
||||
55:79-55:86: @2[5]: _7 = &(*_8)
|
||||
55:46-55:87: @2.Call: _5 = RawWaker::new(move _6, move _7) -> [return: bb3, unwind: bb20]
|
||||
55:30-55:88: @3.Call: _4 = Waker::from_raw(move _5) -> [return: bb4, unwind: bb20]
|
||||
55:13-55:18: @4[1]: FakeRead(ForLet, _4)
|
||||
56:47-56:53: @4[7]: _12 = &_4
|
||||
56:47-56:53: @4[8]: _11 = &(*_12)
|
||||
56:27-56:54: @4.Call: _10 = Context::from_waker(move _11) -> [return: bb5, unwind: bb19]
|
||||
56:13-56:24: @5[1]: FakeRead(ForLet, _10)"> |_| (),</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="47:54-47:65: @0[2]: _3 = &mut _1
|
||||
47:35-47:66: @0.Call: _2 = Pin::<&mut F>::new_unchecked(move _3) -> [return: bb1, unwind: bb20]
|
||||
47:13-47:23: @1[1]: FakeRead(ForLet, _2)
|
||||
55:60-55:77: @1.Call: _6 = null::<()>() -> [return: bb2, unwind: bb20]
|
||||
55:80-55:86: @2[3]: _9 = const {alloc0: &RawWakerVTable}
|
||||
55:79-55:86: @2[4]: _8 = &(*_9)
|
||||
55:79-55:86: @2[5]: _7 = &(*_8)
|
||||
55:46-55:87: @2.Call: _5 = RawWaker::new(move _6, move _7) -> [return: bb3, unwind: bb20]
|
||||
55:30-55:88: @3.Call: _4 = Waker::from_raw(move _5) -> [return: bb4, unwind: bb20]
|
||||
55:13-55:18: @4[1]: FakeRead(ForLet, _4)
|
||||
56:47-56:53: @4[7]: _12 = &_4
|
||||
56:47-56:53: @4[8]: _11 = &(*_12)
|
||||
56:27-56:54: @4.Call: _10 = Context::from_waker(move _11) -> [return: bb5, unwind: bb19]
|
||||
56:13-56:24: @5[1]: FakeRead(ForLet, _10)"> );</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="47:54-47:65: @0[2]: _3 = &mut _1
|
||||
47:35-47:66: @0.Call: _2 = Pin::<&mut F>::new_unchecked(move _3) -> [return: bb1, unwind: bb20]
|
||||
47:13-47:23: @1[1]: FakeRead(ForLet, _2)
|
||||
55:60-55:77: @1.Call: _6 = null::<()>() -> [return: bb2, unwind: bb20]
|
||||
55:80-55:86: @2[3]: _9 = const {alloc0: &RawWakerVTable}
|
||||
55:79-55:86: @2[4]: _8 = &(*_9)
|
||||
55:79-55:86: @2[5]: _7 = &(*_8)
|
||||
55:46-55:87: @2.Call: _5 = RawWaker::new(move _6, move _7) -> [return: bb3, unwind: bb20]
|
||||
55:30-55:88: @3.Call: _4 = Waker::from_raw(move _5) -> [return: bb4, unwind: bb20]
|
||||
55:13-55:18: @4[1]: FakeRead(ForLet, _4)
|
||||
56:47-56:53: @4[7]: _12 = &_4
|
||||
56:47-56:53: @4[8]: _11 = &(*_12)
|
||||
56:27-56:54: @4.Call: _10 = Context::from_waker(move _11) -> [return: bb5, unwind: bb19]
|
||||
56:13-56:24: @5[1]: FakeRead(ForLet, _10)"> let waker = unsafe { Waker::from_raw(RawWaker::new(core::ptr::null(), &VTABLE)) };</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="47:54-47:65: @0[2]: _3 = &mut _1
|
||||
47:35-47:66: @0.Call: _2 = Pin::<&mut F>::new_unchecked(move _3) -> [return: bb1, unwind: bb20]
|
||||
47:13-47:23: @1[1]: FakeRead(ForLet, _2)
|
||||
55:60-55:77: @1.Call: _6 = null::<()>() -> [return: bb2, unwind: bb20]
|
||||
55:80-55:86: @2[3]: _9 = const {alloc0: &RawWakerVTable}
|
||||
55:79-55:86: @2[4]: _8 = &(*_9)
|
||||
55:79-55:86: @2[5]: _7 = &(*_8)
|
||||
55:46-55:87: @2.Call: _5 = RawWaker::new(move _6, move _7) -> [return: bb3, unwind: bb20]
|
||||
55:30-55:88: @3.Call: _4 = Waker::from_raw(move _5) -> [return: bb4, unwind: bb20]
|
||||
55:13-55:18: @4[1]: FakeRead(ForLet, _4)
|
||||
56:47-56:53: @4[7]: _12 = &_4
|
||||
56:47-56:53: @4[8]: _11 = &(*_12)
|
||||
56:27-56:54: @4.Call: _10 = Context::from_waker(move _11) -> [return: bb5, unwind: bb19]
|
||||
56:13-56:24: @5[1]: FakeRead(ForLet, _10)"> let mut context = Context::from_waker(&waker)<span class="annotation">⦉@0,1,2,3,4,5</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> loop {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> if let Poll::Ready(</span><span><span class="code odd" style="--layer: 1" title="59:32-59:35: @12[1]: _20 = move ((_14 as Ready).0: <F as std::future::Future>::Output)"><span class="annotation">@10,12,14,15,16,17⦊</span>val<span class="annotation">⦉@10,12,14,15,16,17</span></span></span><span class="code" style="--layer: 0">) = </span><span><span class="code even" style="--layer: 1" title="59:39-59:45: @7[3]: _16 = &mut _2
|
||||
59:39-59:54: @7.Call: _15 = Pin::<&mut F>::as_mut(move _16) -> [return: bb8, unwind: bb19]
|
||||
59:60-59:72: @8[3]: _18 = &mut _10
|
||||
59:60-59:72: @8[4]: _17 = &mut (*_18)
|
||||
59:39-59:73: @8.Call: _14 = <F as Future>::poll(move _15, move _17) -> [return: bb9, unwind: bb19]
|
||||
59:39-59:73: @9[2]: FakeRead(ForMatchedPlace, _14)"><span class="annotation">@6,7,8,9⦊</span>future.as_mut().poll(&mut context)<span class="annotation">⦉@6,7,8,9</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> break </span><span><span class="code odd" style="--layer: 1" title="60:23-60:26: @12[2]: _0 = move _20"><span class="annotation">@10,12,14,15,16,17⦊</span>val<span class="annotation">⦉@10,12,14,15,16,17</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span><span><span class="code even" style="--layer: 1" title="62:10-62:10: @13.Goto: goto -> bb6"><span class="annotation">@11,13⦊</span>‸<span class="annotation">⦉@11,13</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span><span><span class="code odd" style="--layer: 1" title="63:6-63:6: @17.Return: return"><span class="annotation">@10,12,14,15,16,17⦊</span>‸<span class="annotation">⦉@10,12,14,15,16,17</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
Preview this file as rendered HTML from the github source at:
|
||||
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.async/async.f-%7Bclosure%230%7D.-------.InstrumentCoverage.0.html
|
||||
|
||||
For revisions in Pull Requests (PR):
|
||||
* Replace "rust-lang" with the github PR author
|
||||
* Replace "master" with the PR branch name
|
||||
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>async.f-{closure#0} - Coverage Spans</title>
|
||||
<style>
|
||||
.line {
|
||||
counter-increment: line;
|
||||
}
|
||||
.line:before {
|
||||
content: counter(line) ": ";
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
font-style: italic;
|
||||
width: 3.8em;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
filter: opacity(50%);
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.code {
|
||||
color: #dddddd;
|
||||
background-color: #222222;
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
line-height: 1.4em;
|
||||
border-bottom: 2px solid #222222;
|
||||
white-space: pre;
|
||||
display: inline-block;
|
||||
}
|
||||
.odd {
|
||||
background-color: #55bbff;
|
||||
color: #223311;
|
||||
}
|
||||
.even {
|
||||
background-color: #ee7756;
|
||||
color: #551133;
|
||||
}
|
||||
.code {
|
||||
--index: calc(var(--layer) - 1);
|
||||
padding-top: calc(var(--index) * 0.15em);
|
||||
filter:
|
||||
hue-rotate(calc(var(--index) * 25deg))
|
||||
saturate(calc(100% - (var(--index) * 2%)))
|
||||
brightness(calc(100% - (var(--index) * 1.5%)));
|
||||
}
|
||||
.annotation {
|
||||
color: #4444ff;
|
||||
font-family: monospace;
|
||||
font-style: italic;
|
||||
display: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
body:active .annotation {
|
||||
/* requires holding mouse down anywhere on the page */
|
||||
display: inline-block;
|
||||
}
|
||||
span:hover .annotation {
|
||||
/* requires hover over a span ONLY on its first line */
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 4"><span class="line"> <span class="code" style="--layer: 0">{ </span><span><span class="code even" style="--layer: 1" title="5:22-5:23: @0[0]: _0 = const 1_u8
|
||||
5:25-5:25: @0.Return: return"><span class="annotation">@0⦊</span>1 }<span class="annotation">⦉@0</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,74 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
Preview this file as rendered HTML from the github source at:
|
||||
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.async/async.f.-------.InstrumentCoverage.0.html
|
||||
|
||||
For revisions in Pull Requests (PR):
|
||||
* Replace "rust-lang" with the github PR author
|
||||
* Replace "master" with the PR branch name
|
||||
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>async.f - Coverage Spans</title>
|
||||
<style>
|
||||
.line {
|
||||
counter-increment: line;
|
||||
}
|
||||
.line:before {
|
||||
content: counter(line) ": ";
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
font-style: italic;
|
||||
width: 3.8em;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
filter: opacity(50%);
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.code {
|
||||
color: #dddddd;
|
||||
background-color: #222222;
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
line-height: 1.4em;
|
||||
border-bottom: 2px solid #222222;
|
||||
white-space: pre;
|
||||
display: inline-block;
|
||||
}
|
||||
.odd {
|
||||
background-color: #55bbff;
|
||||
color: #223311;
|
||||
}
|
||||
.even {
|
||||
background-color: #ee7756;
|
||||
color: #551133;
|
||||
}
|
||||
.code {
|
||||
--index: calc(var(--layer) - 1);
|
||||
padding-top: calc(var(--index) * 0.15em);
|
||||
filter:
|
||||
hue-rotate(calc(var(--index) * 25deg))
|
||||
saturate(calc(100% - (var(--index) * 2%)))
|
||||
brightness(calc(100% - (var(--index) * 1.5%)));
|
||||
}
|
||||
.annotation {
|
||||
color: #4444ff;
|
||||
font-family: monospace;
|
||||
font-style: italic;
|
||||
display: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
body:active .annotation {
|
||||
/* requires holding mouse down anywhere on the page */
|
||||
display: inline-block;
|
||||
}
|
||||
span:hover .annotation {
|
||||
/* requires hover over a span ONLY on its first line */
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 4"><span class="line"><span class="code" style="--layer: 0">async fn f() -> u8 { 1 }</span><span><span class="code even" style="--layer: 1" title="5:25-5:25: @1.Return: return"><span class="annotation">@0,1⦊</span>‸<span class="annotation">⦉@0,1</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
Preview this file as rendered HTML from the github source at:
|
||||
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.async/async.foo-%7Bclosure%230%7D.-------.InstrumentCoverage.0.html
|
||||
|
||||
For revisions in Pull Requests (PR):
|
||||
* Replace "rust-lang" with the github PR author
|
||||
* Replace "master" with the PR branch name
|
||||
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>async.foo-{closure#0} - Coverage Spans</title>
|
||||
<style>
|
||||
.line {
|
||||
counter-increment: line;
|
||||
}
|
||||
.line:before {
|
||||
content: counter(line) ": ";
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
font-style: italic;
|
||||
width: 3.8em;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
filter: opacity(50%);
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.code {
|
||||
color: #dddddd;
|
||||
background-color: #222222;
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
line-height: 1.4em;
|
||||
border-bottom: 2px solid #222222;
|
||||
white-space: pre;
|
||||
display: inline-block;
|
||||
}
|
||||
.odd {
|
||||
background-color: #55bbff;
|
||||
color: #223311;
|
||||
}
|
||||
.even {
|
||||
background-color: #ee7756;
|
||||
color: #551133;
|
||||
}
|
||||
.code {
|
||||
--index: calc(var(--layer) - 1);
|
||||
padding-top: calc(var(--index) * 0.15em);
|
||||
filter:
|
||||
hue-rotate(calc(var(--index) * 25deg))
|
||||
saturate(calc(100% - (var(--index) * 2%)))
|
||||
brightness(calc(100% - (var(--index) * 1.5%)));
|
||||
}
|
||||
.annotation {
|
||||
color: #4444ff;
|
||||
font-family: monospace;
|
||||
font-style: italic;
|
||||
display: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
body:active .annotation {
|
||||
/* requires holding mouse down anywhere on the page */
|
||||
display: inline-block;
|
||||
}
|
||||
span:hover .annotation {
|
||||
/* requires hover over a span ONLY on its first line */
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 6"><span class="line"> <span class="code" style="--layer: 0">{ </span><span><span class="code even" style="--layer: 1" title="7:32-7:43: @0[0]: _0 = [const false; 10]
|
||||
7:45-7:45: @0.Return: return"><span class="annotation">@0⦊</span>[false; 10] }<span class="annotation">⦉@0</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,74 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
Preview this file as rendered HTML from the github source at:
|
||||
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.async/async.foo.-------.InstrumentCoverage.0.html
|
||||
|
||||
For revisions in Pull Requests (PR):
|
||||
* Replace "rust-lang" with the github PR author
|
||||
* Replace "master" with the PR branch name
|
||||
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>async.foo - Coverage Spans</title>
|
||||
<style>
|
||||
.line {
|
||||
counter-increment: line;
|
||||
}
|
||||
.line:before {
|
||||
content: counter(line) ": ";
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
font-style: italic;
|
||||
width: 3.8em;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
filter: opacity(50%);
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.code {
|
||||
color: #dddddd;
|
||||
background-color: #222222;
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
line-height: 1.4em;
|
||||
border-bottom: 2px solid #222222;
|
||||
white-space: pre;
|
||||
display: inline-block;
|
||||
}
|
||||
.odd {
|
||||
background-color: #55bbff;
|
||||
color: #223311;
|
||||
}
|
||||
.even {
|
||||
background-color: #ee7756;
|
||||
color: #551133;
|
||||
}
|
||||
.code {
|
||||
--index: calc(var(--layer) - 1);
|
||||
padding-top: calc(var(--index) * 0.15em);
|
||||
filter:
|
||||
hue-rotate(calc(var(--index) * 25deg))
|
||||
saturate(calc(100% - (var(--index) * 2%)))
|
||||
brightness(calc(100% - (var(--index) * 1.5%)));
|
||||
}
|
||||
.annotation {
|
||||
color: #4444ff;
|
||||
font-family: monospace;
|
||||
font-style: italic;
|
||||
display: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
body:active .annotation {
|
||||
/* requires holding mouse down anywhere on the page */
|
||||
display: inline-block;
|
||||
}
|
||||
span:hover .annotation {
|
||||
/* requires hover over a span ONLY on its first line */
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 6"><span class="line"><span class="code" style="--layer: 0">async fn foo() -> [bool; 10] { [false; 10] }</span><span><span class="code even" style="--layer: 1" title="7:45-7:45: @1.Return: return"><span class="annotation">@0,1⦊</span>‸<span class="annotation">⦉@0,1</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,80 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
Preview this file as rendered HTML from the github source at:
|
||||
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.async/async.g-%7Bclosure%230%7D.-------.InstrumentCoverage.0.html
|
||||
|
||||
For revisions in Pull Requests (PR):
|
||||
* Replace "rust-lang" with the github PR author
|
||||
* Replace "master" with the PR branch name
|
||||
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>async.g-{closure#0} - Coverage Spans</title>
|
||||
<style>
|
||||
.line {
|
||||
counter-increment: line;
|
||||
}
|
||||
.line:before {
|
||||
content: counter(line) ": ";
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
font-style: italic;
|
||||
width: 3.8em;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
filter: opacity(50%);
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.code {
|
||||
color: #dddddd;
|
||||
background-color: #222222;
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
line-height: 1.4em;
|
||||
border-bottom: 2px solid #222222;
|
||||
white-space: pre;
|
||||
display: inline-block;
|
||||
}
|
||||
.odd {
|
||||
background-color: #55bbff;
|
||||
color: #223311;
|
||||
}
|
||||
.even {
|
||||
background-color: #ee7756;
|
||||
color: #551133;
|
||||
}
|
||||
.code {
|
||||
--index: calc(var(--layer) - 1);
|
||||
padding-top: calc(var(--index) * 0.15em);
|
||||
filter:
|
||||
hue-rotate(calc(var(--index) * 25deg))
|
||||
saturate(calc(100% - (var(--index) * 2%)))
|
||||
brightness(calc(100% - (var(--index) * 1.5%)));
|
||||
}
|
||||
.annotation {
|
||||
color: #4444ff;
|
||||
font-family: monospace;
|
||||
font-style: italic;
|
||||
display: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
body:active .annotation {
|
||||
/* requires holding mouse down anywhere on the page */
|
||||
display: inline-block;
|
||||
}
|
||||
span:hover .annotation {
|
||||
/* requires hover over a span ONLY on its first line */
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 8"><span class="line"> <span><span class="code even" style="--layer: 1" title="10:11-10:12: @0[3]: FakeRead(ForMatchedPlace, _3)"><span class="annotation">@0,2,3⦊</span>{</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="10:11-10:12: @0[3]: FakeRead(ForMatchedPlace, _3)"> match x<span class="annotation">⦉@0,2,3</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="11:9-11:10: @16[3]: _4 = _3"><span class="annotation">@16⦊</span>y<span class="annotation">⦉@16</span></span></span><span class="code" style="--layer: 0"> if </span><span><span class="code even" style="--layer: 1" title="11:14-11:17: @2.Call: _8 = f() -> [return: bb3, unwind: bb30]
|
||||
11:14-11:17: @3[0]: FakeRead(ForMatchedPlace, _8)"><span class="annotation">@0,2,3⦊</span>f()<span class="annotation">⦉@0,2,3</span></span></span><span class="code" style="--layer: 0">.await == </span><span><span class="code odd" style="--layer: 1" title="11:27-11:28: @14[2]: _24 = (*_5)"><span class="annotation">@9,12,14,15⦊</span>y<span class="annotation">⦉@9,12,14,15</span></span></span><span><span class="code even" style="--layer: 1" title="11:28-11:28: @17.Goto: goto -> bb1"><span class="annotation">@17⦊</span>‸<span class="annotation">⦉@17</span></span></span><span class="code" style="--layer: 0"> => </span><span><span class="code odd" style="--layer: 1" title="11:32-11:34: @16[4]: _0 = ()"><span class="annotation">@16⦊</span>()<span class="annotation">⦉@16</span></span></span><span class="code" style="--layer: 0">,</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> _ => </span><span><span class="code even" style="--layer: 1" title="12:14-12:16: @1[0]: _0 = ()"><span class="annotation">@1⦊</span>()<span class="annotation">⦉@1</span></span></span><span class="code" style="--layer: 0">,</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="14:2-14:2: @19.Return: return"><span class="annotation">@18,19⦊</span>‸<span class="annotation">⦉@18,19</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
Preview this file as rendered HTML from the github source at:
|
||||
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.async/async.g.-------.InstrumentCoverage.0.html
|
||||
|
||||
For revisions in Pull Requests (PR):
|
||||
* Replace "rust-lang" with the github PR author
|
||||
* Replace "master" with the PR branch name
|
||||
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>async.g - Coverage Spans</title>
|
||||
<style>
|
||||
.line {
|
||||
counter-increment: line;
|
||||
}
|
||||
.line:before {
|
||||
content: counter(line) ": ";
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
font-style: italic;
|
||||
width: 3.8em;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
filter: opacity(50%);
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.code {
|
||||
color: #dddddd;
|
||||
background-color: #222222;
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
line-height: 1.4em;
|
||||
border-bottom: 2px solid #222222;
|
||||
white-space: pre;
|
||||
display: inline-block;
|
||||
}
|
||||
.odd {
|
||||
background-color: #55bbff;
|
||||
color: #223311;
|
||||
}
|
||||
.even {
|
||||
background-color: #ee7756;
|
||||
color: #551133;
|
||||
}
|
||||
.code {
|
||||
--index: calc(var(--layer) - 1);
|
||||
padding-top: calc(var(--index) * 0.15em);
|
||||
filter:
|
||||
hue-rotate(calc(var(--index) * 25deg))
|
||||
saturate(calc(100% - (var(--index) * 2%)))
|
||||
brightness(calc(100% - (var(--index) * 1.5%)));
|
||||
}
|
||||
.annotation {
|
||||
color: #4444ff;
|
||||
font-family: monospace;
|
||||
font-style: italic;
|
||||
display: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
body:active .annotation {
|
||||
/* requires holding mouse down anywhere on the page */
|
||||
display: inline-block;
|
||||
}
|
||||
span:hover .annotation {
|
||||
/* requires hover over a span ONLY on its first line */
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 8"><span class="line"><span class="code" style="--layer: 0">pub async fn g(x: u8) {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> match x {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> y if f().await == y => (),</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> _ => (),</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code even" style="--layer: 1" title="14:2-14:2: @1.Return: return"><span class="annotation">@0,1⦊</span>‸<span class="annotation">⦉@0,1</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,80 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
Preview this file as rendered HTML from the github source at:
|
||||
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.async/async.h-%7Bclosure%230%7D.-------.InstrumentCoverage.0.html
|
||||
|
||||
For revisions in Pull Requests (PR):
|
||||
* Replace "rust-lang" with the github PR author
|
||||
* Replace "master" with the PR branch name
|
||||
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>async.h-{closure#0} - Coverage Spans</title>
|
||||
<style>
|
||||
.line {
|
||||
counter-increment: line;
|
||||
}
|
||||
.line:before {
|
||||
content: counter(line) ": ";
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
font-style: italic;
|
||||
width: 3.8em;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
filter: opacity(50%);
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.code {
|
||||
color: #dddddd;
|
||||
background-color: #222222;
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
line-height: 1.4em;
|
||||
border-bottom: 2px solid #222222;
|
||||
white-space: pre;
|
||||
display: inline-block;
|
||||
}
|
||||
.odd {
|
||||
background-color: #55bbff;
|
||||
color: #223311;
|
||||
}
|
||||
.even {
|
||||
background-color: #ee7756;
|
||||
color: #551133;
|
||||
}
|
||||
.code {
|
||||
--index: calc(var(--layer) - 1);
|
||||
padding-top: calc(var(--index) * 0.15em);
|
||||
filter:
|
||||
hue-rotate(calc(var(--index) * 25deg))
|
||||
saturate(calc(100% - (var(--index) * 2%)))
|
||||
brightness(calc(100% - (var(--index) * 1.5%)));
|
||||
}
|
||||
.annotation {
|
||||
color: #4444ff;
|
||||
font-family: monospace;
|
||||
font-style: italic;
|
||||
display: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
body:active .annotation {
|
||||
/* requires holding mouse down anywhere on the page */
|
||||
display: inline-block;
|
||||
}
|
||||
span:hover .annotation {
|
||||
/* requires hover over a span ONLY on its first line */
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 17"><span class="line"> <span><span class="code even" style="--layer: 1" title="19:11-19:12: @0[3]: FakeRead(ForMatchedPlace, _3)"><span class="annotation">@0,2,3⦊</span>{</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="19:11-19:12: @0[3]: FakeRead(ForMatchedPlace, _3)"> match x<span class="annotation">⦉@0,2,3</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="20:9-20:10: @17[3]: _4 = _3"><span class="annotation">@17⦊</span>y<span class="annotation">⦉@17</span></span></span><span class="code" style="--layer: 0"> if </span><span><span class="code even" style="--layer: 1" title="20:14-20:19: @2.Call: _8 = foo() -> [return: bb3, unwind: bb33]
|
||||
20:14-20:19: @3[0]: FakeRead(ForMatchedPlace, _8)"><span class="annotation">@0,2,3⦊</span>foo()<span class="annotation">⦉@0,2,3</span></span></span><span class="code" style="--layer: 0">.await[</span><span><span class="code odd" style="--layer: 1" title="20:26-20:27: @14[2]: _24 = (*_5)"><span class="annotation">@9,12,14,15,16⦊</span>y<span class="annotation">⦉@9,12,14,15,16</span></span></span><span class="code" style="--layer: 0">]</span><span><span class="code even" style="--layer: 1" title="20:28-20:28: @18.Goto: goto -> bb1"><span class="annotation">@18⦊</span>‸<span class="annotation">⦉@18</span></span></span><span class="code" style="--layer: 0"> => </span><span><span class="code odd" style="--layer: 1" title="20:32-20:34: @17[4]: _0 = ()"><span class="annotation">@17⦊</span>()<span class="annotation">⦉@17</span></span></span><span class="code" style="--layer: 0">,</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> _ => </span><span><span class="code even" style="--layer: 1" title="21:14-21:16: @1[0]: _0 = ()"><span class="annotation">@1⦊</span>()<span class="annotation">⦉@1</span></span></span><span class="code" style="--layer: 0">,</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="23:2-23:2: @20.Return: return"><span class="annotation">@19,20⦊</span>‸<span class="annotation">⦉@19,20</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
Preview this file as rendered HTML from the github source at:
|
||||
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.async/async.h.-------.InstrumentCoverage.0.html
|
||||
|
||||
For revisions in Pull Requests (PR):
|
||||
* Replace "rust-lang" with the github PR author
|
||||
* Replace "master" with the PR branch name
|
||||
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>async.h - Coverage Spans</title>
|
||||
<style>
|
||||
.line {
|
||||
counter-increment: line;
|
||||
}
|
||||
.line:before {
|
||||
content: counter(line) ": ";
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
font-style: italic;
|
||||
width: 3.8em;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
filter: opacity(50%);
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.code {
|
||||
color: #dddddd;
|
||||
background-color: #222222;
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
line-height: 1.4em;
|
||||
border-bottom: 2px solid #222222;
|
||||
white-space: pre;
|
||||
display: inline-block;
|
||||
}
|
||||
.odd {
|
||||
background-color: #55bbff;
|
||||
color: #223311;
|
||||
}
|
||||
.even {
|
||||
background-color: #ee7756;
|
||||
color: #551133;
|
||||
}
|
||||
.code {
|
||||
--index: calc(var(--layer) - 1);
|
||||
padding-top: calc(var(--index) * 0.15em);
|
||||
filter:
|
||||
hue-rotate(calc(var(--index) * 25deg))
|
||||
saturate(calc(100% - (var(--index) * 2%)))
|
||||
brightness(calc(100% - (var(--index) * 1.5%)));
|
||||
}
|
||||
.annotation {
|
||||
color: #4444ff;
|
||||
font-family: monospace;
|
||||
font-style: italic;
|
||||
display: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
body:active .annotation {
|
||||
/* requires holding mouse down anywhere on the page */
|
||||
display: inline-block;
|
||||
}
|
||||
span:hover .annotation {
|
||||
/* requires hover over a span ONLY on its first line */
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 17"><span class="line"><span class="code" style="--layer: 0">async fn h(x: usize) {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> match x {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> y if foo().await[y] => (),</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> _ => (),</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code even" style="--layer: 1" title="23:2-23:2: @1.Return: return"><span class="annotation">@0,1⦊</span>‸<span class="annotation">⦉@0,1</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
Preview this file as rendered HTML from the github source at:
|
||||
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.async/async.i-%7Bclosure%230%7D.-------.InstrumentCoverage.0.html
|
||||
|
||||
For revisions in Pull Requests (PR):
|
||||
* Replace "rust-lang" with the github PR author
|
||||
* Replace "master" with the PR branch name
|
||||
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>async.i-{closure#0} - Coverage Spans</title>
|
||||
<style>
|
||||
.line {
|
||||
counter-increment: line;
|
||||
}
|
||||
.line:before {
|
||||
content: counter(line) ": ";
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
font-style: italic;
|
||||
width: 3.8em;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
filter: opacity(50%);
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.code {
|
||||
color: #dddddd;
|
||||
background-color: #222222;
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
line-height: 1.4em;
|
||||
border-bottom: 2px solid #222222;
|
||||
white-space: pre;
|
||||
display: inline-block;
|
||||
}
|
||||
.odd {
|
||||
background-color: #55bbff;
|
||||
color: #223311;
|
||||
}
|
||||
.even {
|
||||
background-color: #ee7756;
|
||||
color: #551133;
|
||||
}
|
||||
.code {
|
||||
--index: calc(var(--layer) - 1);
|
||||
padding-top: calc(var(--index) * 0.15em);
|
||||
filter:
|
||||
hue-rotate(calc(var(--index) * 25deg))
|
||||
saturate(calc(100% - (var(--index) * 2%)))
|
||||
brightness(calc(100% - (var(--index) * 1.5%)));
|
||||
}
|
||||
.annotation {
|
||||
color: #4444ff;
|
||||
font-family: monospace;
|
||||
font-style: italic;
|
||||
display: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
body:active .annotation {
|
||||
/* requires holding mouse down anywhere on the page */
|
||||
display: inline-block;
|
||||
}
|
||||
span:hover .annotation {
|
||||
/* requires hover over a span ONLY on its first line */
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 24"><span class="line"> <span><span class="code even" style="--layer: 1" title="26:11-26:12: @0[3]: FakeRead(ForMatchedPlace, _3)"><span class="annotation">@0,2,3⦊</span>{</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="26:11-26:12: @0[3]: FakeRead(ForMatchedPlace, _3)"> match x<span class="annotation">⦉@0,2,3</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="27:9-27:10: @17[3]: _4 = _3"><span class="annotation">@17⦊</span>y<span class="annotation">⦉@17</span></span></span><span class="code" style="--layer: 0"> if </span><span><span class="code even" style="--layer: 1" title="27:14-27:17: @2.Call: _8 = f() -> [return: bb3, unwind: bb33]
|
||||
27:14-27:17: @3[0]: FakeRead(ForMatchedPlace, _8)"><span class="annotation">@0,2,3⦊</span>f()<span class="annotation">⦉@0,2,3</span></span></span><span class="code" style="--layer: 0">.await == </span><span><span class="code odd" style="--layer: 1" title="27:27-27:28: @14[3]: _25 = (*_5)
|
||||
27:27-27:32: @14[4]: _26 = CheckedAdd(_25, const 1_u8)
|
||||
27:27-27:32: @15[0]: _24 = move (_26.0: u8)"><span class="annotation">@9,12,14,15,16⦊</span>y + 1<span class="annotation">⦉@9,12,14,15,16</span></span></span><span><span class="code even" style="--layer: 1" title="27:32-27:32: @18.Goto: goto -> bb1"><span class="annotation">@18⦊</span>‸<span class="annotation">⦉@18</span></span></span><span class="code" style="--layer: 0"> => </span><span><span class="code odd" style="--layer: 1" title="27:36-27:38: @17[4]: _0 = ()"><span class="annotation">@17⦊</span>()<span class="annotation">⦉@17</span></span></span><span class="code" style="--layer: 0">,</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> _ => </span><span><span class="code even" style="--layer: 1" title="28:14-28:16: @1[0]: _0 = ()"><span class="annotation">@1⦊</span>()<span class="annotation">⦉@1</span></span></span><span class="code" style="--layer: 0">,</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="30:2-30:2: @20.Return: return"><span class="annotation">@19,20⦊</span>‸<span class="annotation">⦉@19,20</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
Preview this file as rendered HTML from the github source at:
|
||||
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.async/async.i.-------.InstrumentCoverage.0.html
|
||||
|
||||
For revisions in Pull Requests (PR):
|
||||
* Replace "rust-lang" with the github PR author
|
||||
* Replace "master" with the PR branch name
|
||||
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>async.i - Coverage Spans</title>
|
||||
<style>
|
||||
.line {
|
||||
counter-increment: line;
|
||||
}
|
||||
.line:before {
|
||||
content: counter(line) ": ";
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
font-style: italic;
|
||||
width: 3.8em;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
filter: opacity(50%);
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.code {
|
||||
color: #dddddd;
|
||||
background-color: #222222;
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
line-height: 1.4em;
|
||||
border-bottom: 2px solid #222222;
|
||||
white-space: pre;
|
||||
display: inline-block;
|
||||
}
|
||||
.odd {
|
||||
background-color: #55bbff;
|
||||
color: #223311;
|
||||
}
|
||||
.even {
|
||||
background-color: #ee7756;
|
||||
color: #551133;
|
||||
}
|
||||
.code {
|
||||
--index: calc(var(--layer) - 1);
|
||||
padding-top: calc(var(--index) * 0.15em);
|
||||
filter:
|
||||
hue-rotate(calc(var(--index) * 25deg))
|
||||
saturate(calc(100% - (var(--index) * 2%)))
|
||||
brightness(calc(100% - (var(--index) * 1.5%)));
|
||||
}
|
||||
.annotation {
|
||||
color: #4444ff;
|
||||
font-family: monospace;
|
||||
font-style: italic;
|
||||
display: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
body:active .annotation {
|
||||
/* requires holding mouse down anywhere on the page */
|
||||
display: inline-block;
|
||||
}
|
||||
span:hover .annotation {
|
||||
/* requires hover over a span ONLY on its first line */
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 24"><span class="line"><span class="code" style="--layer: 0">async fn i(x: u8) {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> match x {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> y if f().await == y + 1 => (),</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> _ => (),</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code even" style="--layer: 1" title="30:2-30:2: @1.Return: return"><span class="annotation">@0,1⦊</span>‸<span class="annotation">⦉@0,1</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,133 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
Preview this file as rendered HTML from the github source at:
|
||||
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.async/async.main.-------.InstrumentCoverage.0.html
|
||||
|
||||
For revisions in Pull Requests (PR):
|
||||
* Replace "rust-lang" with the github PR author
|
||||
* Replace "master" with the PR branch name
|
||||
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>async.main - Coverage Spans</title>
|
||||
<style>
|
||||
.line {
|
||||
counter-increment: line;
|
||||
}
|
||||
.line:before {
|
||||
content: counter(line) ": ";
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
font-style: italic;
|
||||
width: 3.8em;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
filter: opacity(50%);
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.code {
|
||||
color: #dddddd;
|
||||
background-color: #222222;
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
line-height: 1.4em;
|
||||
border-bottom: 2px solid #222222;
|
||||
white-space: pre;
|
||||
display: inline-block;
|
||||
}
|
||||
.odd {
|
||||
background-color: #55bbff;
|
||||
color: #223311;
|
||||
}
|
||||
.even {
|
||||
background-color: #ee7756;
|
||||
color: #551133;
|
||||
}
|
||||
.code {
|
||||
--index: calc(var(--layer) - 1);
|
||||
padding-top: calc(var(--index) * 0.15em);
|
||||
filter:
|
||||
hue-rotate(calc(var(--index) * 25deg))
|
||||
saturate(calc(100% - (var(--index) * 2%)))
|
||||
brightness(calc(100% - (var(--index) * 1.5%)));
|
||||
}
|
||||
.annotation {
|
||||
color: #4444ff;
|
||||
font-family: monospace;
|
||||
font-style: italic;
|
||||
display: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
body:active .annotation {
|
||||
/* requires holding mouse down anywhere on the page */
|
||||
display: inline-block;
|
||||
}
|
||||
span:hover .annotation {
|
||||
/* requires hover over a span ONLY on its first line */
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 31"><span class="line"><span class="code" style="--layer: 0">fn main() </span><span><span class="code even" style="--layer: 1" title="33:13-33:18: @0.Call: _1 = g(const 10_u8) -> [return: bb1, unwind: bb12]
|
||||
34:13-34:17: @2.Call: _2 = h(const 9_usize) -> [return: bb3, unwind: bb12]
|
||||
35:31-35:35: @4.Call: _4 = i(const 8_u8) -> [return: bb5, unwind: bb12]
|
||||
35:22-35:36: @5.Call: _3 = Box::<impl Future>::pin(move _4) -> [return: bb6, unwind: bb11]
|
||||
35:9-35:19: @6[1]: FakeRead(ForLet, _3)
|
||||
36:24-36:30: @6[5]: _7 = &mut _3
|
||||
36:24-36:39: @6.Call: _6 = Pin::<Box<impl Future>>::as_mut(move _7) -> [return: bb7, unwind: bb10]
|
||||
36:5-36:40: @7.Call: _5 = block_on::<Pin<&mut impl Future>>(move _6) -> [return: bb8, unwind: bb10]
|
||||
32:11-37:2: @8[2]: _0 = const ()
|
||||
37:2-37:2: @9.Return: return"><span class="annotation">@0,1,2,3,4,5,6,7,8,9⦊</span>{</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="33:13-33:18: @0.Call: _1 = g(const 10_u8) -> [return: bb1, unwind: bb12]
|
||||
34:13-34:17: @2.Call: _2 = h(const 9_usize) -> [return: bb3, unwind: bb12]
|
||||
35:31-35:35: @4.Call: _4 = i(const 8_u8) -> [return: bb5, unwind: bb12]
|
||||
35:22-35:36: @5.Call: _3 = Box::<impl Future>::pin(move _4) -> [return: bb6, unwind: bb11]
|
||||
35:9-35:19: @6[1]: FakeRead(ForLet, _3)
|
||||
36:24-36:30: @6[5]: _7 = &mut _3
|
||||
36:24-36:39: @6.Call: _6 = Pin::<Box<impl Future>>::as_mut(move _7) -> [return: bb7, unwind: bb10]
|
||||
36:5-36:40: @7.Call: _5 = block_on::<Pin<&mut impl Future>>(move _6) -> [return: bb8, unwind: bb10]
|
||||
32:11-37:2: @8[2]: _0 = const ()
|
||||
37:2-37:2: @9.Return: return"> let _ = g(10);</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="33:13-33:18: @0.Call: _1 = g(const 10_u8) -> [return: bb1, unwind: bb12]
|
||||
34:13-34:17: @2.Call: _2 = h(const 9_usize) -> [return: bb3, unwind: bb12]
|
||||
35:31-35:35: @4.Call: _4 = i(const 8_u8) -> [return: bb5, unwind: bb12]
|
||||
35:22-35:36: @5.Call: _3 = Box::<impl Future>::pin(move _4) -> [return: bb6, unwind: bb11]
|
||||
35:9-35:19: @6[1]: FakeRead(ForLet, _3)
|
||||
36:24-36:30: @6[5]: _7 = &mut _3
|
||||
36:24-36:39: @6.Call: _6 = Pin::<Box<impl Future>>::as_mut(move _7) -> [return: bb7, unwind: bb10]
|
||||
36:5-36:40: @7.Call: _5 = block_on::<Pin<&mut impl Future>>(move _6) -> [return: bb8, unwind: bb10]
|
||||
32:11-37:2: @8[2]: _0 = const ()
|
||||
37:2-37:2: @9.Return: return"> let _ = h(9);</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="33:13-33:18: @0.Call: _1 = g(const 10_u8) -> [return: bb1, unwind: bb12]
|
||||
34:13-34:17: @2.Call: _2 = h(const 9_usize) -> [return: bb3, unwind: bb12]
|
||||
35:31-35:35: @4.Call: _4 = i(const 8_u8) -> [return: bb5, unwind: bb12]
|
||||
35:22-35:36: @5.Call: _3 = Box::<impl Future>::pin(move _4) -> [return: bb6, unwind: bb11]
|
||||
35:9-35:19: @6[1]: FakeRead(ForLet, _3)
|
||||
36:24-36:30: @6[5]: _7 = &mut _3
|
||||
36:24-36:39: @6.Call: _6 = Pin::<Box<impl Future>>::as_mut(move _7) -> [return: bb7, unwind: bb10]
|
||||
36:5-36:40: @7.Call: _5 = block_on::<Pin<&mut impl Future>>(move _6) -> [return: bb8, unwind: bb10]
|
||||
32:11-37:2: @8[2]: _0 = const ()
|
||||
37:2-37:2: @9.Return: return"> let mut future = Box::pin(i(8));</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="33:13-33:18: @0.Call: _1 = g(const 10_u8) -> [return: bb1, unwind: bb12]
|
||||
34:13-34:17: @2.Call: _2 = h(const 9_usize) -> [return: bb3, unwind: bb12]
|
||||
35:31-35:35: @4.Call: _4 = i(const 8_u8) -> [return: bb5, unwind: bb12]
|
||||
35:22-35:36: @5.Call: _3 = Box::<impl Future>::pin(move _4) -> [return: bb6, unwind: bb11]
|
||||
35:9-35:19: @6[1]: FakeRead(ForLet, _3)
|
||||
36:24-36:30: @6[5]: _7 = &mut _3
|
||||
36:24-36:39: @6.Call: _6 = Pin::<Box<impl Future>>::as_mut(move _7) -> [return: bb7, unwind: bb10]
|
||||
36:5-36:40: @7.Call: _5 = block_on::<Pin<&mut impl Future>>(move _6) -> [return: bb8, unwind: bb10]
|
||||
32:11-37:2: @8[2]: _0 = const ()
|
||||
37:2-37:2: @9.Return: return"> executor::block_on(future.as_mut());</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="33:13-33:18: @0.Call: _1 = g(const 10_u8) -> [return: bb1, unwind: bb12]
|
||||
34:13-34:17: @2.Call: _2 = h(const 9_usize) -> [return: bb3, unwind: bb12]
|
||||
35:31-35:35: @4.Call: _4 = i(const 8_u8) -> [return: bb5, unwind: bb12]
|
||||
35:22-35:36: @5.Call: _3 = Box::<impl Future>::pin(move _4) -> [return: bb6, unwind: bb11]
|
||||
35:9-35:19: @6[1]: FakeRead(ForLet, _3)
|
||||
36:24-36:30: @6[5]: _7 = &mut _3
|
||||
36:24-36:39: @6.Call: _6 = Pin::<Box<impl Future>>::as_mut(move _7) -> [return: bb7, unwind: bb10]
|
||||
36:5-36:40: @7.Call: _5 = block_on::<Pin<&mut impl Future>>(move _6) -> [return: bb8, unwind: bb10]
|
||||
32:11-37:2: @8[2]: _0 = const ()
|
||||
37:2-37:2: @9.Return: return">}<span class="annotation">⦉@0,1,2,3,4,5,6,7,8,9</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -87,10 +87,12 @@ For revisions in Pull Requests (PR):
|
|||
<span class="line"><span class="code" style="--layer: 0"> let </span><span><span class="code odd" style="--layer: 1" title="10:9-10:10: @25[0]: FakeRead(ForLet, _4)"><span class="annotation">@25⦊</span>x<span class="annotation">⦉@25</span></span></span><span class="code" style="--layer: 0"> = if </span><span><span class="code even" style="--layer: 1" title="10:16-10:25: @4[5]: _6 = _1
|
||||
10:16-10:29: @4[6]: _5 = Gt(move _6, const 7_u32)
|
||||
10:16-10:29: @4[8]: FakeRead(ForMatchedPlace, _5)"><span class="annotation">@4⦊</span>countdown > 7<span class="annotation">⦉@4</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="11:9-11:23: @8[0]: _1 = move (_7.0: u32)
|
||||
12:9-12:10: @8[1]: _4 = const B"><span class="annotation">@8⦊</span>countdown -= 4;</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="11:9-11:23: @8[0]: _1 = move (_7.0: u32)
|
||||
12:9-12:10: @8[1]: _4 = const B"> B<span class="annotation">⦉@8</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="11:9-11:23: @7[0]: _7 = CheckedSub(_1, const 4_u32)
|
||||
11:9-11:23: @8[0]: _1 = move (_7.0: u32)
|
||||
12:9-12:10: @8[1]: _4 = const B"><span class="annotation">@5,7,8⦊</span>countdown -= 4;</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="11:9-11:23: @7[0]: _7 = CheckedSub(_1, const 4_u32)
|
||||
11:9-11:23: @8[0]: _1 = move (_7.0: u32)
|
||||
12:9-12:10: @8[1]: _4 = const B"> B<span class="annotation">⦉@5,7,8</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> } else if </span><span><span class="code even" style="--layer: 1" title="13:15-13:24: @6[2]: _9 = _1
|
||||
13:15-13:28: @6[3]: _8 = Gt(move _9, const 2_u32)
|
||||
13:15-13:28: @6[5]: FakeRead(ForMatchedPlace, _8)"><span class="annotation">@6⦊</span>countdown > 2<span class="annotation">⦉@6</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
|
|
@ -106,10 +108,12 @@ For revisions in Pull Requests (PR):
|
|||
<span class="line"><span class="code even" style="--layer: 1" title="15:13-15:26: @22[0]: _1 = const 0_u32
|
||||
14:61-16:10: @22[1]: _10 = const ()
|
||||
16:10-16:10: @22.Goto: goto -> bb23"> }<span class="annotation">⦉@20,22</span></span></span><span><span class="code odd" style="--layer: 1" title="16:10-16:10: @21.Goto: goto -> bb23"><span class="annotation">@21⦊</span>‸<span class="annotation">⦉@21</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="17:9-17:23: @24[0]: _1 = move (_19.0: u32)
|
||||
18:9-18:18: @24[1]: _4 = _1"><span class="annotation">@24⦊</span>countdown -= 5;</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="17:9-17:23: @24[0]: _1 = move (_19.0: u32)
|
||||
18:9-18:18: @24[1]: _4 = _1"> countdown<span class="annotation">⦉@24</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="17:9-17:23: @23[2]: _19 = CheckedSub(_1, const 5_u32)
|
||||
17:9-17:23: @24[0]: _1 = move (_19.0: u32)
|
||||
18:9-18:18: @24[1]: _4 = _1"><span class="annotation">@23,24⦊</span>countdown -= 5;</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="17:9-17:23: @23[2]: _19 = CheckedSub(_1, const 5_u32)
|
||||
17:9-17:23: @24[0]: _1 = move (_19.0: u32)
|
||||
18:9-18:18: @24[1]: _4 = _1"> countdown<span class="annotation">⦉@23,24</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> } else {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="20:9-20:15: @10[0]: _0 = const ()"><span class="annotation">@10⦊</span>return<span class="annotation">⦉@10</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> };</span></span>
|
||||
|
|
@ -129,9 +133,15 @@ For revisions in Pull Requests (PR):
|
|||
<span class="line"><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> if </span><span><span class="code odd" style="--layer: 1" title="28:8-28:17: @29[5]: _26 = _21
|
||||
28:8-28:21: @29[6]: _25 = Gt(move _26, const 7_i32)
|
||||
28:8-28:21: @29[8]: FakeRead(ForMatchedPlace, _25)"><span class="annotation">@29⦊</span>countdown > 7<span class="annotation">⦉@29</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="29:9-29:23: @33[0]: _21 = move (_27.0: i32)"><span class="annotation">@33⦊</span>countdown -= 4<span class="annotation">⦉@33</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> } else if </span><span><span class="code odd" style="--layer: 1" title="30:15-30:24: @31[2]: _29 = _21
|
||||
28:8-28:21: @29[8]: FakeRead(ForMatchedPlace, _25)"><span class="annotation">@29⦊</span>countdown > 7<span class="annotation">⦉@29</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="29:9-29:23: @32[0]: _27 = CheckedSub(_21, const 4_i32)
|
||||
29:9-29:23: @33[0]: _21 = move (_27.0: i32)
|
||||
28:22-30:6: @33[1]: _24 = const ()"><span class="annotation">@30,32,33⦊</span>{</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="29:9-29:23: @32[0]: _27 = CheckedSub(_21, const 4_i32)
|
||||
29:9-29:23: @33[0]: _21 = move (_27.0: i32)
|
||||
28:22-30:6: @33[1]: _24 = const ()"> countdown -= 4;</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="29:9-29:23: @32[0]: _27 = CheckedSub(_21, const 4_i32)
|
||||
29:9-29:23: @33[0]: _21 = move (_27.0: i32)
|
||||
28:22-30:6: @33[1]: _24 = const ()"> }<span class="annotation">⦉@30,32,33</span></span></span><span class="code" style="--layer: 0"> else if </span><span><span class="code odd" style="--layer: 1" title="30:15-30:24: @31[2]: _29 = _21
|
||||
30:15-30:28: @31[3]: _28 = Gt(move _29, const 2_i32)
|
||||
30:15-30:28: @31[5]: FakeRead(ForMatchedPlace, _28)"><span class="annotation">@31⦊</span>countdown > 2<span class="annotation">⦉@31</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> if </span><span><span class="code even" style="--layer: 1" title="31:12-31:21: @36[5]: _34 = _21
|
||||
|
|
@ -146,118 +156,198 @@ For revisions in Pull Requests (PR):
|
|||
<span class="line"><span class="code odd" style="--layer: 1" title="32:13-32:26: @47[0]: _21 = const 0_i32
|
||||
31:61-33:10: @47[1]: _30 = const ()
|
||||
33:10-33:10: @47.Goto: goto -> bb48"> }<span class="annotation">⦉@45,47</span></span></span><span><span class="code even" style="--layer: 1" title="33:10-33:10: @46.Goto: goto -> bb48"><span class="annotation">@46⦊</span>‸<span class="annotation">⦉@46</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="34:9-34:23: @49[0]: _21 = move (_39.0: i32)"><span class="annotation">@49⦊</span>countdown -= 5<span class="annotation">⦉@49</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="34:9-34:23: @48[2]: _39 = CheckedSub(_21, const 5_i32)
|
||||
34:9-34:23: @49[0]: _21 = move (_39.0: i32)"><span class="annotation">@48,49⦊</span>countdown -= 5<span class="annotation">⦉@48,49</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> } else {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="36:9-36:15: @35[0]: _0 = const ()"><span class="annotation">@35⦊</span>return<span class="annotation">⦉@35</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> let </span><span><span class="code odd" style="--layer: 1" title="39:25-39:26: @50[3]: _41 = const 0_i32
|
||||
39:9-39:22: @50[4]: FakeRead(ForLet, _41)"><span class="annotation">@50⦊</span>mut countdown = 0<span class="annotation">⦉@50</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> if </span><span><span class="code odd" style="--layer: 1" title="40:8-40:12: @50[7]: _43 = const true
|
||||
40:8-40:12: @50[8]: FakeRead(ForMatchedPlace, _43)"><span class="annotation">@50⦊</span>true<span class="annotation">⦉@50</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="41:9-41:22: @53[0]: _41 = const 1_i32
|
||||
40:13-42:6: @53[1]: _42 = const ()
|
||||
42:6-42:6: @53.Goto: goto -> bb54"><span class="annotation">@51,53⦊</span>{</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="41:9-41:22: @53[0]: _41 = const 1_i32
|
||||
40:13-42:6: @53[1]: _42 = const ()
|
||||
42:6-42:6: @53.Goto: goto -> bb54"> countdown = 1;</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="41:9-41:22: @53[0]: _41 = const 1_i32
|
||||
40:13-42:6: @53[1]: _42 = const ()
|
||||
42:6-42:6: @53.Goto: goto -> bb54"> }<span class="annotation">⦉@51,53</span></span></span><span><span class="code odd" style="--layer: 1" title="42:6-42:6: @52.Goto: goto -> bb54"><span class="annotation">@52⦊</span>‸<span class="annotation">⦉@52</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> if </span><span><span class="code odd" style="--layer: 1" title="39:8-39:12: @50[4]: _42 = const true
|
||||
39:8-39:12: @50[5]: FakeRead(ForMatchedPlace, _42)"><span class="annotation">@50⦊</span>true<span class="annotation">⦉@50</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> // Demonstrate the difference with `TerminatorKind::Assert` as of 2020-11-15. Assert is no</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> // longer treated as a `BasicCoverageBlock` terminator, which changed the coverage region,</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> // for the executed `then` block above, to include the closing brace on line 30. That</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> // changed the line count, but the coverage code region (for the `else if` condition) is</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> // still valid.</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> //</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> // Note that `if` (then) and `else` blocks include the closing brace in their coverage</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> // code regions when the last line in the block ends in a semicolon, because the Rust</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> // compiler inserts a `StatementKind::Assign` to assign `const ()` to a `Place`, for the</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> // empty value for the executed block. When the last line does not end in a semicolon</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> // (that is, when the block actually results in a value), the additional `Assign` is not</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> // generated, and the brace is not included.</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> let </span><span><span class="code even" style="--layer: 1" title="52:29-52:30: @53[1]: _43 = const 0_i32
|
||||
52:13-52:26: @53[2]: FakeRead(ForLet, _43)"><span class="annotation">@51,53⦊</span>mut countdown = 0<span class="annotation">⦉@51,53</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> if </span><span><span class="code even" style="--layer: 1" title="53:12-53:16: @53[5]: _45 = const true
|
||||
53:12-53:16: @53[6]: FakeRead(ForMatchedPlace, _45)"><span class="annotation">@51,53⦊</span>true<span class="annotation">⦉@51,53</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="54:13-54:27: @56[0]: _43 = const 10_i32
|
||||
53:17-55:10: @56[1]: _44 = const ()
|
||||
55:10-55:10: @56.Goto: goto -> bb57"><span class="annotation">@54,56⦊</span>{</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="54:13-54:27: @56[0]: _43 = const 10_i32
|
||||
53:17-55:10: @56[1]: _44 = const ()
|
||||
55:10-55:10: @56.Goto: goto -> bb57"> countdown = 10;</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="54:13-54:27: @56[0]: _43 = const 10_i32
|
||||
53:17-55:10: @56[1]: _44 = const ()
|
||||
55:10-55:10: @56.Goto: goto -> bb57"> }<span class="annotation">⦉@54,56</span></span></span><span><span class="code even" style="--layer: 1" title="55:10-55:10: @55.Goto: goto -> bb57"><span class="annotation">@55⦊</span>‸<span class="annotation">⦉@55</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> let </span><span><span class="code even" style="--layer: 1" title="44:9-44:10: @77[0]: FakeRead(ForLet, _44)"><span class="annotation">@77⦊</span>z<span class="annotation">⦉@77</span></span></span><span class="code" style="--layer: 0"> = if </span><span><span class="code odd" style="--layer: 1" title="44:16-44:25: @54[5]: _46 = _41
|
||||
44:16-44:29: @54[6]: _45 = Gt(move _46, const 7_i32)
|
||||
44:16-44:29: @54[8]: FakeRead(ForMatchedPlace, _45)"><span class="annotation">@54⦊</span>countdown > 7<span class="annotation">⦉@54</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="45:9-45:23: @58[0]: _41 = move (_47.0: i32)"><span class="annotation">@58⦊</span>countdown -= 4<span class="annotation">⦉@58</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> } else if </span><span><span class="code odd" style="--layer: 1" title="46:15-46:24: @56[2]: _49 = _41
|
||||
46:15-46:28: @56[3]: _48 = Gt(move _49, const 2_i32)
|
||||
46:15-46:28: @56[5]: FakeRead(ForMatchedPlace, _48)"><span class="annotation">@56⦊</span>countdown > 2<span class="annotation">⦉@56</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> if </span><span><span class="code even" style="--layer: 1" title="47:12-47:21: @61[5]: _54 = _41
|
||||
47:12-47:25: @61[6]: _53 = Lt(move _54, const 1_i32)"><span class="annotation">@59,61⦊</span>countdown < 1<span class="annotation">⦉@59,61</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code odd" style="--layer: 1" title="47:29-47:38: @68[2]: _56 = _41
|
||||
47:29-47:42: @68[3]: _55 = Gt(move _56, const 5_i32)"><span class="annotation">@68⦊</span>countdown > 5<span class="annotation">⦉@68</span></span></span><span><span class="code even" style="--layer: 1" title="47:42-47:42: @66.Goto: goto -> bb69"><span class="annotation">@66⦊</span>‸<span class="annotation">⦉@66</span></span></span><span><span class="code odd" style="--layer: 1" title="47:42-47:42: @67.Goto: goto -> bb69"><span class="annotation">@67⦊</span>‸<span class="annotation">⦉@67</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code even" style="--layer: 1" title="47:46-47:55: @64[2]: _58 = _41
|
||||
47:46-47:60: @64[3]: _57 = Ne(move _58, const 9_i32)"><span class="annotation">@64⦊</span>countdown != 9<span class="annotation">⦉@64</span></span></span><span><span class="code odd" style="--layer: 1" title="47:60-47:60: @62.Goto: goto -> bb65"><span class="annotation">@62⦊</span>‸<span class="annotation">⦉@62</span></span></span><span><span class="code even" style="--layer: 1" title="47:60-47:60: @63.Goto: goto -> bb65"><span class="annotation">@63⦊</span>‸<span class="annotation">⦉@63</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="48:13-48:26: @72[0]: _41 = const 0_i32
|
||||
47:61-49:10: @72[1]: _50 = const ()
|
||||
49:10-49:10: @72.Goto: goto -> bb73"><span class="annotation">@70,72⦊</span>{</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="48:13-48:26: @72[0]: _41 = const 0_i32
|
||||
47:61-49:10: @72[1]: _50 = const ()
|
||||
49:10-49:10: @72.Goto: goto -> bb73"> countdown = 0;</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="48:13-48:26: @72[0]: _41 = const 0_i32
|
||||
47:61-49:10: @72[1]: _50 = const ()
|
||||
49:10-49:10: @72.Goto: goto -> bb73"> }<span class="annotation">⦉@70,72</span></span></span><span><span class="code even" style="--layer: 1" title="49:10-49:10: @71.Goto: goto -> bb73"><span class="annotation">@71⦊</span>‸<span class="annotation">⦉@71</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="50:9-50:23: @74[0]: _41 = move (_59.0: i32)"><span class="annotation">@74⦊</span>countdown -= 5<span class="annotation">⦉@74</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> if </span><span><span class="code odd" style="--layer: 1" title="57:12-57:21: @57[4]: _47 = _43
|
||||
57:12-57:25: @57[5]: _46 = Gt(move _47, const 7_i32)
|
||||
57:12-57:25: @57[7]: FakeRead(ForMatchedPlace, _46)"><span class="annotation">@57⦊</span>countdown > 7<span class="annotation">⦉@57</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="58:13-58:27: @60[0]: _48 = CheckedSub(_43, const 4_i32)
|
||||
58:13-58:27: @61[0]: _43 = move (_48.0: i32)
|
||||
57:26-59:10: @61[1]: _41 = const ()"><span class="annotation">@58,60,61⦊</span>{</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="58:13-58:27: @60[0]: _48 = CheckedSub(_43, const 4_i32)
|
||||
58:13-58:27: @61[0]: _43 = move (_48.0: i32)
|
||||
57:26-59:10: @61[1]: _41 = const ()"> countdown -= 4;</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="58:13-58:27: @60[0]: _48 = CheckedSub(_43, const 4_i32)
|
||||
58:13-58:27: @61[0]: _43 = move (_48.0: i32)
|
||||
57:26-59:10: @61[1]: _41 = const ()"> }<span class="annotation">⦉@58,60,61</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> // The closing brace of the `then` branch is now included in the coverage region, and shown</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> // as "executed" (giving its line a count of 1 here). Since, in the original version above,</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> // the closing brace shares the same line as the `else if` conditional expression (which is</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> // not executed if the first `then` condition is true), only the condition's code region is</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> // marked with a count of 0 now.</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> else if </span><span><span class="code odd" style="--layer: 1" title="65:17-65:26: @59[2]: _50 = _43
|
||||
65:17-65:30: @59[3]: _49 = Gt(move _50, const 2_i32)
|
||||
65:17-65:30: @59[5]: FakeRead(ForMatchedPlace, _49)"><span class="annotation">@59⦊</span>countdown > 2<span class="annotation">⦉@59</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> if </span><span><span class="code even" style="--layer: 1" title="66:16-66:25: @64[5]: _55 = _43
|
||||
66:16-66:29: @64[6]: _54 = Lt(move _55, const 1_i32)"><span class="annotation">@62,64⦊</span>countdown < 1<span class="annotation">⦉@62,64</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code odd" style="--layer: 1" title="66:33-66:42: @71[2]: _57 = _43
|
||||
66:33-66:46: @71[3]: _56 = Gt(move _57, const 5_i32)"><span class="annotation">@71⦊</span>countdown > 5<span class="annotation">⦉@71</span></span></span><span><span class="code even" style="--layer: 1" title="66:46-66:46: @69.Goto: goto -> bb72"><span class="annotation">@69⦊</span>‸<span class="annotation">⦉@69</span></span></span><span><span class="code odd" style="--layer: 1" title="66:46-66:46: @70.Goto: goto -> bb72"><span class="annotation">@70⦊</span>‸<span class="annotation">⦉@70</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code even" style="--layer: 1" title="66:50-66:59: @67[2]: _59 = _43
|
||||
66:50-66:64: @67[3]: _58 = Ne(move _59, const 9_i32)"><span class="annotation">@67⦊</span>countdown != 9<span class="annotation">⦉@67</span></span></span><span><span class="code odd" style="--layer: 1" title="66:64-66:64: @65.Goto: goto -> bb68"><span class="annotation">@65⦊</span>‸<span class="annotation">⦉@65</span></span></span><span><span class="code even" style="--layer: 1" title="66:64-66:64: @66.Goto: goto -> bb68"><span class="annotation">@66⦊</span>‸<span class="annotation">⦉@66</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="67:17-67:30: @75[0]: _43 = const 0_i32
|
||||
66:65-68:14: @75[1]: _51 = const ()
|
||||
68:14-68:14: @75.Goto: goto -> bb76"><span class="annotation">@73,75⦊</span>{</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="67:17-67:30: @75[0]: _43 = const 0_i32
|
||||
66:65-68:14: @75[1]: _51 = const ()
|
||||
68:14-68:14: @75.Goto: goto -> bb76"> countdown = 0;</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="67:17-67:30: @75[0]: _43 = const 0_i32
|
||||
66:65-68:14: @75[1]: _51 = const ()
|
||||
68:14-68:14: @75.Goto: goto -> bb76"> }<span class="annotation">⦉@73,75</span></span></span><span><span class="code even" style="--layer: 1" title="68:14-68:14: @74.Goto: goto -> bb76"><span class="annotation">@74⦊</span>‸<span class="annotation">⦉@74</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="69:13-69:27: @76[2]: _60 = CheckedSub(_43, const 5_i32)
|
||||
69:13-69:27: @77[0]: _43 = move (_60.0: i32)"><span class="annotation">@76,77⦊</span>countdown -= 5<span class="annotation">⦉@76,77</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> } else {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="71:13-71:19: @63[0]: _0 = const ()"><span class="annotation">@63⦊</span>return<span class="annotation">⦉@63</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span><span><span class="code odd" style="--layer: 1" title="73:6-73:6: @78.Goto: goto -> bb79"><span class="annotation">@78⦊</span>‸<span class="annotation">⦉@78</span></span></span><span><span class="code even" style="--layer: 1" title="73:6-73:6: @52.Goto: goto -> bb79"><span class="annotation">@52⦊</span>‸<span class="annotation">⦉@52</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> let </span><span><span class="code odd" style="--layer: 1" title="75:25-75:26: @79[3]: _62 = const 0_i32
|
||||
75:9-75:22: @79[4]: FakeRead(ForLet, _62)"><span class="annotation">@79⦊</span>mut countdown = 0<span class="annotation">⦉@79</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> if </span><span><span class="code odd" style="--layer: 1" title="76:8-76:12: @79[7]: _64 = const true
|
||||
76:8-76:12: @79[8]: FakeRead(ForMatchedPlace, _64)"><span class="annotation">@79⦊</span>true<span class="annotation">⦉@79</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="77:9-77:22: @82[0]: _62 = const 1_i32
|
||||
76:13-78:6: @82[1]: _63 = const ()
|
||||
78:6-78:6: @82.Goto: goto -> bb83"><span class="annotation">@80,82⦊</span>{</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="77:9-77:22: @82[0]: _62 = const 1_i32
|
||||
76:13-78:6: @82[1]: _63 = const ()
|
||||
78:6-78:6: @82.Goto: goto -> bb83"> countdown = 1;</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="77:9-77:22: @82[0]: _62 = const 1_i32
|
||||
76:13-78:6: @82[1]: _63 = const ()
|
||||
78:6-78:6: @82.Goto: goto -> bb83"> }<span class="annotation">⦉@80,82</span></span></span><span><span class="code odd" style="--layer: 1" title="78:6-78:6: @81.Goto: goto -> bb83"><span class="annotation">@81⦊</span>‸<span class="annotation">⦉@81</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> let </span><span><span class="code even" style="--layer: 1" title="80:9-80:10: @106[0]: FakeRead(ForLet, _65)"><span class="annotation">@106⦊</span>z<span class="annotation">⦉@106</span></span></span><span class="code" style="--layer: 0"> = if </span><span><span class="code odd" style="--layer: 1" title="80:16-80:25: @83[5]: _67 = _62
|
||||
80:16-80:29: @83[6]: _66 = Gt(move _67, const 7_i32)
|
||||
80:16-80:29: @83[8]: FakeRead(ForMatchedPlace, _66)"><span class="annotation">@83⦊</span>countdown > 7<span class="annotation">⦉@83</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="81:9-81:23: @86[0]: _68 = CheckedSub(_62, const 4_i32)
|
||||
81:9-81:23: @87[0]: _62 = move (_68.0: i32)
|
||||
80:30-82:6: @87[1]: _65 = const ()"><span class="annotation">@84,86,87⦊</span>{</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="81:9-81:23: @86[0]: _68 = CheckedSub(_62, const 4_i32)
|
||||
81:9-81:23: @87[0]: _62 = move (_68.0: i32)
|
||||
80:30-82:6: @87[1]: _65 = const ()"> countdown -= 4;</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="81:9-81:23: @86[0]: _68 = CheckedSub(_62, const 4_i32)
|
||||
81:9-81:23: @87[0]: _62 = move (_68.0: i32)
|
||||
80:30-82:6: @87[1]: _65 = const ()"> }<span class="annotation">⦉@84,86,87</span></span></span><span class="code" style="--layer: 0"> else if </span><span><span class="code odd" style="--layer: 1" title="82:15-82:24: @85[2]: _70 = _62
|
||||
82:15-82:28: @85[3]: _69 = Gt(move _70, const 2_i32)
|
||||
82:15-82:28: @85[5]: FakeRead(ForMatchedPlace, _69)"><span class="annotation">@85⦊</span>countdown > 2<span class="annotation">⦉@85</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> if </span><span><span class="code even" style="--layer: 1" title="83:12-83:21: @90[5]: _75 = _62
|
||||
83:12-83:25: @90[6]: _74 = Lt(move _75, const 1_i32)"><span class="annotation">@88,90⦊</span>countdown < 1<span class="annotation">⦉@88,90</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code odd" style="--layer: 1" title="83:29-83:38: @97[2]: _77 = _62
|
||||
83:29-83:42: @97[3]: _76 = Gt(move _77, const 5_i32)"><span class="annotation">@97⦊</span>countdown > 5<span class="annotation">⦉@97</span></span></span><span><span class="code even" style="--layer: 1" title="83:42-83:42: @95.Goto: goto -> bb98"><span class="annotation">@95⦊</span>‸<span class="annotation">⦉@95</span></span></span><span><span class="code odd" style="--layer: 1" title="83:42-83:42: @96.Goto: goto -> bb98"><span class="annotation">@96⦊</span>‸<span class="annotation">⦉@96</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code even" style="--layer: 1" title="83:46-83:55: @93[2]: _79 = _62
|
||||
83:46-83:60: @93[3]: _78 = Ne(move _79, const 9_i32)"><span class="annotation">@93⦊</span>countdown != 9<span class="annotation">⦉@93</span></span></span><span><span class="code odd" style="--layer: 1" title="83:60-83:60: @91.Goto: goto -> bb94"><span class="annotation">@91⦊</span>‸<span class="annotation">⦉@91</span></span></span><span><span class="code even" style="--layer: 1" title="83:60-83:60: @92.Goto: goto -> bb94"><span class="annotation">@92⦊</span>‸<span class="annotation">⦉@92</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="84:13-84:26: @101[0]: _62 = const 0_i32
|
||||
83:61-85:10: @101[1]: _71 = const ()
|
||||
85:10-85:10: @101.Goto: goto -> bb102"><span class="annotation">@99,101⦊</span>{</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="84:13-84:26: @101[0]: _62 = const 0_i32
|
||||
83:61-85:10: @101[1]: _71 = const ()
|
||||
85:10-85:10: @101.Goto: goto -> bb102"> countdown = 0;</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="84:13-84:26: @101[0]: _62 = const 0_i32
|
||||
83:61-85:10: @101[1]: _71 = const ()
|
||||
85:10-85:10: @101.Goto: goto -> bb102"> }<span class="annotation">⦉@99,101</span></span></span><span><span class="code even" style="--layer: 1" title="85:10-85:10: @100.Goto: goto -> bb102"><span class="annotation">@100⦊</span>‸<span class="annotation">⦉@100</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="86:9-86:23: @102[2]: _80 = CheckedSub(_62, const 5_i32)
|
||||
86:9-86:23: @103[0]: _62 = move (_80.0: i32)"><span class="annotation">@102,103⦊</span>countdown -= 5<span class="annotation">⦉@102,103</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> } else {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> let </span><span><span class="code even" style="--layer: 1" title="52:35-52:44: @60[1]: _61 = _41
|
||||
52:13-52:32: @60[2]: FakeRead(ForLet, _61)
|
||||
53:18-53:27: @60[9]: _92 = const main::promoted[1]
|
||||
53:18-53:27: @60[10]: _67 = &(*_92)
|
||||
53:18-53:27: @60[11]: _66 = &(*_67)
|
||||
53:18-53:27: @60[12]: _65 = move _66 as &[&str] (Pointer(Unsize))
|
||||
53:9-53:29: @60[18]: _73 = ()
|
||||
53:9-53:29: @60[19]: FakeRead(ForMatchedPlace, _73)
|
||||
53:9-53:29: @60[20]: _91 = const main::promoted[0]
|
||||
53:9-53:29: @60[21]: _71 = &(*_91)
|
||||
53:9-53:29: @60[22]: _70 = &(*_71)
|
||||
53:9-53:29: @60[23]: _69 = move _70 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
53:9-53:29: @60.Call: _64 = Arguments::new_v1(move _65, move _69) -> [return: bb75, unwind: bb103]
|
||||
53:9-53:29: @75.Call: _63 = _print(move _64) -> [return: bb76, unwind: bb103]
|
||||
53:9-53:29: @76[5]: _62 = const ()
|
||||
54:9-54:15: @76[7]: _0 = const ()"><span class="annotation">@60,75,76⦊</span>should_be_reachable = countdown;</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="52:35-52:44: @60[1]: _61 = _41
|
||||
52:13-52:32: @60[2]: FakeRead(ForLet, _61)
|
||||
53:18-53:27: @60[9]: _92 = const main::promoted[1]
|
||||
53:18-53:27: @60[10]: _67 = &(*_92)
|
||||
53:18-53:27: @60[11]: _66 = &(*_67)
|
||||
53:18-53:27: @60[12]: _65 = move _66 as &[&str] (Pointer(Unsize))
|
||||
53:9-53:29: @60[18]: _73 = ()
|
||||
53:9-53:29: @60[19]: FakeRead(ForMatchedPlace, _73)
|
||||
53:9-53:29: @60[20]: _91 = const main::promoted[0]
|
||||
53:9-53:29: @60[21]: _71 = &(*_91)
|
||||
53:9-53:29: @60[22]: _70 = &(*_71)
|
||||
53:9-53:29: @60[23]: _69 = move _70 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
53:9-53:29: @60.Call: _64 = Arguments::new_v1(move _65, move _69) -> [return: bb75, unwind: bb103]
|
||||
53:9-53:29: @75.Call: _63 = _print(move _64) -> [return: bb76, unwind: bb103]
|
||||
53:9-53:29: @76[5]: _62 = const ()
|
||||
54:9-54:15: @76[7]: _0 = const ()"> println!("reached");</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="52:35-52:44: @60[1]: _61 = _41
|
||||
52:13-52:32: @60[2]: FakeRead(ForLet, _61)
|
||||
53:18-53:27: @60[9]: _92 = const main::promoted[1]
|
||||
53:18-53:27: @60[10]: _67 = &(*_92)
|
||||
53:18-53:27: @60[11]: _66 = &(*_67)
|
||||
53:18-53:27: @60[12]: _65 = move _66 as &[&str] (Pointer(Unsize))
|
||||
53:9-53:29: @60[18]: _73 = ()
|
||||
53:9-53:29: @60[19]: FakeRead(ForMatchedPlace, _73)
|
||||
53:9-53:29: @60[20]: _91 = const main::promoted[0]
|
||||
53:9-53:29: @60[21]: _71 = &(*_91)
|
||||
53:9-53:29: @60[22]: _70 = &(*_71)
|
||||
53:9-53:29: @60[23]: _69 = move _70 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
53:9-53:29: @60.Call: _64 = Arguments::new_v1(move _65, move _69) -> [return: bb75, unwind: bb103]
|
||||
53:9-53:29: @75.Call: _63 = _print(move _64) -> [return: bb76, unwind: bb103]
|
||||
53:9-53:29: @76[5]: _62 = const ()
|
||||
54:9-54:15: @76[7]: _0 = const ()"> return<span class="annotation">⦉@60,75,76</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> let </span><span><span class="code even" style="--layer: 1" title="88:35-88:44: @89[1]: _82 = _62
|
||||
88:13-88:32: @89[2]: FakeRead(ForLet, _82)
|
||||
89:18-89:27: @89[9]: _113 = const main::promoted[1]
|
||||
89:18-89:27: @89[10]: _88 = &(*_113)
|
||||
89:18-89:27: @89[11]: _87 = &(*_88)
|
||||
89:18-89:27: @89[12]: _86 = move _87 as &[&str] (Pointer(Unsize))
|
||||
89:9-89:29: @89[18]: _94 = ()
|
||||
89:9-89:29: @89[19]: FakeRead(ForMatchedPlace, _94)
|
||||
89:9-89:29: @89[20]: _112 = const main::promoted[0]
|
||||
89:9-89:29: @89[21]: _92 = &(*_112)
|
||||
89:9-89:29: @89[22]: _91 = &(*_92)
|
||||
89:9-89:29: @89[23]: _90 = move _91 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
89:9-89:29: @89.Call: _85 = Arguments::new_v1(move _86, move _90) -> [return: bb104, unwind: bb132]
|
||||
89:9-89:29: @104.Call: _84 = _print(move _85) -> [return: bb105, unwind: bb132]
|
||||
89:9-89:29: @105[5]: _83 = const ()
|
||||
90:9-90:15: @105[7]: _0 = const ()"><span class="annotation">@89,104,105⦊</span>should_be_reachable = countdown;</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="88:35-88:44: @89[1]: _82 = _62
|
||||
88:13-88:32: @89[2]: FakeRead(ForLet, _82)
|
||||
89:18-89:27: @89[9]: _113 = const main::promoted[1]
|
||||
89:18-89:27: @89[10]: _88 = &(*_113)
|
||||
89:18-89:27: @89[11]: _87 = &(*_88)
|
||||
89:18-89:27: @89[12]: _86 = move _87 as &[&str] (Pointer(Unsize))
|
||||
89:9-89:29: @89[18]: _94 = ()
|
||||
89:9-89:29: @89[19]: FakeRead(ForMatchedPlace, _94)
|
||||
89:9-89:29: @89[20]: _112 = const main::promoted[0]
|
||||
89:9-89:29: @89[21]: _92 = &(*_112)
|
||||
89:9-89:29: @89[22]: _91 = &(*_92)
|
||||
89:9-89:29: @89[23]: _90 = move _91 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
89:9-89:29: @89.Call: _85 = Arguments::new_v1(move _86, move _90) -> [return: bb104, unwind: bb132]
|
||||
89:9-89:29: @104.Call: _84 = _print(move _85) -> [return: bb105, unwind: bb132]
|
||||
89:9-89:29: @105[5]: _83 = const ()
|
||||
90:9-90:15: @105[7]: _0 = const ()"> println!("reached");</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="88:35-88:44: @89[1]: _82 = _62
|
||||
88:13-88:32: @89[2]: FakeRead(ForLet, _82)
|
||||
89:18-89:27: @89[9]: _113 = const main::promoted[1]
|
||||
89:18-89:27: @89[10]: _88 = &(*_113)
|
||||
89:18-89:27: @89[11]: _87 = &(*_88)
|
||||
89:18-89:27: @89[12]: _86 = move _87 as &[&str] (Pointer(Unsize))
|
||||
89:9-89:29: @89[18]: _94 = ()
|
||||
89:9-89:29: @89[19]: FakeRead(ForMatchedPlace, _94)
|
||||
89:9-89:29: @89[20]: _112 = const main::promoted[0]
|
||||
89:9-89:29: @89[21]: _92 = &(*_112)
|
||||
89:9-89:29: @89[22]: _91 = &(*_92)
|
||||
89:9-89:29: @89[23]: _90 = move _91 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
89:9-89:29: @89.Call: _85 = Arguments::new_v1(move _86, move _90) -> [return: bb104, unwind: bb132]
|
||||
89:9-89:29: @104.Call: _84 = _print(move _85) -> [return: bb105, unwind: bb132]
|
||||
89:9-89:29: @105[5]: _83 = const ()
|
||||
90:9-90:15: @105[7]: _0 = const ()"> return<span class="annotation">⦉@89,104,105</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> };</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> let </span><span><span class="code odd" style="--layer: 1" title="57:9-57:10: @98[0]: FakeRead(ForLet, _74)"><span class="annotation">@98⦊</span>w<span class="annotation">⦉@98</span></span></span><span class="code" style="--layer: 0"> = if </span><span><span class="code even" style="--layer: 1" title="57:16-57:25: @77[5]: _76 = _41
|
||||
57:16-57:29: @77[6]: _75 = Gt(move _76, const 7_i32)
|
||||
57:16-57:29: @77[8]: FakeRead(ForMatchedPlace, _75)"><span class="annotation">@77⦊</span>countdown > 7<span class="annotation">⦉@77</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="58:9-58:23: @81[0]: _41 = move (_77.0: i32)"><span class="annotation">@81⦊</span>countdown -= 4<span class="annotation">⦉@81</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> } else if </span><span><span class="code even" style="--layer: 1" title="59:15-59:24: @79[2]: _79 = _41
|
||||
59:15-59:28: @79[3]: _78 = Gt(move _79, const 2_i32)
|
||||
59:15-59:28: @79[5]: FakeRead(ForMatchedPlace, _78)"><span class="annotation">@79⦊</span>countdown > 2<span class="annotation">⦉@79</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> if </span><span><span class="code odd" style="--layer: 1" title="60:12-60:21: @84[5]: _84 = _41
|
||||
60:12-60:25: @84[6]: _83 = Lt(move _84, const 1_i32)"><span class="annotation">@82,84⦊</span>countdown < 1<span class="annotation">⦉@82,84</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code even" style="--layer: 1" title="60:29-60:38: @91[2]: _86 = _41
|
||||
60:29-60:42: @91[3]: _85 = Gt(move _86, const 5_i32)"><span class="annotation">@91⦊</span>countdown > 5<span class="annotation">⦉@91</span></span></span><span><span class="code odd" style="--layer: 1" title="60:42-60:42: @89.Goto: goto -> bb92"><span class="annotation">@89⦊</span>‸<span class="annotation">⦉@89</span></span></span><span><span class="code even" style="--layer: 1" title="60:42-60:42: @90.Goto: goto -> bb92"><span class="annotation">@90⦊</span>‸<span class="annotation">⦉@90</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code odd" style="--layer: 1" title="60:46-60:55: @87[2]: _88 = _41
|
||||
60:46-60:60: @87[3]: _87 = Ne(move _88, const 9_i32)"><span class="annotation">@87⦊</span>countdown != 9<span class="annotation">⦉@87</span></span></span><span><span class="code even" style="--layer: 1" title="60:60-60:60: @85.Goto: goto -> bb88"><span class="annotation">@85⦊</span>‸<span class="annotation">⦉@85</span></span></span><span><span class="code odd" style="--layer: 1" title="60:60-60:60: @86.Goto: goto -> bb88"><span class="annotation">@86⦊</span>‸<span class="annotation">⦉@86</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="61:13-61:26: @95[0]: _41 = const 0_i32
|
||||
60:61-62:10: @95[1]: _80 = const ()
|
||||
62:10-62:10: @95.Goto: goto -> bb96"><span class="annotation">@93,95⦊</span>{</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="61:13-61:26: @95[0]: _41 = const 0_i32
|
||||
60:61-62:10: @95[1]: _80 = const ()
|
||||
62:10-62:10: @95.Goto: goto -> bb96"> countdown = 0;</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="61:13-61:26: @95[0]: _41 = const 0_i32
|
||||
60:61-62:10: @95[1]: _80 = const ()
|
||||
62:10-62:10: @95.Goto: goto -> bb96"> }<span class="annotation">⦉@93,95</span></span></span><span><span class="code odd" style="--layer: 1" title="62:10-62:10: @94.Goto: goto -> bb96"><span class="annotation">@94⦊</span>‸<span class="annotation">⦉@94</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="63:9-63:23: @97[0]: _41 = move (_89.0: i32)"><span class="annotation">@97⦊</span>countdown -= 5<span class="annotation">⦉@97</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> let </span><span><span class="code odd" style="--layer: 1" title="93:9-93:10: @127[0]: FakeRead(ForLet, _95)"><span class="annotation">@127⦊</span>w<span class="annotation">⦉@127</span></span></span><span class="code" style="--layer: 0"> = if </span><span><span class="code even" style="--layer: 1" title="93:16-93:25: @106[5]: _97 = _62
|
||||
93:16-93:29: @106[6]: _96 = Gt(move _97, const 7_i32)
|
||||
93:16-93:29: @106[8]: FakeRead(ForMatchedPlace, _96)"><span class="annotation">@106⦊</span>countdown > 7<span class="annotation">⦉@106</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="94:9-94:23: @109[0]: _98 = CheckedSub(_62, const 4_i32)
|
||||
94:9-94:23: @110[0]: _62 = move (_98.0: i32)
|
||||
93:30-95:6: @110[1]: _95 = const ()"><span class="annotation">@107,109,110⦊</span>{</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="94:9-94:23: @109[0]: _98 = CheckedSub(_62, const 4_i32)
|
||||
94:9-94:23: @110[0]: _62 = move (_98.0: i32)
|
||||
93:30-95:6: @110[1]: _95 = const ()"> countdown -= 4;</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="94:9-94:23: @109[0]: _98 = CheckedSub(_62, const 4_i32)
|
||||
94:9-94:23: @110[0]: _62 = move (_98.0: i32)
|
||||
93:30-95:6: @110[1]: _95 = const ()"> }<span class="annotation">⦉@107,109,110</span></span></span><span class="code" style="--layer: 0"> else if </span><span><span class="code even" style="--layer: 1" title="95:15-95:24: @108[2]: _100 = _62
|
||||
95:15-95:28: @108[3]: _99 = Gt(move _100, const 2_i32)
|
||||
95:15-95:28: @108[5]: FakeRead(ForMatchedPlace, _99)"><span class="annotation">@108⦊</span>countdown > 2<span class="annotation">⦉@108</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> if </span><span><span class="code odd" style="--layer: 1" title="96:12-96:21: @113[5]: _105 = _62
|
||||
96:12-96:25: @113[6]: _104 = Lt(move _105, const 1_i32)"><span class="annotation">@111,113⦊</span>countdown < 1<span class="annotation">⦉@111,113</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code even" style="--layer: 1" title="96:29-96:38: @120[2]: _107 = _62
|
||||
96:29-96:42: @120[3]: _106 = Gt(move _107, const 5_i32)"><span class="annotation">@120⦊</span>countdown > 5<span class="annotation">⦉@120</span></span></span><span><span class="code odd" style="--layer: 1" title="96:42-96:42: @118.Goto: goto -> bb121"><span class="annotation">@118⦊</span>‸<span class="annotation">⦉@118</span></span></span><span><span class="code even" style="--layer: 1" title="96:42-96:42: @119.Goto: goto -> bb121"><span class="annotation">@119⦊</span>‸<span class="annotation">⦉@119</span></span></span><span class="code" style="--layer: 0"> || </span><span><span class="code odd" style="--layer: 1" title="96:46-96:55: @116[2]: _109 = _62
|
||||
96:46-96:60: @116[3]: _108 = Ne(move _109, const 9_i32)"><span class="annotation">@116⦊</span>countdown != 9<span class="annotation">⦉@116</span></span></span><span><span class="code even" style="--layer: 1" title="96:60-96:60: @114.Goto: goto -> bb117"><span class="annotation">@114⦊</span>‸<span class="annotation">⦉@114</span></span></span><span><span class="code odd" style="--layer: 1" title="96:60-96:60: @115.Goto: goto -> bb117"><span class="annotation">@115⦊</span>‸<span class="annotation">⦉@115</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="97:13-97:26: @124[0]: _62 = const 0_i32
|
||||
96:61-98:10: @124[1]: _101 = const ()
|
||||
98:10-98:10: @124.Goto: goto -> bb125"><span class="annotation">@122,124⦊</span>{</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="97:13-97:26: @124[0]: _62 = const 0_i32
|
||||
96:61-98:10: @124[1]: _101 = const ()
|
||||
98:10-98:10: @124.Goto: goto -> bb125"> countdown = 0;</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="97:13-97:26: @124[0]: _62 = const 0_i32
|
||||
96:61-98:10: @124[1]: _101 = const ()
|
||||
98:10-98:10: @124.Goto: goto -> bb125"> }<span class="annotation">⦉@122,124</span></span></span><span><span class="code odd" style="--layer: 1" title="98:10-98:10: @123.Goto: goto -> bb125"><span class="annotation">@123⦊</span>‸<span class="annotation">⦉@123</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="99:9-99:23: @125[2]: _110 = CheckedSub(_62, const 5_i32)
|
||||
99:9-99:23: @126[0]: _62 = move (_110.0: i32)"><span class="annotation">@125,126⦊</span>countdown -= 5<span class="annotation">⦉@125,126</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> } else {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="65:9-65:15: @83[0]: _0 = const ()"><span class="annotation">@83⦊</span>return<span class="annotation">⦉@83</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="101:9-101:15: @112[0]: _0 = const ()"><span class="annotation">@112⦊</span>return<span class="annotation">⦉@112</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> };</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code even" style="--layer: 1" title="67:2-67:2: @101.Goto: goto -> bb102"><span class="annotation">@101⦊</span>‸<span class="annotation">⦉@101</span></span></span><span><span class="code odd" style="--layer: 1" title="67:2-67:2: @102.Return: return"><span class="annotation">@102⦊</span>‸<span class="annotation">⦉@102</span></span></span></span></div>
|
||||
<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code even" style="--layer: 1" title="103:2-103:2: @130.Goto: goto -> bb131"><span class="annotation">@130⦊</span>‸<span class="annotation">⦉@130</span></span></span><span><span class="code odd" style="--layer: 1" title="103:2-103:2: @131.Return: return"><span class="annotation">@131⦊</span>‸<span class="annotation">⦉@131</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -71,10 +71,13 @@ For revisions in Pull Requests (PR):
|
|||
<body>
|
||||
<div class="code" style="counter-reset: line 17"><span class="line"> <span class="code" style="--layer: 0">fn in_func(a: u32) {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> let </span><span><span class="code even" style="--layer: 1" title="19:17-19:18: @0[1]: _2 = const 1_u32
|
||||
19:13-19:14: @0[2]: FakeRead(ForLet, _2)"><span class="annotation">@0⦊</span>b = 1<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> let </span><span><span class="code odd" style="--layer: 1" title="20:13-20:14: @1[3]: FakeRead(ForLet, _3)"><span class="annotation">@1,2,3,4⦊</span>c<span class="annotation">⦉@1,2,3,4</span></span></span><span class="code" style="--layer: 0"> = </span><span><span class="code even" style="--layer: 1" title="20:17-20:18: @0[5]: _4 = _1
|
||||
20:21-20:22: @0[7]: _5 = _2"><span class="annotation">@0⦊</span>a + b<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="21:18-21:26: @1[9]: _23 = const in_func::promoted[0]
|
||||
19:13-19:14: @0[2]: FakeRead(ForLet, _2)
|
||||
20:17-20:18: @0[5]: _4 = _1
|
||||
20:21-20:22: @0[7]: _5 = _2
|
||||
20:17-20:22: @0[8]: _6 = CheckedAdd(_4, _5)
|
||||
20:17-20:22: @1[0]: _3 = move (_6.0: u32)
|
||||
20:13-20:14: @1[3]: FakeRead(ForLet, _3)
|
||||
21:18-21:26: @1[9]: _23 = const in_func::promoted[0]
|
||||
21:18-21:26: @1[10]: _11 = &(*_23)
|
||||
21:18-21:26: @1[11]: _10 = &(*_11)
|
||||
21:18-21:26: @1[12]: _9 = move _10 as &[&str] (Pointer(Unsize))
|
||||
|
|
@ -92,8 +95,15 @@ For revisions in Pull Requests (PR):
|
|||
21:9-21:30: @2.Call: _8 = Arguments::new_v1(move _9, move _13) -> [return: bb3, unwind: bb5]
|
||||
21:9-21:30: @3.Call: _7 = _print(move _8) -> [return: bb4, unwind: bb5]
|
||||
21:9-21:30: @4[6]: _0 = const ()
|
||||
22:6-22:6: @4.Return: return"><span class="annotation">@1,2,3,4⦊</span>println!("c = {}", c)</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="21:18-21:26: @1[9]: _23 = const in_func::promoted[0]
|
||||
22:6-22:6: @4.Return: return"><span class="annotation">@0,1,2,3,4⦊</span>b = 1;</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="19:17-19:18: @0[1]: _2 = const 1_u32
|
||||
19:13-19:14: @0[2]: FakeRead(ForLet, _2)
|
||||
20:17-20:18: @0[5]: _4 = _1
|
||||
20:21-20:22: @0[7]: _5 = _2
|
||||
20:17-20:22: @0[8]: _6 = CheckedAdd(_4, _5)
|
||||
20:17-20:22: @1[0]: _3 = move (_6.0: u32)
|
||||
20:13-20:14: @1[3]: FakeRead(ForLet, _3)
|
||||
21:18-21:26: @1[9]: _23 = const in_func::promoted[0]
|
||||
21:18-21:26: @1[10]: _11 = &(*_23)
|
||||
21:18-21:26: @1[11]: _10 = &(*_11)
|
||||
21:18-21:26: @1[12]: _9 = move _10 as &[&str] (Pointer(Unsize))
|
||||
|
|
@ -111,6 +121,58 @@ For revisions in Pull Requests (PR):
|
|||
21:9-21:30: @2.Call: _8 = Arguments::new_v1(move _9, move _13) -> [return: bb3, unwind: bb5]
|
||||
21:9-21:30: @3.Call: _7 = _print(move _8) -> [return: bb4, unwind: bb5]
|
||||
21:9-21:30: @4[6]: _0 = const ()
|
||||
22:6-22:6: @4.Return: return"> }<span class="annotation">⦉@1,2,3,4</span></span></span></span></div>
|
||||
22:6-22:6: @4.Return: return"> let c = a + b;</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="19:17-19:18: @0[1]: _2 = const 1_u32
|
||||
19:13-19:14: @0[2]: FakeRead(ForLet, _2)
|
||||
20:17-20:18: @0[5]: _4 = _1
|
||||
20:21-20:22: @0[7]: _5 = _2
|
||||
20:17-20:22: @0[8]: _6 = CheckedAdd(_4, _5)
|
||||
20:17-20:22: @1[0]: _3 = move (_6.0: u32)
|
||||
20:13-20:14: @1[3]: FakeRead(ForLet, _3)
|
||||
21:18-21:26: @1[9]: _23 = const in_func::promoted[0]
|
||||
21:18-21:26: @1[10]: _11 = &(*_23)
|
||||
21:18-21:26: @1[11]: _10 = &(*_11)
|
||||
21:18-21:26: @1[12]: _9 = move _10 as &[&str] (Pointer(Unsize))
|
||||
21:28-21:29: @1[20]: _18 = &_3
|
||||
21:9-21:30: @1[21]: _17 = (move _18,)
|
||||
21:9-21:30: @1[23]: FakeRead(ForMatchedPlace, _17)
|
||||
21:9-21:30: @1[25]: _19 = (_17.0: &u32)
|
||||
21:9-21:30: @1[28]: _21 = &(*_19)
|
||||
21:9-21:30: @1[30]: _22 = <u32 as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r u32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer))
|
||||
21:9-21:30: @1.Call: _20 = ArgumentV1::new::<u32>(move _21, move _22) -> [return: bb2, unwind: bb5]
|
||||
21:9-21:30: @2[2]: _16 = [move _20]
|
||||
21:9-21:30: @2[5]: _15 = &_16
|
||||
21:9-21:30: @2[6]: _14 = &(*_15)
|
||||
21:9-21:30: @2[7]: _13 = move _14 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
21:9-21:30: @2.Call: _8 = Arguments::new_v1(move _9, move _13) -> [return: bb3, unwind: bb5]
|
||||
21:9-21:30: @3.Call: _7 = _print(move _8) -> [return: bb4, unwind: bb5]
|
||||
21:9-21:30: @4[6]: _0 = const ()
|
||||
22:6-22:6: @4.Return: return"> println!("c = {}", c)</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="19:17-19:18: @0[1]: _2 = const 1_u32
|
||||
19:13-19:14: @0[2]: FakeRead(ForLet, _2)
|
||||
20:17-20:18: @0[5]: _4 = _1
|
||||
20:21-20:22: @0[7]: _5 = _2
|
||||
20:17-20:22: @0[8]: _6 = CheckedAdd(_4, _5)
|
||||
20:17-20:22: @1[0]: _3 = move (_6.0: u32)
|
||||
20:13-20:14: @1[3]: FakeRead(ForLet, _3)
|
||||
21:18-21:26: @1[9]: _23 = const in_func::promoted[0]
|
||||
21:18-21:26: @1[10]: _11 = &(*_23)
|
||||
21:18-21:26: @1[11]: _10 = &(*_11)
|
||||
21:18-21:26: @1[12]: _9 = move _10 as &[&str] (Pointer(Unsize))
|
||||
21:28-21:29: @1[20]: _18 = &_3
|
||||
21:9-21:30: @1[21]: _17 = (move _18,)
|
||||
21:9-21:30: @1[23]: FakeRead(ForMatchedPlace, _17)
|
||||
21:9-21:30: @1[25]: _19 = (_17.0: &u32)
|
||||
21:9-21:30: @1[28]: _21 = &(*_19)
|
||||
21:9-21:30: @1[30]: _22 = <u32 as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r u32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer))
|
||||
21:9-21:30: @1.Call: _20 = ArgumentV1::new::<u32>(move _21, move _22) -> [return: bb2, unwind: bb5]
|
||||
21:9-21:30: @2[2]: _16 = [move _20]
|
||||
21:9-21:30: @2[5]: _15 = &_16
|
||||
21:9-21:30: @2[6]: _14 = &(*_15)
|
||||
21:9-21:30: @2[7]: _13 = move _14 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
21:9-21:30: @2.Call: _8 = Arguments::new_v1(move _9, move _13) -> [return: bb3, unwind: bb5]
|
||||
21:9-21:30: @3.Call: _7 = _print(move _8) -> [return: bb4, unwind: bb5]
|
||||
21:9-21:30: @4[6]: _0 = const ()
|
||||
22:6-22:6: @4.Return: return"> }<span class="annotation">⦉@0,1,2,3,4</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -69,13 +69,33 @@ For revisions in Pull Requests (PR):
|
|||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 39"><span class="line"> <span class="code" style="--layer: 0">fn trait_func(&mut self, incr: u32) {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> self.in_struct_field += </span><span><span class="code even" style="--layer: 1" title="41:37-41:41: @0[1]: _3 = _2"><span class="annotation">@0⦊</span>incr<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="42:21-42:41: @1[4]: _6 = ((*_1).0: u32)
|
||||
<div class="code" style="counter-reset: line 39"><span class="line"> <span class="code" style="--layer: 0">fn trait_func(&mut self, incr: u32) </span><span><span class="code even" style="--layer: 1" title="41:37-41:41: @0[1]: _3 = _2
|
||||
41:13-41:41: @0[2]: _4 = CheckedAdd(((*_1).0: u32), _3)
|
||||
41:13-41:41: @1[0]: ((*_1).0: u32) = move (_4.0: u32)
|
||||
42:21-42:41: @1[4]: _6 = ((*_1).0: u32)
|
||||
42:13-42:42: @1.Call: _5 = in_func(move _6) -> [return: bb2, unwind: bb3]
|
||||
43:10-43:10: @2.Return: return"><span class="annotation">@1,2⦊</span>in_func(self.in_struct_field);</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="42:21-42:41: @1[4]: _6 = ((*_1).0: u32)
|
||||
40:45-43:10: @2[2]: _0 = const ()
|
||||
43:10-43:10: @2.Return: return"><span class="annotation">@0,1,2⦊</span>{</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="41:37-41:41: @0[1]: _3 = _2
|
||||
41:13-41:41: @0[2]: _4 = CheckedAdd(((*_1).0: u32), _3)
|
||||
41:13-41:41: @1[0]: ((*_1).0: u32) = move (_4.0: u32)
|
||||
42:21-42:41: @1[4]: _6 = ((*_1).0: u32)
|
||||
42:13-42:42: @1.Call: _5 = in_func(move _6) -> [return: bb2, unwind: bb3]
|
||||
43:10-43:10: @2.Return: return"> }<span class="annotation">⦉@1,2</span></span></span></span></div>
|
||||
40:45-43:10: @2[2]: _0 = const ()
|
||||
43:10-43:10: @2.Return: return"> self.in_struct_field += incr;</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="41:37-41:41: @0[1]: _3 = _2
|
||||
41:13-41:41: @0[2]: _4 = CheckedAdd(((*_1).0: u32), _3)
|
||||
41:13-41:41: @1[0]: ((*_1).0: u32) = move (_4.0: u32)
|
||||
42:21-42:41: @1[4]: _6 = ((*_1).0: u32)
|
||||
42:13-42:42: @1.Call: _5 = in_func(move _6) -> [return: bb2, unwind: bb3]
|
||||
40:45-43:10: @2[2]: _0 = const ()
|
||||
43:10-43:10: @2.Return: return"> in_func(self.in_struct_field);</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="41:37-41:41: @0[1]: _3 = _2
|
||||
41:13-41:41: @0[2]: _4 = CheckedAdd(((*_1).0: u32), _3)
|
||||
41:13-41:41: @1[0]: ((*_1).0: u32) = move (_4.0: u32)
|
||||
42:21-42:41: @1[4]: _6 = ((*_1).0: u32)
|
||||
42:13-42:42: @1.Call: _5 = in_func(move _6) -> [return: bb2, unwind: bb3]
|
||||
40:45-43:10: @2[2]: _0 = const ()
|
||||
43:10-43:10: @2.Return: return"> }<span class="annotation">⦉@0,1,2</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -108,28 +108,46 @@ For revisions in Pull Requests (PR):
|
|||
9:16-9:22: @16[18]: FakeRead(ForMatchedPlace, _26)"><span class="annotation">@14,16⦊</span>a < 30<span class="annotation">⦉@14,16</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="10:17-10:22: @19[0]: _11 = const ()"><span class="annotation">@17,19⦊</span>break<span class="annotation">⦉@17,19</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="12:13-12:19: @20[0]: _9 = move (_29.0: i32)"><span class="annotation">@20⦊</span>a -= 5<span class="annotation">⦉@20</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="13:13-13:19: @21[0]: _10 = move (_30.0: i32)"><span class="annotation">@21⦊</span>b -= 5<span class="annotation">⦉@21</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> if </span><span><span class="code even" style="--layer: 1" title="14:16-14:17: @21[3]: _32 = _10
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="12:13-12:19: @18[3]: _29 = CheckedSub(_9, const 5_i32)
|
||||
12:13-12:19: @20[0]: _9 = move (_29.0: i32)
|
||||
13:13-13:19: @20[1]: _30 = CheckedSub(_10, const 5_i32)
|
||||
13:13-13:19: @21[0]: _10 = move (_30.0: i32)"><span class="annotation">@18,20,21⦊</span>a -= 5;</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="12:13-12:19: @18[3]: _29 = CheckedSub(_9, const 5_i32)
|
||||
12:13-12:19: @20[0]: _9 = move (_29.0: i32)
|
||||
13:13-13:19: @20[1]: _30 = CheckedSub(_10, const 5_i32)
|
||||
13:13-13:19: @21[0]: _10 = move (_30.0: i32)"> b -= 5<span class="annotation">⦉@18,20,21</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> if </span><span><span class="code odd" style="--layer: 1" title="14:16-14:17: @21[3]: _32 = _10
|
||||
14:16-14:22: @21[4]: _31 = Lt(move _32, const 90_i32)
|
||||
14:16-14:22: @21[6]: FakeRead(ForMatchedPlace, _31)"><span class="annotation">@21⦊</span>b < 90<span class="annotation">⦉@21</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="15:17-15:24: @25[0]: _9 = move (_33.0: i32)
|
||||
14:16-14:22: @21[6]: FakeRead(ForMatchedPlace, _31)"><span class="annotation">@18,20,21⦊</span>b < 90<span class="annotation">⦉@18,20,21</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="15:17-15:24: @24[0]: _33 = CheckedSub(_9, const 10_i32)
|
||||
15:17-15:24: @25[0]: _9 = move (_33.0: i32)
|
||||
16:20-16:27: @25[2]: _34 = _1
|
||||
16:20-16:27: @25[3]: FakeRead(ForMatchedPlace, _34)"><span class="annotation">@25⦊</span>a -= 10;</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="15:17-15:24: @25[0]: _9 = move (_33.0: i32)
|
||||
16:20-16:27: @25[3]: FakeRead(ForMatchedPlace, _34)"><span class="annotation">@22,24,25⦊</span>a -= 10;</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="15:17-15:24: @24[0]: _33 = CheckedSub(_9, const 10_i32)
|
||||
15:17-15:24: @25[0]: _9 = move (_33.0: i32)
|
||||
16:20-16:27: @25[2]: _34 = _1
|
||||
16:20-16:27: @25[3]: FakeRead(ForMatchedPlace, _34)"> if is_true<span class="annotation">⦉@25</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="17:21-17:33: @28[0]: _0 = const ()"><span class="annotation">@26,28⦊</span>break 'outer<span class="annotation">⦉@26,28</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> } else {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="19:21-19:27: @29[0]: _9 = move (_36.0: i32)
|
||||
21:14-21:14: @29.Goto: goto -> bb30"><span class="annotation">@29⦊</span>a -= 2;</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="19:21-19:27: @29[0]: _9 = move (_36.0: i32)
|
||||
16:20-16:27: @25[3]: FakeRead(ForMatchedPlace, _34)"> if is_true<span class="annotation">⦉@22,24,25</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="17:21-17:33: @28[0]: _0 = const ()"><span class="annotation">@26,28⦊</span>break 'outer<span class="annotation">⦉@26,28</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> } else </span><span><span class="code even" style="--layer: 1" title="19:21-19:27: @27[0]: _36 = CheckedSub(_9, const 2_i32)
|
||||
19:21-19:27: @29[0]: _9 = move (_36.0: i32)
|
||||
18:24-20:18: @29[1]: _24 = const ()
|
||||
21:14-21:14: @29.Goto: goto -> bb30"><span class="annotation">@27,29⦊</span>{</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="19:21-19:27: @27[0]: _36 = CheckedSub(_9, const 2_i32)
|
||||
19:21-19:27: @29[0]: _9 = move (_36.0: i32)
|
||||
18:24-20:18: @29[1]: _24 = const ()
|
||||
21:14-21:14: @29.Goto: goto -> bb30"> a -= 2;</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="19:21-19:27: @27[0]: _36 = CheckedSub(_9, const 2_i32)
|
||||
19:21-19:27: @29[0]: _9 = move (_36.0: i32)
|
||||
18:24-20:18: @29[1]: _24 = const ()
|
||||
21:14-21:14: @29.Goto: goto -> bb30"> }</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="19:21-19:27: @29[0]: _9 = move (_36.0: i32)
|
||||
21:14-21:14: @29.Goto: goto -> bb30"> }<span class="annotation">⦉@29</span></span></span><span><span class="code even" style="--layer: 1" title="21:14-21:14: @23.Goto: goto -> bb30"><span class="annotation">@23⦊</span>‸<span class="annotation">⦉@23</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span><span><span class="code odd" style="--layer: 1" title="22:10-22:10: @30.Goto: goto -> bb10"><span class="annotation">@30⦊</span>‸<span class="annotation">⦉@30</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="23:9-23:23: @32[0]: _5 = move (_37.0: i32)"><span class="annotation">@32⦊</span>countdown -= 1<span class="annotation">⦉@32</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span><span><span class="code odd" style="--layer: 1" title="24:6-24:6: @7.Goto: goto -> bb33"><span class="annotation">@7⦊</span>‸<span class="annotation">⦉@7</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code even" style="--layer: 1" title="25:2-25:2: @33.Return: return"><span class="annotation">@33⦊</span>‸<span class="annotation">⦉@33</span></span></span></span></div>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="19:21-19:27: @27[0]: _36 = CheckedSub(_9, const 2_i32)
|
||||
19:21-19:27: @29[0]: _9 = move (_36.0: i32)
|
||||
18:24-20:18: @29[1]: _24 = const ()
|
||||
21:14-21:14: @29.Goto: goto -> bb30"> }<span class="annotation">⦉@27,29</span></span></span><span><span class="code odd" style="--layer: 1" title="21:14-21:14: @23.Goto: goto -> bb30"><span class="annotation">@23⦊</span>‸<span class="annotation">⦉@23</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span><span><span class="code even" style="--layer: 1" title="22:10-22:10: @30.Goto: goto -> bb10"><span class="annotation">@30⦊</span>‸<span class="annotation">⦉@30</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="23:9-23:23: @31[4]: _37 = CheckedSub(_5, const 1_i32)
|
||||
23:9-23:23: @32[0]: _5 = move (_37.0: i32)"><span class="annotation">@31,32⦊</span>countdown -= 1<span class="annotation">⦉@31,32</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span><span><span class="code even" style="--layer: 1" title="24:6-24:6: @7.Goto: goto -> bb33"><span class="annotation">@7⦊</span>‸<span class="annotation">⦉@7</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="25:2-25:2: @33.Return: return"><span class="annotation">@33⦊</span>‸<span class="annotation">⦉@33</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,259 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
Preview this file as rendered HTML from the github source at:
|
||||
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.overflow/overflow.main.-------.InstrumentCoverage.0.html
|
||||
|
||||
For revisions in Pull Requests (PR):
|
||||
* Replace "rust-lang" with the github PR author
|
||||
* Replace "master" with the PR branch name
|
||||
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>overflow.main - Coverage Spans</title>
|
||||
<style>
|
||||
.line {
|
||||
counter-increment: line;
|
||||
}
|
||||
.line:before {
|
||||
content: counter(line) ": ";
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
font-style: italic;
|
||||
width: 3.8em;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
filter: opacity(50%);
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.code {
|
||||
color: #dddddd;
|
||||
background-color: #222222;
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
line-height: 1.4em;
|
||||
border-bottom: 2px solid #222222;
|
||||
white-space: pre;
|
||||
display: inline-block;
|
||||
}
|
||||
.odd {
|
||||
background-color: #55bbff;
|
||||
color: #223311;
|
||||
}
|
||||
.even {
|
||||
background-color: #ee7756;
|
||||
color: #551133;
|
||||
}
|
||||
.code {
|
||||
--index: calc(var(--layer) - 1);
|
||||
padding-top: calc(var(--index) * 0.15em);
|
||||
filter:
|
||||
hue-rotate(calc(var(--index) * 25deg))
|
||||
saturate(calc(100% - (var(--index) * 2%)))
|
||||
brightness(calc(100% - (var(--index) * 1.5%)));
|
||||
}
|
||||
.annotation {
|
||||
color: #4444ff;
|
||||
font-family: monospace;
|
||||
font-style: italic;
|
||||
display: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
body:active .annotation {
|
||||
/* requires holding mouse down anywhere on the page */
|
||||
display: inline-block;
|
||||
}
|
||||
span:hover .annotation {
|
||||
/* requires hover over a span ONLY on its first line */
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 14"><span class="line"><span class="code" style="--layer: 0">fn main() -> Result<(),u8> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> let </span><span><span class="code even" style="--layer: 1" title="16:25-16:27: @0[1]: _1 = const 10_i32
|
||||
16:9-16:22: @0[2]: FakeRead(ForLet, _1)"><span class="annotation">@0⦊</span>mut countdown = 10<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> while </span><span><span class="code odd" style="--layer: 1" title="17:11-17:20: @2[2]: _5 = _1
|
||||
17:11-17:24: @2[3]: _4 = Gt(move _5, const 0_i32)
|
||||
17:11-17:24: @2[5]: FakeRead(ForMatchedPlace, _4)"><span class="annotation">@1,2⦊</span>countdown > 0<span class="annotation">⦉@1,2</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> if </span><span><span class="code even" style="--layer: 1" title="18:12-18:21: @5[3]: _8 = _1
|
||||
18:12-18:26: @5[4]: _7 = Eq(move _8, const 1_i32)
|
||||
18:12-18:26: @5[6]: FakeRead(ForMatchedPlace, _7)"><span class="annotation">@3,5⦊</span>countdown == 1<span class="annotation">⦉@3,5</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="19:26-19:44: @8.Call: _9 = might_overflow(const 10_u32) -> [return: bb9, unwind: bb23]
|
||||
19:17-19:23: @9[0]: FakeRead(ForLet, _9)
|
||||
20:22-20:34: @9[7]: _51 = const main::promoted[1]
|
||||
20:22-20:34: @9[8]: _15 = &(*_51)
|
||||
20:22-20:34: @9[9]: _14 = &(*_15)
|
||||
20:22-20:34: @9[10]: _13 = move _14 as &[&str] (Pointer(Unsize))
|
||||
20:36-20:42: @9[18]: _22 = &_9
|
||||
20:13-20:44: @9[19]: _21 = (move _22,)
|
||||
20:13-20:44: @9[21]: FakeRead(ForMatchedPlace, _21)
|
||||
20:13-20:44: @9[23]: _23 = (_21.0: &u32)
|
||||
20:13-20:44: @9[26]: _25 = &(*_23)
|
||||
20:13-20:44: @9[28]: _26 = <u32 as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r u32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer))
|
||||
20:13-20:44: @9.Call: _24 = ArgumentV1::new::<u32>(move _25, move _26) -> [return: bb10, unwind: bb23]
|
||||
20:13-20:44: @10[2]: _20 = [move _24]
|
||||
20:13-20:44: @10[5]: _19 = &_20
|
||||
20:13-20:44: @10[6]: _18 = &(*_19)
|
||||
20:13-20:44: @10[7]: _17 = move _18 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
20:13-20:44: @10.Call: _12 = Arguments::new_v1(move _13, move _17) -> [return: bb11, unwind: bb23]
|
||||
20:13-20:44: @11.Call: _11 = _print(move _12) -> [return: bb12, unwind: bb23]
|
||||
20:13-20:44: @12[6]: _10 = const ()
|
||||
18:27-21:10: @12[8]: _6 = const ()"><span class="annotation">@6,8,9,10,11,12⦊</span>{</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="19:26-19:44: @8.Call: _9 = might_overflow(const 10_u32) -> [return: bb9, unwind: bb23]
|
||||
19:17-19:23: @9[0]: FakeRead(ForLet, _9)
|
||||
20:22-20:34: @9[7]: _51 = const main::promoted[1]
|
||||
20:22-20:34: @9[8]: _15 = &(*_51)
|
||||
20:22-20:34: @9[9]: _14 = &(*_15)
|
||||
20:22-20:34: @9[10]: _13 = move _14 as &[&str] (Pointer(Unsize))
|
||||
20:36-20:42: @9[18]: _22 = &_9
|
||||
20:13-20:44: @9[19]: _21 = (move _22,)
|
||||
20:13-20:44: @9[21]: FakeRead(ForMatchedPlace, _21)
|
||||
20:13-20:44: @9[23]: _23 = (_21.0: &u32)
|
||||
20:13-20:44: @9[26]: _25 = &(*_23)
|
||||
20:13-20:44: @9[28]: _26 = <u32 as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r u32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer))
|
||||
20:13-20:44: @9.Call: _24 = ArgumentV1::new::<u32>(move _25, move _26) -> [return: bb10, unwind: bb23]
|
||||
20:13-20:44: @10[2]: _20 = [move _24]
|
||||
20:13-20:44: @10[5]: _19 = &_20
|
||||
20:13-20:44: @10[6]: _18 = &(*_19)
|
||||
20:13-20:44: @10[7]: _17 = move _18 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
20:13-20:44: @10.Call: _12 = Arguments::new_v1(move _13, move _17) -> [return: bb11, unwind: bb23]
|
||||
20:13-20:44: @11.Call: _11 = _print(move _12) -> [return: bb12, unwind: bb23]
|
||||
20:13-20:44: @12[6]: _10 = const ()
|
||||
18:27-21:10: @12[8]: _6 = const ()"> let result = might_overflow(10);</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="19:26-19:44: @8.Call: _9 = might_overflow(const 10_u32) -> [return: bb9, unwind: bb23]
|
||||
19:17-19:23: @9[0]: FakeRead(ForLet, _9)
|
||||
20:22-20:34: @9[7]: _51 = const main::promoted[1]
|
||||
20:22-20:34: @9[8]: _15 = &(*_51)
|
||||
20:22-20:34: @9[9]: _14 = &(*_15)
|
||||
20:22-20:34: @9[10]: _13 = move _14 as &[&str] (Pointer(Unsize))
|
||||
20:36-20:42: @9[18]: _22 = &_9
|
||||
20:13-20:44: @9[19]: _21 = (move _22,)
|
||||
20:13-20:44: @9[21]: FakeRead(ForMatchedPlace, _21)
|
||||
20:13-20:44: @9[23]: _23 = (_21.0: &u32)
|
||||
20:13-20:44: @9[26]: _25 = &(*_23)
|
||||
20:13-20:44: @9[28]: _26 = <u32 as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r u32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer))
|
||||
20:13-20:44: @9.Call: _24 = ArgumentV1::new::<u32>(move _25, move _26) -> [return: bb10, unwind: bb23]
|
||||
20:13-20:44: @10[2]: _20 = [move _24]
|
||||
20:13-20:44: @10[5]: _19 = &_20
|
||||
20:13-20:44: @10[6]: _18 = &(*_19)
|
||||
20:13-20:44: @10[7]: _17 = move _18 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
20:13-20:44: @10.Call: _12 = Arguments::new_v1(move _13, move _17) -> [return: bb11, unwind: bb23]
|
||||
20:13-20:44: @11.Call: _11 = _print(move _12) -> [return: bb12, unwind: bb23]
|
||||
20:13-20:44: @12[6]: _10 = const ()
|
||||
18:27-21:10: @12[8]: _6 = const ()"> println!("Result: {}", result);</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="19:26-19:44: @8.Call: _9 = might_overflow(const 10_u32) -> [return: bb9, unwind: bb23]
|
||||
19:17-19:23: @9[0]: FakeRead(ForLet, _9)
|
||||
20:22-20:34: @9[7]: _51 = const main::promoted[1]
|
||||
20:22-20:34: @9[8]: _15 = &(*_51)
|
||||
20:22-20:34: @9[9]: _14 = &(*_15)
|
||||
20:22-20:34: @9[10]: _13 = move _14 as &[&str] (Pointer(Unsize))
|
||||
20:36-20:42: @9[18]: _22 = &_9
|
||||
20:13-20:44: @9[19]: _21 = (move _22,)
|
||||
20:13-20:44: @9[21]: FakeRead(ForMatchedPlace, _21)
|
||||
20:13-20:44: @9[23]: _23 = (_21.0: &u32)
|
||||
20:13-20:44: @9[26]: _25 = &(*_23)
|
||||
20:13-20:44: @9[28]: _26 = <u32 as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r u32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer))
|
||||
20:13-20:44: @9.Call: _24 = ArgumentV1::new::<u32>(move _25, move _26) -> [return: bb10, unwind: bb23]
|
||||
20:13-20:44: @10[2]: _20 = [move _24]
|
||||
20:13-20:44: @10[5]: _19 = &_20
|
||||
20:13-20:44: @10[6]: _18 = &(*_19)
|
||||
20:13-20:44: @10[7]: _17 = move _18 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
20:13-20:44: @10.Call: _12 = Arguments::new_v1(move _13, move _17) -> [return: bb11, unwind: bb23]
|
||||
20:13-20:44: @11.Call: _11 = _print(move _12) -> [return: bb12, unwind: bb23]
|
||||
20:13-20:44: @12[6]: _10 = const ()
|
||||
18:27-21:10: @12[8]: _6 = const ()"> }<span class="annotation">⦉@6,8,9,10,11,12</span></span></span><span class="code" style="--layer: 0"> else if </span><span><span class="code even" style="--layer: 1" title="21:19-21:28: @7[2]: _28 = _1
|
||||
21:19-21:32: @7[3]: _27 = Lt(move _28, const 5_i32)
|
||||
21:19-21:32: @7[5]: FakeRead(ForMatchedPlace, _27)"><span class="annotation">@7⦊</span>countdown < 5<span class="annotation">⦉@7</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="22:26-22:43: @15.Call: _29 = might_overflow(const 1_u32) -> [return: bb16, unwind: bb23]
|
||||
22:17-22:23: @16[0]: FakeRead(ForLet, _29)
|
||||
23:22-23:34: @16[7]: _50 = const main::promoted[0]
|
||||
23:22-23:34: @16[8]: _35 = &(*_50)
|
||||
23:22-23:34: @16[9]: _34 = &(*_35)
|
||||
23:22-23:34: @16[10]: _33 = move _34 as &[&str] (Pointer(Unsize))
|
||||
23:36-23:42: @16[18]: _42 = &_29
|
||||
23:13-23:44: @16[19]: _41 = (move _42,)
|
||||
23:13-23:44: @16[21]: FakeRead(ForMatchedPlace, _41)
|
||||
23:13-23:44: @16[23]: _43 = (_41.0: &u32)
|
||||
23:13-23:44: @16[26]: _45 = &(*_43)
|
||||
23:13-23:44: @16[28]: _46 = <u32 as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r u32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer))
|
||||
23:13-23:44: @16.Call: _44 = ArgumentV1::new::<u32>(move _45, move _46) -> [return: bb17, unwind: bb23]
|
||||
23:13-23:44: @17[2]: _40 = [move _44]
|
||||
23:13-23:44: @17[5]: _39 = &_40
|
||||
23:13-23:44: @17[6]: _38 = &(*_39)
|
||||
23:13-23:44: @17[7]: _37 = move _38 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
23:13-23:44: @17.Call: _32 = Arguments::new_v1(move _33, move _37) -> [return: bb18, unwind: bb23]
|
||||
23:13-23:44: @18.Call: _31 = _print(move _32) -> [return: bb19, unwind: bb23]
|
||||
23:13-23:44: @19[6]: _30 = const ()
|
||||
21:33-24:10: @19[8]: _6 = const ()"><span class="annotation">@13,15,16,17,18,19⦊</span>{</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="22:26-22:43: @15.Call: _29 = might_overflow(const 1_u32) -> [return: bb16, unwind: bb23]
|
||||
22:17-22:23: @16[0]: FakeRead(ForLet, _29)
|
||||
23:22-23:34: @16[7]: _50 = const main::promoted[0]
|
||||
23:22-23:34: @16[8]: _35 = &(*_50)
|
||||
23:22-23:34: @16[9]: _34 = &(*_35)
|
||||
23:22-23:34: @16[10]: _33 = move _34 as &[&str] (Pointer(Unsize))
|
||||
23:36-23:42: @16[18]: _42 = &_29
|
||||
23:13-23:44: @16[19]: _41 = (move _42,)
|
||||
23:13-23:44: @16[21]: FakeRead(ForMatchedPlace, _41)
|
||||
23:13-23:44: @16[23]: _43 = (_41.0: &u32)
|
||||
23:13-23:44: @16[26]: _45 = &(*_43)
|
||||
23:13-23:44: @16[28]: _46 = <u32 as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r u32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer))
|
||||
23:13-23:44: @16.Call: _44 = ArgumentV1::new::<u32>(move _45, move _46) -> [return: bb17, unwind: bb23]
|
||||
23:13-23:44: @17[2]: _40 = [move _44]
|
||||
23:13-23:44: @17[5]: _39 = &_40
|
||||
23:13-23:44: @17[6]: _38 = &(*_39)
|
||||
23:13-23:44: @17[7]: _37 = move _38 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
23:13-23:44: @17.Call: _32 = Arguments::new_v1(move _33, move _37) -> [return: bb18, unwind: bb23]
|
||||
23:13-23:44: @18.Call: _31 = _print(move _32) -> [return: bb19, unwind: bb23]
|
||||
23:13-23:44: @19[6]: _30 = const ()
|
||||
21:33-24:10: @19[8]: _6 = const ()"> let result = might_overflow(1);</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="22:26-22:43: @15.Call: _29 = might_overflow(const 1_u32) -> [return: bb16, unwind: bb23]
|
||||
22:17-22:23: @16[0]: FakeRead(ForLet, _29)
|
||||
23:22-23:34: @16[7]: _50 = const main::promoted[0]
|
||||
23:22-23:34: @16[8]: _35 = &(*_50)
|
||||
23:22-23:34: @16[9]: _34 = &(*_35)
|
||||
23:22-23:34: @16[10]: _33 = move _34 as &[&str] (Pointer(Unsize))
|
||||
23:36-23:42: @16[18]: _42 = &_29
|
||||
23:13-23:44: @16[19]: _41 = (move _42,)
|
||||
23:13-23:44: @16[21]: FakeRead(ForMatchedPlace, _41)
|
||||
23:13-23:44: @16[23]: _43 = (_41.0: &u32)
|
||||
23:13-23:44: @16[26]: _45 = &(*_43)
|
||||
23:13-23:44: @16[28]: _46 = <u32 as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r u32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer))
|
||||
23:13-23:44: @16.Call: _44 = ArgumentV1::new::<u32>(move _45, move _46) -> [return: bb17, unwind: bb23]
|
||||
23:13-23:44: @17[2]: _40 = [move _44]
|
||||
23:13-23:44: @17[5]: _39 = &_40
|
||||
23:13-23:44: @17[6]: _38 = &(*_39)
|
||||
23:13-23:44: @17[7]: _37 = move _38 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
23:13-23:44: @17.Call: _32 = Arguments::new_v1(move _33, move _37) -> [return: bb18, unwind: bb23]
|
||||
23:13-23:44: @18.Call: _31 = _print(move _32) -> [return: bb19, unwind: bb23]
|
||||
23:13-23:44: @19[6]: _30 = const ()
|
||||
21:33-24:10: @19[8]: _6 = const ()"> println!("Result: {}", result);</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="22:26-22:43: @15.Call: _29 = might_overflow(const 1_u32) -> [return: bb16, unwind: bb23]
|
||||
22:17-22:23: @16[0]: FakeRead(ForLet, _29)
|
||||
23:22-23:34: @16[7]: _50 = const main::promoted[0]
|
||||
23:22-23:34: @16[8]: _35 = &(*_50)
|
||||
23:22-23:34: @16[9]: _34 = &(*_35)
|
||||
23:22-23:34: @16[10]: _33 = move _34 as &[&str] (Pointer(Unsize))
|
||||
23:36-23:42: @16[18]: _42 = &_29
|
||||
23:13-23:44: @16[19]: _41 = (move _42,)
|
||||
23:13-23:44: @16[21]: FakeRead(ForMatchedPlace, _41)
|
||||
23:13-23:44: @16[23]: _43 = (_41.0: &u32)
|
||||
23:13-23:44: @16[26]: _45 = &(*_43)
|
||||
23:13-23:44: @16[28]: _46 = <u32 as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r u32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer))
|
||||
23:13-23:44: @16.Call: _44 = ArgumentV1::new::<u32>(move _45, move _46) -> [return: bb17, unwind: bb23]
|
||||
23:13-23:44: @17[2]: _40 = [move _44]
|
||||
23:13-23:44: @17[5]: _39 = &_40
|
||||
23:13-23:44: @17[6]: _38 = &(*_39)
|
||||
23:13-23:44: @17[7]: _37 = move _38 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
23:13-23:44: @17.Call: _32 = Arguments::new_v1(move _33, move _37) -> [return: bb18, unwind: bb23]
|
||||
23:13-23:44: @18.Call: _31 = _print(move _32) -> [return: bb19, unwind: bb23]
|
||||
23:13-23:44: @19[6]: _30 = const ()
|
||||
21:33-24:10: @19[8]: _6 = const ()"> }<span class="annotation">⦉@13,15,16,17,18,19</span></span></span><span><span class="code even" style="--layer: 1" title="24:10-24:10: @14.Goto: goto -> bb20"><span class="annotation">@14⦊</span>‸<span class="annotation">⦉@14</span></span></span><span><span class="code odd" style="--layer: 1" title="24:10-24:10: @20.Goto: goto -> bb21"><span class="annotation">@20⦊</span>‸<span class="annotation">⦉@20</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="25:9-25:23: @21[2]: _47 = CheckedSub(_1, const 1_i32)
|
||||
25:9-25:23: @22[0]: _1 = move (_47.0: i32)"><span class="annotation">@21,22⦊</span>countdown -= 1<span class="annotation">⦉@21,22</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="27:8-27:10: @4[4]: _49 = ()
|
||||
27:5-27:11: @4[5]: _0 = std::result::Result::<(), u8>::Ok(move _49)
|
||||
28:2-28:2: @4.Return: return"><span class="annotation">@4⦊</span>Ok(())</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="27:8-27:10: @4[4]: _49 = ()
|
||||
27:5-27:11: @4[5]: _0 = std::result::Result::<(), u8>::Ok(move _49)
|
||||
28:2-28:2: @4.Return: return">}<span class="annotation">⦉@4</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,397 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
Preview this file as rendered HTML from the github source at:
|
||||
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.overflow/overflow.might_overflow.-------.InstrumentCoverage.0.html
|
||||
|
||||
For revisions in Pull Requests (PR):
|
||||
* Replace "rust-lang" with the github PR author
|
||||
* Replace "master" with the PR branch name
|
||||
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>overflow.might_overflow - Coverage Spans</title>
|
||||
<style>
|
||||
.line {
|
||||
counter-increment: line;
|
||||
}
|
||||
.line:before {
|
||||
content: counter(line) ": ";
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
font-style: italic;
|
||||
width: 3.8em;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
filter: opacity(50%);
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.code {
|
||||
color: #dddddd;
|
||||
background-color: #222222;
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
line-height: 1.4em;
|
||||
border-bottom: 2px solid #222222;
|
||||
white-space: pre;
|
||||
display: inline-block;
|
||||
}
|
||||
.odd {
|
||||
background-color: #55bbff;
|
||||
color: #223311;
|
||||
}
|
||||
.even {
|
||||
background-color: #ee7756;
|
||||
color: #551133;
|
||||
}
|
||||
.code {
|
||||
--index: calc(var(--layer) - 1);
|
||||
padding-top: calc(var(--index) * 0.15em);
|
||||
filter:
|
||||
hue-rotate(calc(var(--index) * 25deg))
|
||||
saturate(calc(100% - (var(--index) * 2%)))
|
||||
brightness(calc(100% - (var(--index) * 1.5%)));
|
||||
}
|
||||
.annotation {
|
||||
color: #4444ff;
|
||||
font-family: monospace;
|
||||
font-style: italic;
|
||||
display: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
body:active .annotation {
|
||||
/* requires holding mouse down anywhere on the page */
|
||||
display: inline-block;
|
||||
}
|
||||
span:hover .annotation {
|
||||
/* requires hover over a span ONLY on its first line */
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 3"><span class="line"><span class="code" style="--layer: 0">fn might_overflow(to_add: u32) -> u32 {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> if </span><span><span class="code even" style="--layer: 1" title="5:8-5:14: @0[3]: _4 = _1
|
||||
5:8-5:18: @0[4]: _3 = Gt(move _4, const 5_u32)
|
||||
5:8-5:18: @0[6]: FakeRead(ForMatchedPlace, _3)"><span class="annotation">@0⦊</span>to_add > 5<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="6:18-6:47: @3[6]: _61 = const might_overflow::promoted[4]
|
||||
6:18-6:47: @3[7]: _10 = &(*_61)
|
||||
6:18-6:47: @3[8]: _9 = &(*_10)
|
||||
6:18-6:47: @3[9]: _8 = move _9 as &[&str] (Pointer(Unsize))
|
||||
6:9-6:49: @3[15]: _16 = ()
|
||||
6:9-6:49: @3[16]: FakeRead(ForMatchedPlace, _16)
|
||||
6:9-6:49: @3[17]: _60 = const might_overflow::promoted[3]
|
||||
6:9-6:49: @3[18]: _14 = &(*_60)
|
||||
6:9-6:49: @3[19]: _13 = &(*_14)
|
||||
6:9-6:49: @3[20]: _12 = move _13 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
6:9-6:49: @3.Call: _7 = Arguments::new_v1(move _8, move _12) -> [return: bb4, unwind: bb15]
|
||||
6:9-6:49: @4.Call: _6 = _print(move _7) -> [return: bb5, unwind: bb15]
|
||||
6:9-6:49: @5[5]: _5 = const ()
|
||||
5:19-7:6: @5[7]: _2 = const ()
|
||||
7:6-7:6: @5.Goto: goto -> bb6"><span class="annotation">@1,3,4,5⦊</span>{</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="6:18-6:47: @3[6]: _61 = const might_overflow::promoted[4]
|
||||
6:18-6:47: @3[7]: _10 = &(*_61)
|
||||
6:18-6:47: @3[8]: _9 = &(*_10)
|
||||
6:18-6:47: @3[9]: _8 = move _9 as &[&str] (Pointer(Unsize))
|
||||
6:9-6:49: @3[15]: _16 = ()
|
||||
6:9-6:49: @3[16]: FakeRead(ForMatchedPlace, _16)
|
||||
6:9-6:49: @3[17]: _60 = const might_overflow::promoted[3]
|
||||
6:9-6:49: @3[18]: _14 = &(*_60)
|
||||
6:9-6:49: @3[19]: _13 = &(*_14)
|
||||
6:9-6:49: @3[20]: _12 = move _13 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
6:9-6:49: @3.Call: _7 = Arguments::new_v1(move _8, move _12) -> [return: bb4, unwind: bb15]
|
||||
6:9-6:49: @4.Call: _6 = _print(move _7) -> [return: bb5, unwind: bb15]
|
||||
6:9-6:49: @5[5]: _5 = const ()
|
||||
5:19-7:6: @5[7]: _2 = const ()
|
||||
7:6-7:6: @5.Goto: goto -> bb6"> println!("this will probably overflow");</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="6:18-6:47: @3[6]: _61 = const might_overflow::promoted[4]
|
||||
6:18-6:47: @3[7]: _10 = &(*_61)
|
||||
6:18-6:47: @3[8]: _9 = &(*_10)
|
||||
6:18-6:47: @3[9]: _8 = move _9 as &[&str] (Pointer(Unsize))
|
||||
6:9-6:49: @3[15]: _16 = ()
|
||||
6:9-6:49: @3[16]: FakeRead(ForMatchedPlace, _16)
|
||||
6:9-6:49: @3[17]: _60 = const might_overflow::promoted[3]
|
||||
6:9-6:49: @3[18]: _14 = &(*_60)
|
||||
6:9-6:49: @3[19]: _13 = &(*_14)
|
||||
6:9-6:49: @3[20]: _12 = move _13 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
6:9-6:49: @3.Call: _7 = Arguments::new_v1(move _8, move _12) -> [return: bb4, unwind: bb15]
|
||||
6:9-6:49: @4.Call: _6 = _print(move _7) -> [return: bb5, unwind: bb15]
|
||||
6:9-6:49: @5[5]: _5 = const ()
|
||||
5:19-7:6: @5[7]: _2 = const ()
|
||||
7:6-7:6: @5.Goto: goto -> bb6"> }<span class="annotation">⦉@1,3,4,5</span></span></span><span><span class="code even" style="--layer: 1" title="7:6-7:6: @2.Goto: goto -> bb6"><span class="annotation">@2⦊</span>‸<span class="annotation">⦉@2</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> let </span><span><span class="code odd" style="--layer: 1" title="8:18-8:30: @6[3]: _18 = CheckedSub(const core::num::<impl u32>::MAX, const 5_u32)
|
||||
8:18-8:30: @7[0]: _17 = move (_18.0: u32)
|
||||
8:9-8:15: @7[1]: FakeRead(ForLet, _17)
|
||||
9:14-9:38: @7[8]: _59 = const might_overflow::promoted[2]
|
||||
9:14-9:38: @7[9]: _24 = &(*_59)
|
||||
9:14-9:38: @7[10]: _23 = &(*_24)
|
||||
9:14-9:38: @7[11]: _22 = move _23 as &[&str] (Pointer(Unsize))
|
||||
9:40-9:46: @7[19]: _31 = &_17
|
||||
9:48-9:54: @7[21]: _32 = &_1
|
||||
9:5-9:56: @7[22]: _30 = (move _31, move _32)
|
||||
9:5-9:56: @7[25]: FakeRead(ForMatchedPlace, _30)
|
||||
9:5-9:56: @7[27]: _33 = (_30.0: &u32)
|
||||
9:5-9:56: @7[29]: _34 = (_30.1: &u32)
|
||||
9:5-9:56: @7[32]: _36 = &(*_33)
|
||||
9:5-9:56: @7[34]: _37 = <u32 as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r u32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer))
|
||||
9:5-9:56: @7.Call: _35 = ArgumentV1::new::<u32>(move _36, move _37) -> [return: bb8, unwind: bb15]
|
||||
9:5-9:56: @8[4]: _39 = &(*_34)
|
||||
9:5-9:56: @8[6]: _40 = <u32 as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r u32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer))
|
||||
9:5-9:56: @8.Call: _38 = ArgumentV1::new::<u32>(move _39, move _40) -> [return: bb9, unwind: bb15]
|
||||
9:5-9:56: @9[2]: _29 = [move _35, move _38]
|
||||
9:5-9:56: @9[7]: _28 = &_29
|
||||
9:5-9:56: @9[8]: _27 = &(*_28)
|
||||
9:5-9:56: @9[9]: _26 = move _27 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
9:5-9:56: @9.Call: _21 = Arguments::new_v1(move _22, move _26) -> [return: bb10, unwind: bb15]
|
||||
9:5-9:56: @10.Call: _20 = _print(move _21) -> [return: bb11, unwind: bb15]
|
||||
9:5-9:56: @11[6]: _19 = const ()
|
||||
10:18-10:24: @11[10]: _42 = _1
|
||||
10:27-10:33: @11[12]: _43 = _17
|
||||
10:18-10:33: @11[13]: _44 = CheckedAdd(_42, _43)
|
||||
10:18-10:33: @12[0]: _41 = move (_44.0: u32)
|
||||
10:9-10:15: @12[3]: FakeRead(ForLet, _41)
|
||||
11:14-11:47: @12[10]: _58 = const might_overflow::promoted[1]
|
||||
11:14-11:47: @12[11]: _50 = &(*_58)
|
||||
11:14-11:47: @12[12]: _49 = &(*_50)
|
||||
11:14-11:47: @12[13]: _48 = move _49 as &[&str] (Pointer(Unsize))
|
||||
11:5-11:49: @12[19]: _56 = ()
|
||||
11:5-11:49: @12[20]: FakeRead(ForMatchedPlace, _56)
|
||||
11:5-11:49: @12[21]: _57 = const might_overflow::promoted[0]
|
||||
11:5-11:49: @12[22]: _54 = &(*_57)
|
||||
11:5-11:49: @12[23]: _53 = &(*_54)
|
||||
11:5-11:49: @12[24]: _52 = move _53 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
11:5-11:49: @12.Call: _47 = Arguments::new_v1(move _48, move _52) -> [return: bb13, unwind: bb15]
|
||||
11:5-11:49: @13.Call: _46 = _print(move _47) -> [return: bb14, unwind: bb15]
|
||||
11:5-11:49: @14[5]: _45 = const ()
|
||||
12:5-12:11: @14[7]: _0 = _41
|
||||
13:2-13:2: @14.Return: return"><span class="annotation">@6,7,8,9,10,11,12,13,14⦊</span>add_to = u32::MAX - 5;</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="8:18-8:30: @6[3]: _18 = CheckedSub(const core::num::<impl u32>::MAX, const 5_u32)
|
||||
8:18-8:30: @7[0]: _17 = move (_18.0: u32)
|
||||
8:9-8:15: @7[1]: FakeRead(ForLet, _17)
|
||||
9:14-9:38: @7[8]: _59 = const might_overflow::promoted[2]
|
||||
9:14-9:38: @7[9]: _24 = &(*_59)
|
||||
9:14-9:38: @7[10]: _23 = &(*_24)
|
||||
9:14-9:38: @7[11]: _22 = move _23 as &[&str] (Pointer(Unsize))
|
||||
9:40-9:46: @7[19]: _31 = &_17
|
||||
9:48-9:54: @7[21]: _32 = &_1
|
||||
9:5-9:56: @7[22]: _30 = (move _31, move _32)
|
||||
9:5-9:56: @7[25]: FakeRead(ForMatchedPlace, _30)
|
||||
9:5-9:56: @7[27]: _33 = (_30.0: &u32)
|
||||
9:5-9:56: @7[29]: _34 = (_30.1: &u32)
|
||||
9:5-9:56: @7[32]: _36 = &(*_33)
|
||||
9:5-9:56: @7[34]: _37 = <u32 as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r u32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer))
|
||||
9:5-9:56: @7.Call: _35 = ArgumentV1::new::<u32>(move _36, move _37) -> [return: bb8, unwind: bb15]
|
||||
9:5-9:56: @8[4]: _39 = &(*_34)
|
||||
9:5-9:56: @8[6]: _40 = <u32 as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r u32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer))
|
||||
9:5-9:56: @8.Call: _38 = ArgumentV1::new::<u32>(move _39, move _40) -> [return: bb9, unwind: bb15]
|
||||
9:5-9:56: @9[2]: _29 = [move _35, move _38]
|
||||
9:5-9:56: @9[7]: _28 = &_29
|
||||
9:5-9:56: @9[8]: _27 = &(*_28)
|
||||
9:5-9:56: @9[9]: _26 = move _27 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
9:5-9:56: @9.Call: _21 = Arguments::new_v1(move _22, move _26) -> [return: bb10, unwind: bb15]
|
||||
9:5-9:56: @10.Call: _20 = _print(move _21) -> [return: bb11, unwind: bb15]
|
||||
9:5-9:56: @11[6]: _19 = const ()
|
||||
10:18-10:24: @11[10]: _42 = _1
|
||||
10:27-10:33: @11[12]: _43 = _17
|
||||
10:18-10:33: @11[13]: _44 = CheckedAdd(_42, _43)
|
||||
10:18-10:33: @12[0]: _41 = move (_44.0: u32)
|
||||
10:9-10:15: @12[3]: FakeRead(ForLet, _41)
|
||||
11:14-11:47: @12[10]: _58 = const might_overflow::promoted[1]
|
||||
11:14-11:47: @12[11]: _50 = &(*_58)
|
||||
11:14-11:47: @12[12]: _49 = &(*_50)
|
||||
11:14-11:47: @12[13]: _48 = move _49 as &[&str] (Pointer(Unsize))
|
||||
11:5-11:49: @12[19]: _56 = ()
|
||||
11:5-11:49: @12[20]: FakeRead(ForMatchedPlace, _56)
|
||||
11:5-11:49: @12[21]: _57 = const might_overflow::promoted[0]
|
||||
11:5-11:49: @12[22]: _54 = &(*_57)
|
||||
11:5-11:49: @12[23]: _53 = &(*_54)
|
||||
11:5-11:49: @12[24]: _52 = move _53 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
11:5-11:49: @12.Call: _47 = Arguments::new_v1(move _48, move _52) -> [return: bb13, unwind: bb15]
|
||||
11:5-11:49: @13.Call: _46 = _print(move _47) -> [return: bb14, unwind: bb15]
|
||||
11:5-11:49: @14[5]: _45 = const ()
|
||||
12:5-12:11: @14[7]: _0 = _41
|
||||
13:2-13:2: @14.Return: return"> println!("does {} + {} overflow?", add_to, to_add);</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="8:18-8:30: @6[3]: _18 = CheckedSub(const core::num::<impl u32>::MAX, const 5_u32)
|
||||
8:18-8:30: @7[0]: _17 = move (_18.0: u32)
|
||||
8:9-8:15: @7[1]: FakeRead(ForLet, _17)
|
||||
9:14-9:38: @7[8]: _59 = const might_overflow::promoted[2]
|
||||
9:14-9:38: @7[9]: _24 = &(*_59)
|
||||
9:14-9:38: @7[10]: _23 = &(*_24)
|
||||
9:14-9:38: @7[11]: _22 = move _23 as &[&str] (Pointer(Unsize))
|
||||
9:40-9:46: @7[19]: _31 = &_17
|
||||
9:48-9:54: @7[21]: _32 = &_1
|
||||
9:5-9:56: @7[22]: _30 = (move _31, move _32)
|
||||
9:5-9:56: @7[25]: FakeRead(ForMatchedPlace, _30)
|
||||
9:5-9:56: @7[27]: _33 = (_30.0: &u32)
|
||||
9:5-9:56: @7[29]: _34 = (_30.1: &u32)
|
||||
9:5-9:56: @7[32]: _36 = &(*_33)
|
||||
9:5-9:56: @7[34]: _37 = <u32 as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r u32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer))
|
||||
9:5-9:56: @7.Call: _35 = ArgumentV1::new::<u32>(move _36, move _37) -> [return: bb8, unwind: bb15]
|
||||
9:5-9:56: @8[4]: _39 = &(*_34)
|
||||
9:5-9:56: @8[6]: _40 = <u32 as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r u32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer))
|
||||
9:5-9:56: @8.Call: _38 = ArgumentV1::new::<u32>(move _39, move _40) -> [return: bb9, unwind: bb15]
|
||||
9:5-9:56: @9[2]: _29 = [move _35, move _38]
|
||||
9:5-9:56: @9[7]: _28 = &_29
|
||||
9:5-9:56: @9[8]: _27 = &(*_28)
|
||||
9:5-9:56: @9[9]: _26 = move _27 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
9:5-9:56: @9.Call: _21 = Arguments::new_v1(move _22, move _26) -> [return: bb10, unwind: bb15]
|
||||
9:5-9:56: @10.Call: _20 = _print(move _21) -> [return: bb11, unwind: bb15]
|
||||
9:5-9:56: @11[6]: _19 = const ()
|
||||
10:18-10:24: @11[10]: _42 = _1
|
||||
10:27-10:33: @11[12]: _43 = _17
|
||||
10:18-10:33: @11[13]: _44 = CheckedAdd(_42, _43)
|
||||
10:18-10:33: @12[0]: _41 = move (_44.0: u32)
|
||||
10:9-10:15: @12[3]: FakeRead(ForLet, _41)
|
||||
11:14-11:47: @12[10]: _58 = const might_overflow::promoted[1]
|
||||
11:14-11:47: @12[11]: _50 = &(*_58)
|
||||
11:14-11:47: @12[12]: _49 = &(*_50)
|
||||
11:14-11:47: @12[13]: _48 = move _49 as &[&str] (Pointer(Unsize))
|
||||
11:5-11:49: @12[19]: _56 = ()
|
||||
11:5-11:49: @12[20]: FakeRead(ForMatchedPlace, _56)
|
||||
11:5-11:49: @12[21]: _57 = const might_overflow::promoted[0]
|
||||
11:5-11:49: @12[22]: _54 = &(*_57)
|
||||
11:5-11:49: @12[23]: _53 = &(*_54)
|
||||
11:5-11:49: @12[24]: _52 = move _53 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
11:5-11:49: @12.Call: _47 = Arguments::new_v1(move _48, move _52) -> [return: bb13, unwind: bb15]
|
||||
11:5-11:49: @13.Call: _46 = _print(move _47) -> [return: bb14, unwind: bb15]
|
||||
11:5-11:49: @14[5]: _45 = const ()
|
||||
12:5-12:11: @14[7]: _0 = _41
|
||||
13:2-13:2: @14.Return: return"> let result = to_add + add_to;</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="8:18-8:30: @6[3]: _18 = CheckedSub(const core::num::<impl u32>::MAX, const 5_u32)
|
||||
8:18-8:30: @7[0]: _17 = move (_18.0: u32)
|
||||
8:9-8:15: @7[1]: FakeRead(ForLet, _17)
|
||||
9:14-9:38: @7[8]: _59 = const might_overflow::promoted[2]
|
||||
9:14-9:38: @7[9]: _24 = &(*_59)
|
||||
9:14-9:38: @7[10]: _23 = &(*_24)
|
||||
9:14-9:38: @7[11]: _22 = move _23 as &[&str] (Pointer(Unsize))
|
||||
9:40-9:46: @7[19]: _31 = &_17
|
||||
9:48-9:54: @7[21]: _32 = &_1
|
||||
9:5-9:56: @7[22]: _30 = (move _31, move _32)
|
||||
9:5-9:56: @7[25]: FakeRead(ForMatchedPlace, _30)
|
||||
9:5-9:56: @7[27]: _33 = (_30.0: &u32)
|
||||
9:5-9:56: @7[29]: _34 = (_30.1: &u32)
|
||||
9:5-9:56: @7[32]: _36 = &(*_33)
|
||||
9:5-9:56: @7[34]: _37 = <u32 as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r u32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer))
|
||||
9:5-9:56: @7.Call: _35 = ArgumentV1::new::<u32>(move _36, move _37) -> [return: bb8, unwind: bb15]
|
||||
9:5-9:56: @8[4]: _39 = &(*_34)
|
||||
9:5-9:56: @8[6]: _40 = <u32 as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r u32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer))
|
||||
9:5-9:56: @8.Call: _38 = ArgumentV1::new::<u32>(move _39, move _40) -> [return: bb9, unwind: bb15]
|
||||
9:5-9:56: @9[2]: _29 = [move _35, move _38]
|
||||
9:5-9:56: @9[7]: _28 = &_29
|
||||
9:5-9:56: @9[8]: _27 = &(*_28)
|
||||
9:5-9:56: @9[9]: _26 = move _27 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
9:5-9:56: @9.Call: _21 = Arguments::new_v1(move _22, move _26) -> [return: bb10, unwind: bb15]
|
||||
9:5-9:56: @10.Call: _20 = _print(move _21) -> [return: bb11, unwind: bb15]
|
||||
9:5-9:56: @11[6]: _19 = const ()
|
||||
10:18-10:24: @11[10]: _42 = _1
|
||||
10:27-10:33: @11[12]: _43 = _17
|
||||
10:18-10:33: @11[13]: _44 = CheckedAdd(_42, _43)
|
||||
10:18-10:33: @12[0]: _41 = move (_44.0: u32)
|
||||
10:9-10:15: @12[3]: FakeRead(ForLet, _41)
|
||||
11:14-11:47: @12[10]: _58 = const might_overflow::promoted[1]
|
||||
11:14-11:47: @12[11]: _50 = &(*_58)
|
||||
11:14-11:47: @12[12]: _49 = &(*_50)
|
||||
11:14-11:47: @12[13]: _48 = move _49 as &[&str] (Pointer(Unsize))
|
||||
11:5-11:49: @12[19]: _56 = ()
|
||||
11:5-11:49: @12[20]: FakeRead(ForMatchedPlace, _56)
|
||||
11:5-11:49: @12[21]: _57 = const might_overflow::promoted[0]
|
||||
11:5-11:49: @12[22]: _54 = &(*_57)
|
||||
11:5-11:49: @12[23]: _53 = &(*_54)
|
||||
11:5-11:49: @12[24]: _52 = move _53 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
11:5-11:49: @12.Call: _47 = Arguments::new_v1(move _48, move _52) -> [return: bb13, unwind: bb15]
|
||||
11:5-11:49: @13.Call: _46 = _print(move _47) -> [return: bb14, unwind: bb15]
|
||||
11:5-11:49: @14[5]: _45 = const ()
|
||||
12:5-12:11: @14[7]: _0 = _41
|
||||
13:2-13:2: @14.Return: return"> println!("continuing after overflow check");</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="8:18-8:30: @6[3]: _18 = CheckedSub(const core::num::<impl u32>::MAX, const 5_u32)
|
||||
8:18-8:30: @7[0]: _17 = move (_18.0: u32)
|
||||
8:9-8:15: @7[1]: FakeRead(ForLet, _17)
|
||||
9:14-9:38: @7[8]: _59 = const might_overflow::promoted[2]
|
||||
9:14-9:38: @7[9]: _24 = &(*_59)
|
||||
9:14-9:38: @7[10]: _23 = &(*_24)
|
||||
9:14-9:38: @7[11]: _22 = move _23 as &[&str] (Pointer(Unsize))
|
||||
9:40-9:46: @7[19]: _31 = &_17
|
||||
9:48-9:54: @7[21]: _32 = &_1
|
||||
9:5-9:56: @7[22]: _30 = (move _31, move _32)
|
||||
9:5-9:56: @7[25]: FakeRead(ForMatchedPlace, _30)
|
||||
9:5-9:56: @7[27]: _33 = (_30.0: &u32)
|
||||
9:5-9:56: @7[29]: _34 = (_30.1: &u32)
|
||||
9:5-9:56: @7[32]: _36 = &(*_33)
|
||||
9:5-9:56: @7[34]: _37 = <u32 as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r u32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer))
|
||||
9:5-9:56: @7.Call: _35 = ArgumentV1::new::<u32>(move _36, move _37) -> [return: bb8, unwind: bb15]
|
||||
9:5-9:56: @8[4]: _39 = &(*_34)
|
||||
9:5-9:56: @8[6]: _40 = <u32 as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r u32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer))
|
||||
9:5-9:56: @8.Call: _38 = ArgumentV1::new::<u32>(move _39, move _40) -> [return: bb9, unwind: bb15]
|
||||
9:5-9:56: @9[2]: _29 = [move _35, move _38]
|
||||
9:5-9:56: @9[7]: _28 = &_29
|
||||
9:5-9:56: @9[8]: _27 = &(*_28)
|
||||
9:5-9:56: @9[9]: _26 = move _27 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
9:5-9:56: @9.Call: _21 = Arguments::new_v1(move _22, move _26) -> [return: bb10, unwind: bb15]
|
||||
9:5-9:56: @10.Call: _20 = _print(move _21) -> [return: bb11, unwind: bb15]
|
||||
9:5-9:56: @11[6]: _19 = const ()
|
||||
10:18-10:24: @11[10]: _42 = _1
|
||||
10:27-10:33: @11[12]: _43 = _17
|
||||
10:18-10:33: @11[13]: _44 = CheckedAdd(_42, _43)
|
||||
10:18-10:33: @12[0]: _41 = move (_44.0: u32)
|
||||
10:9-10:15: @12[3]: FakeRead(ForLet, _41)
|
||||
11:14-11:47: @12[10]: _58 = const might_overflow::promoted[1]
|
||||
11:14-11:47: @12[11]: _50 = &(*_58)
|
||||
11:14-11:47: @12[12]: _49 = &(*_50)
|
||||
11:14-11:47: @12[13]: _48 = move _49 as &[&str] (Pointer(Unsize))
|
||||
11:5-11:49: @12[19]: _56 = ()
|
||||
11:5-11:49: @12[20]: FakeRead(ForMatchedPlace, _56)
|
||||
11:5-11:49: @12[21]: _57 = const might_overflow::promoted[0]
|
||||
11:5-11:49: @12[22]: _54 = &(*_57)
|
||||
11:5-11:49: @12[23]: _53 = &(*_54)
|
||||
11:5-11:49: @12[24]: _52 = move _53 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
11:5-11:49: @12.Call: _47 = Arguments::new_v1(move _48, move _52) -> [return: bb13, unwind: bb15]
|
||||
11:5-11:49: @13.Call: _46 = _print(move _47) -> [return: bb14, unwind: bb15]
|
||||
11:5-11:49: @14[5]: _45 = const ()
|
||||
12:5-12:11: @14[7]: _0 = _41
|
||||
13:2-13:2: @14.Return: return"> result</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="8:18-8:30: @6[3]: _18 = CheckedSub(const core::num::<impl u32>::MAX, const 5_u32)
|
||||
8:18-8:30: @7[0]: _17 = move (_18.0: u32)
|
||||
8:9-8:15: @7[1]: FakeRead(ForLet, _17)
|
||||
9:14-9:38: @7[8]: _59 = const might_overflow::promoted[2]
|
||||
9:14-9:38: @7[9]: _24 = &(*_59)
|
||||
9:14-9:38: @7[10]: _23 = &(*_24)
|
||||
9:14-9:38: @7[11]: _22 = move _23 as &[&str] (Pointer(Unsize))
|
||||
9:40-9:46: @7[19]: _31 = &_17
|
||||
9:48-9:54: @7[21]: _32 = &_1
|
||||
9:5-9:56: @7[22]: _30 = (move _31, move _32)
|
||||
9:5-9:56: @7[25]: FakeRead(ForMatchedPlace, _30)
|
||||
9:5-9:56: @7[27]: _33 = (_30.0: &u32)
|
||||
9:5-9:56: @7[29]: _34 = (_30.1: &u32)
|
||||
9:5-9:56: @7[32]: _36 = &(*_33)
|
||||
9:5-9:56: @7[34]: _37 = <u32 as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r u32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer))
|
||||
9:5-9:56: @7.Call: _35 = ArgumentV1::new::<u32>(move _36, move _37) -> [return: bb8, unwind: bb15]
|
||||
9:5-9:56: @8[4]: _39 = &(*_34)
|
||||
9:5-9:56: @8[6]: _40 = <u32 as std::fmt::Display>::fmt as for<'r, 's, 't0> fn(&'r u32, &'s mut std::fmt::Formatter<'t0>) -> std::result::Result<(), std::fmt::Error> (Pointer(ReifyFnPointer))
|
||||
9:5-9:56: @8.Call: _38 = ArgumentV1::new::<u32>(move _39, move _40) -> [return: bb9, unwind: bb15]
|
||||
9:5-9:56: @9[2]: _29 = [move _35, move _38]
|
||||
9:5-9:56: @9[7]: _28 = &_29
|
||||
9:5-9:56: @9[8]: _27 = &(*_28)
|
||||
9:5-9:56: @9[9]: _26 = move _27 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
9:5-9:56: @9.Call: _21 = Arguments::new_v1(move _22, move _26) -> [return: bb10, unwind: bb15]
|
||||
9:5-9:56: @10.Call: _20 = _print(move _21) -> [return: bb11, unwind: bb15]
|
||||
9:5-9:56: @11[6]: _19 = const ()
|
||||
10:18-10:24: @11[10]: _42 = _1
|
||||
10:27-10:33: @11[12]: _43 = _17
|
||||
10:18-10:33: @11[13]: _44 = CheckedAdd(_42, _43)
|
||||
10:18-10:33: @12[0]: _41 = move (_44.0: u32)
|
||||
10:9-10:15: @12[3]: FakeRead(ForLet, _41)
|
||||
11:14-11:47: @12[10]: _58 = const might_overflow::promoted[1]
|
||||
11:14-11:47: @12[11]: _50 = &(*_58)
|
||||
11:14-11:47: @12[12]: _49 = &(*_50)
|
||||
11:14-11:47: @12[13]: _48 = move _49 as &[&str] (Pointer(Unsize))
|
||||
11:5-11:49: @12[19]: _56 = ()
|
||||
11:5-11:49: @12[20]: FakeRead(ForMatchedPlace, _56)
|
||||
11:5-11:49: @12[21]: _57 = const might_overflow::promoted[0]
|
||||
11:5-11:49: @12[22]: _54 = &(*_57)
|
||||
11:5-11:49: @12[23]: _53 = &(*_54)
|
||||
11:5-11:49: @12[24]: _52 = move _53 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
11:5-11:49: @12.Call: _47 = Arguments::new_v1(move _48, move _52) -> [return: bb13, unwind: bb15]
|
||||
11:5-11:49: @13.Call: _46 = _print(move _47) -> [return: bb14, unwind: bb15]
|
||||
11:5-11:49: @14[5]: _45 = const ()
|
||||
12:5-12:11: @14[7]: _0 = _41
|
||||
13:2-13:2: @14.Return: return">}<span class="annotation">⦉@6,7,8,9,10,11,12,13,14</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,103 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
Preview this file as rendered HTML from the github source at:
|
||||
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.panic_unwind/panic_unwind.main.-------.InstrumentCoverage.0.html
|
||||
|
||||
For revisions in Pull Requests (PR):
|
||||
* Replace "rust-lang" with the github PR author
|
||||
* Replace "master" with the PR branch name
|
||||
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>panic_unwind.main - Coverage Spans</title>
|
||||
<style>
|
||||
.line {
|
||||
counter-increment: line;
|
||||
}
|
||||
.line:before {
|
||||
content: counter(line) ": ";
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
font-style: italic;
|
||||
width: 3.8em;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
filter: opacity(50%);
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.code {
|
||||
color: #dddddd;
|
||||
background-color: #222222;
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
line-height: 1.4em;
|
||||
border-bottom: 2px solid #222222;
|
||||
white-space: pre;
|
||||
display: inline-block;
|
||||
}
|
||||
.odd {
|
||||
background-color: #55bbff;
|
||||
color: #223311;
|
||||
}
|
||||
.even {
|
||||
background-color: #ee7756;
|
||||
color: #551133;
|
||||
}
|
||||
.code {
|
||||
--index: calc(var(--layer) - 1);
|
||||
padding-top: calc(var(--index) * 0.15em);
|
||||
filter:
|
||||
hue-rotate(calc(var(--index) * 25deg))
|
||||
saturate(calc(100% - (var(--index) * 2%)))
|
||||
brightness(calc(100% - (var(--index) * 1.5%)));
|
||||
}
|
||||
.annotation {
|
||||
color: #4444ff;
|
||||
font-family: monospace;
|
||||
font-style: italic;
|
||||
display: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
body:active .annotation {
|
||||
/* requires holding mouse down anywhere on the page */
|
||||
display: inline-block;
|
||||
}
|
||||
span:hover .annotation {
|
||||
/* requires hover over a span ONLY on its first line */
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 12"><span class="line"><span class="code" style="--layer: 0">fn main() -> Result<(),u8> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> let </span><span><span class="code even" style="--layer: 1" title="14:25-14:27: @0[1]: _1 = const 10_i32
|
||||
14:9-14:22: @0[2]: FakeRead(ForLet, _1)"><span class="annotation">@0⦊</span>mut countdown = 10<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> while </span><span><span class="code odd" style="--layer: 1" title="15:11-15:20: @2[2]: _5 = _1
|
||||
15:11-15:24: @2[3]: _4 = Gt(move _5, const 0_i32)
|
||||
15:11-15:24: @2[5]: FakeRead(ForMatchedPlace, _4)"><span class="annotation">@1,2⦊</span>countdown > 0<span class="annotation">⦉@1,2</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> if </span><span><span class="code even" style="--layer: 1" title="16:12-16:21: @5[3]: _8 = _1
|
||||
16:12-16:26: @5[4]: _7 = Eq(move _8, const 1_i32)
|
||||
16:12-16:26: @5[6]: FakeRead(ForMatchedPlace, _7)"><span class="annotation">@3,5⦊</span>countdown == 1<span class="annotation">⦉@3,5</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="17:13-17:30: @8.Call: _9 = might_panic(const true) -> [return: bb9, unwind: bb17]
|
||||
16:27-18:10: @9[1]: _6 = const ()"><span class="annotation">@6,8,9⦊</span>{</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="17:13-17:30: @8.Call: _9 = might_panic(const true) -> [return: bb9, unwind: bb17]
|
||||
16:27-18:10: @9[1]: _6 = const ()"> might_panic(true);</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="17:13-17:30: @8.Call: _9 = might_panic(const true) -> [return: bb9, unwind: bb17]
|
||||
16:27-18:10: @9[1]: _6 = const ()"> }<span class="annotation">⦉@6,8,9</span></span></span><span class="code" style="--layer: 0"> else if </span><span><span class="code even" style="--layer: 1" title="18:19-18:28: @7[2]: _11 = _1
|
||||
18:19-18:32: @7[3]: _10 = Lt(move _11, const 5_i32)
|
||||
18:19-18:32: @7[5]: FakeRead(ForMatchedPlace, _10)"><span class="annotation">@7⦊</span>countdown < 5<span class="annotation">⦉@7</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="19:13-19:31: @12.Call: _12 = might_panic(const false) -> [return: bb13, unwind: bb17]
|
||||
18:33-20:10: @13[1]: _6 = const ()"><span class="annotation">@10,12,13⦊</span>{</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="19:13-19:31: @12.Call: _12 = might_panic(const false) -> [return: bb13, unwind: bb17]
|
||||
18:33-20:10: @13[1]: _6 = const ()"> might_panic(false);</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="19:13-19:31: @12.Call: _12 = might_panic(const false) -> [return: bb13, unwind: bb17]
|
||||
18:33-20:10: @13[1]: _6 = const ()"> }<span class="annotation">⦉@10,12,13</span></span></span><span><span class="code even" style="--layer: 1" title="20:10-20:10: @11.Goto: goto -> bb14"><span class="annotation">@11⦊</span>‸<span class="annotation">⦉@11</span></span></span><span><span class="code odd" style="--layer: 1" title="20:10-20:10: @14.Goto: goto -> bb15"><span class="annotation">@14⦊</span>‸<span class="annotation">⦉@14</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="21:9-21:23: @15[2]: _13 = CheckedSub(_1, const 1_i32)
|
||||
21:9-21:23: @16[0]: _1 = move (_13.0: i32)"><span class="annotation">@15,16⦊</span>countdown -= 1<span class="annotation">⦉@15,16</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="23:8-23:10: @4[4]: _15 = ()
|
||||
23:5-23:11: @4[5]: _0 = std::result::Result::<(), u8>::Ok(move _15)
|
||||
24:2-24:2: @4.Return: return"><span class="annotation">@4⦊</span>Ok(())</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="23:8-23:10: @4[4]: _15 = ()
|
||||
23:5-23:11: @4[5]: _0 = std::result::Result::<(), u8>::Ok(move _15)
|
||||
24:2-24:2: @4.Return: return">}<span class="annotation">⦉@4</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,164 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
Preview this file as rendered HTML from the github source at:
|
||||
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.panic_unwind/panic_unwind.might_panic.-------.InstrumentCoverage.0.html
|
||||
|
||||
For revisions in Pull Requests (PR):
|
||||
* Replace "rust-lang" with the github PR author
|
||||
* Replace "master" with the PR branch name
|
||||
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>panic_unwind.might_panic - Coverage Spans</title>
|
||||
<style>
|
||||
.line {
|
||||
counter-increment: line;
|
||||
}
|
||||
.line:before {
|
||||
content: counter(line) ": ";
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
font-style: italic;
|
||||
width: 3.8em;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
filter: opacity(50%);
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.code {
|
||||
color: #dddddd;
|
||||
background-color: #222222;
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
line-height: 1.4em;
|
||||
border-bottom: 2px solid #222222;
|
||||
white-space: pre;
|
||||
display: inline-block;
|
||||
}
|
||||
.odd {
|
||||
background-color: #55bbff;
|
||||
color: #223311;
|
||||
}
|
||||
.even {
|
||||
background-color: #ee7756;
|
||||
color: #551133;
|
||||
}
|
||||
.code {
|
||||
--index: calc(var(--layer) - 1);
|
||||
padding-top: calc(var(--index) * 0.15em);
|
||||
filter:
|
||||
hue-rotate(calc(var(--index) * 25deg))
|
||||
saturate(calc(100% - (var(--index) * 2%)))
|
||||
brightness(calc(100% - (var(--index) * 1.5%)));
|
||||
}
|
||||
.annotation {
|
||||
color: #4444ff;
|
||||
font-family: monospace;
|
||||
font-style: italic;
|
||||
display: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
body:active .annotation {
|
||||
/* requires holding mouse down anywhere on the page */
|
||||
display: inline-block;
|
||||
}
|
||||
span:hover .annotation {
|
||||
/* requires hover over a span ONLY on its first line */
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 3"><span class="line"><span class="code" style="--layer: 0">fn might_panic(should_panic: bool) {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> if </span><span><span class="code even" style="--layer: 1" title="5:8-5:20: @0[1]: _2 = _1
|
||||
5:8-5:20: @0[2]: FakeRead(ForMatchedPlace, _2)"><span class="annotation">@0⦊</span>should_panic<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="6:18-6:32: @3[6]: _33 = const might_panic::promoted[3]
|
||||
6:18-6:32: @3[7]: _9 = &(*_33)
|
||||
6:18-6:32: @3[8]: _8 = &(*_9)
|
||||
6:18-6:32: @3[9]: _7 = move _8 as &[&str] (Pointer(Unsize))
|
||||
6:9-6:34: @3[15]: _15 = ()
|
||||
6:9-6:34: @3[16]: FakeRead(ForMatchedPlace, _15)
|
||||
6:9-6:34: @3[17]: _32 = const might_panic::promoted[2]
|
||||
6:9-6:34: @3[18]: _13 = &(*_32)
|
||||
6:9-6:34: @3[19]: _12 = &(*_13)
|
||||
6:9-6:34: @3[20]: _11 = move _12 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
6:9-6:34: @3.Call: _6 = Arguments::new_v1(move _7, move _11) -> [return: bb4, unwind: bb8]
|
||||
6:9-6:34: @4.Call: _5 = _print(move _6) -> [return: bb5, unwind: bb8]
|
||||
6:9-6:34: @5[5]: _4 = const ()
|
||||
7:9-7:26: @5.Call: begin_panic::<&str>(const "panics") -> bb8"><span class="annotation">@1,3,4,5⦊</span>println!("panicking...");</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="6:18-6:32: @3[6]: _33 = const might_panic::promoted[3]
|
||||
6:18-6:32: @3[7]: _9 = &(*_33)
|
||||
6:18-6:32: @3[8]: _8 = &(*_9)
|
||||
6:18-6:32: @3[9]: _7 = move _8 as &[&str] (Pointer(Unsize))
|
||||
6:9-6:34: @3[15]: _15 = ()
|
||||
6:9-6:34: @3[16]: FakeRead(ForMatchedPlace, _15)
|
||||
6:9-6:34: @3[17]: _32 = const might_panic::promoted[2]
|
||||
6:9-6:34: @3[18]: _13 = &(*_32)
|
||||
6:9-6:34: @3[19]: _12 = &(*_13)
|
||||
6:9-6:34: @3[20]: _11 = move _12 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
6:9-6:34: @3.Call: _6 = Arguments::new_v1(move _7, move _11) -> [return: bb4, unwind: bb8]
|
||||
6:9-6:34: @4.Call: _5 = _print(move _6) -> [return: bb5, unwind: bb8]
|
||||
6:9-6:34: @5[5]: _4 = const ()
|
||||
7:9-7:26: @5.Call: begin_panic::<&str>(const "panics") -> bb8"> panic!("panics");<span class="annotation">⦉@1,3,4,5</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> } else </span><span><span class="code even" style="--layer: 1" title="9:18-9:31: @2[6]: _31 = const might_panic::promoted[1]
|
||||
9:18-9:31: @2[7]: _23 = &(*_31)
|
||||
9:18-9:31: @2[8]: _22 = &(*_23)
|
||||
9:18-9:31: @2[9]: _21 = move _22 as &[&str] (Pointer(Unsize))
|
||||
9:9-9:33: @2[15]: _29 = ()
|
||||
9:9-9:33: @2[16]: FakeRead(ForMatchedPlace, _29)
|
||||
9:9-9:33: @2[17]: _30 = const might_panic::promoted[0]
|
||||
9:9-9:33: @2[18]: _27 = &(*_30)
|
||||
9:9-9:33: @2[19]: _26 = &(*_27)
|
||||
9:9-9:33: @2[20]: _25 = move _26 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
9:9-9:33: @2.Call: _20 = Arguments::new_v1(move _21, move _25) -> [return: bb6, unwind: bb8]
|
||||
9:9-9:33: @6.Call: _19 = _print(move _20) -> [return: bb7, unwind: bb8]
|
||||
9:9-9:33: @7[5]: _18 = const ()
|
||||
8:12-10:6: @7[7]: _0 = const ()
|
||||
11:2-11:2: @7.Return: return"><span class="annotation">@2,6,7⦊</span>{</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="9:18-9:31: @2[6]: _31 = const might_panic::promoted[1]
|
||||
9:18-9:31: @2[7]: _23 = &(*_31)
|
||||
9:18-9:31: @2[8]: _22 = &(*_23)
|
||||
9:18-9:31: @2[9]: _21 = move _22 as &[&str] (Pointer(Unsize))
|
||||
9:9-9:33: @2[15]: _29 = ()
|
||||
9:9-9:33: @2[16]: FakeRead(ForMatchedPlace, _29)
|
||||
9:9-9:33: @2[17]: _30 = const might_panic::promoted[0]
|
||||
9:9-9:33: @2[18]: _27 = &(*_30)
|
||||
9:9-9:33: @2[19]: _26 = &(*_27)
|
||||
9:9-9:33: @2[20]: _25 = move _26 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
9:9-9:33: @2.Call: _20 = Arguments::new_v1(move _21, move _25) -> [return: bb6, unwind: bb8]
|
||||
9:9-9:33: @6.Call: _19 = _print(move _20) -> [return: bb7, unwind: bb8]
|
||||
9:9-9:33: @7[5]: _18 = const ()
|
||||
8:12-10:6: @7[7]: _0 = const ()
|
||||
11:2-11:2: @7.Return: return"> println!("Don't Panic");</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="9:18-9:31: @2[6]: _31 = const might_panic::promoted[1]
|
||||
9:18-9:31: @2[7]: _23 = &(*_31)
|
||||
9:18-9:31: @2[8]: _22 = &(*_23)
|
||||
9:18-9:31: @2[9]: _21 = move _22 as &[&str] (Pointer(Unsize))
|
||||
9:9-9:33: @2[15]: _29 = ()
|
||||
9:9-9:33: @2[16]: FakeRead(ForMatchedPlace, _29)
|
||||
9:9-9:33: @2[17]: _30 = const might_panic::promoted[0]
|
||||
9:9-9:33: @2[18]: _27 = &(*_30)
|
||||
9:9-9:33: @2[19]: _26 = &(*_27)
|
||||
9:9-9:33: @2[20]: _25 = move _26 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
9:9-9:33: @2.Call: _20 = Arguments::new_v1(move _21, move _25) -> [return: bb6, unwind: bb8]
|
||||
9:9-9:33: @6.Call: _19 = _print(move _20) -> [return: bb7, unwind: bb8]
|
||||
9:9-9:33: @7[5]: _18 = const ()
|
||||
8:12-10:6: @7[7]: _0 = const ()
|
||||
11:2-11:2: @7.Return: return"> }</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="9:18-9:31: @2[6]: _31 = const might_panic::promoted[1]
|
||||
9:18-9:31: @2[7]: _23 = &(*_31)
|
||||
9:18-9:31: @2[8]: _22 = &(*_23)
|
||||
9:18-9:31: @2[9]: _21 = move _22 as &[&str] (Pointer(Unsize))
|
||||
9:9-9:33: @2[15]: _29 = ()
|
||||
9:9-9:33: @2[16]: FakeRead(ForMatchedPlace, _29)
|
||||
9:9-9:33: @2[17]: _30 = const might_panic::promoted[0]
|
||||
9:9-9:33: @2[18]: _27 = &(*_30)
|
||||
9:9-9:33: @2[19]: _26 = &(*_27)
|
||||
9:9-9:33: @2[20]: _25 = move _26 as &[std::fmt::ArgumentV1] (Pointer(Unsize))
|
||||
9:9-9:33: @2.Call: _20 = Arguments::new_v1(move _21, move _25) -> [return: bb6, unwind: bb8]
|
||||
9:9-9:33: @6.Call: _19 = _print(move _20) -> [return: bb7, unwind: bb8]
|
||||
9:9-9:33: @7[5]: _18 = const ()
|
||||
8:12-10:6: @7[7]: _0 = const ()
|
||||
11:2-11:2: @7.Return: return">}<span class="annotation">⦉@2,6,7</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -133,9 +133,12 @@ For revisions in Pull Requests (PR):
|
|||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="27:13-27:18: @12[0]: _0 = const ()"><span class="annotation">@10,12⦊</span>break<span class="annotation">⦉@10,12</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> ;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="30:9-32:10: @13[0]: _5 = move (_13.0: i32)"><span class="annotation">@13⦊</span>countdown</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="30:9-32:10: @13[0]: _5 = move (_13.0: i32)"> -=</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="30:9-32:10: @13[0]: _5 = move (_13.0: i32)"> 1<span class="annotation">⦉@13</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="30:9-32:10: @11[3]: _13 = CheckedSub(_5, const 1_i32)
|
||||
30:9-32:10: @13[0]: _5 = move (_13.0: i32)"><span class="annotation">@11,13⦊</span>countdown</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="30:9-32:10: @11[3]: _13 = CheckedSub(_5, const 1_i32)
|
||||
30:9-32:10: @13[0]: _5 = move (_13.0: i32)"> -=</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="30:9-32:10: @11[3]: _13 = CheckedSub(_5, const 1_i32)
|
||||
30:9-32:10: @13[0]: _5 = move (_13.0: i32)"> 1<span class="annotation">⦉@11,13</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> ;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span><span><span class="code even" style="--layer: 1" title="34:6-34:6: @7.Goto: goto -> bb8"><span class="annotation">@7⦊</span>‸<span class="annotation">⦉@7</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="35:2-35:2: @12.Return: return"><span class="annotation">@10,12⦊</span>‸<span class="annotation">⦉@10,12</span></span></span></span></div>
|
||||
|
|
|
|||
|
|
@ -79,33 +79,38 @@ For revisions in Pull Requests (PR):
|
|||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="17:9-17:10: @8[1]: _13 = ((_9 as Some).0: i32)
|
||||
17:9-17:10: @8[3]: _14 = _13
|
||||
17:9-17:10: @8[4]: _7 = move _14
|
||||
17:9-17:10: @8[5]: _8 = const ()"><span class="annotation">@6,8⦊</span>_<span class="annotation">⦉@6,8</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
17:9-17:10: @8[5]: _8 = const ()"><span class="annotation">@6,8,9⦊</span>_<span class="annotation">⦉@6,8,9</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> in</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="19:9-19:14: @3[5]: _11 = &mut _5
|
||||
19:9-19:14: @3[6]: _10 = &mut (*_11)
|
||||
19:9-19:14: @3.Call: _9 = <std::ops::Range<i32> as Iterator>::next(move _10) -> [return: bb4, unwind: bb40]
|
||||
19:9-19:14: @4[1]: FakeRead(ForMatchedPlace, _9)"><span class="annotation">@2,3,4⦊</span>0..10<span class="annotation">⦉@2,3,4</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="21:9-22:17: @9[0]: _1 = move (_17.0: i32)
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="21:9-22:17: @8[12]: _17 = CheckedSub(_1, const 1_i32)
|
||||
21:9-22:17: @9[0]: _1 = move (_17.0: i32)
|
||||
25:13-25:22: @9[3]: _19 = _1
|
||||
25:13-25:26: @9[4]: _18 = Lt(move _19, const 5_i32)
|
||||
25:13-25:26: @9[6]: FakeRead(ForMatchedPlace, _18)"><span class="annotation">@9⦊</span>countdown</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="21:9-22:17: @9[0]: _1 = move (_17.0: i32)
|
||||
25:13-25:26: @9[6]: FakeRead(ForMatchedPlace, _18)"><span class="annotation">@6,8,9⦊</span>countdown</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="21:9-22:17: @8[12]: _17 = CheckedSub(_1, const 1_i32)
|
||||
21:9-22:17: @9[0]: _1 = move (_17.0: i32)
|
||||
25:13-25:22: @9[3]: _19 = _1
|
||||
25:13-25:26: @9[4]: _18 = Lt(move _19, const 5_i32)
|
||||
25:13-25:26: @9[6]: FakeRead(ForMatchedPlace, _18)"> -= 1</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="21:9-22:17: @9[0]: _1 = move (_17.0: i32)
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="21:9-22:17: @8[12]: _17 = CheckedSub(_1, const 1_i32)
|
||||
21:9-22:17: @9[0]: _1 = move (_17.0: i32)
|
||||
25:13-25:22: @9[3]: _19 = _1
|
||||
25:13-25:26: @9[4]: _18 = Lt(move _19, const 5_i32)
|
||||
25:13-25:26: @9[6]: FakeRead(ForMatchedPlace, _18)"> ;</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="21:9-22:17: @9[0]: _1 = move (_17.0: i32)
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="21:9-22:17: @8[12]: _17 = CheckedSub(_1, const 1_i32)
|
||||
21:9-22:17: @9[0]: _1 = move (_17.0: i32)
|
||||
25:13-25:22: @9[3]: _19 = _1
|
||||
25:13-25:26: @9[4]: _18 = Lt(move _19, const 5_i32)
|
||||
25:13-25:26: @9[6]: FakeRead(ForMatchedPlace, _18)"> if</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="21:9-22:17: @9[0]: _1 = move (_17.0: i32)
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="21:9-22:17: @8[12]: _17 = CheckedSub(_1, const 1_i32)
|
||||
21:9-22:17: @9[0]: _1 = move (_17.0: i32)
|
||||
25:13-25:22: @9[3]: _19 = _1
|
||||
25:13-25:26: @9[4]: _18 = Lt(move _19, const 5_i32)
|
||||
25:13-25:26: @9[6]: FakeRead(ForMatchedPlace, _18)"> countdown < 5<span class="annotation">⦉@9</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
25:13-25:26: @9[6]: FakeRead(ForMatchedPlace, _18)"> countdown < 5<span class="annotation">⦉@6,8,9</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="27:13-27:41: @12.Call: _22 = call(const true) -> [return: bb13, unwind: bb40]"><span class="annotation">@10,12,13,14⦊</span>call(/*return_error=*/ true)<span class="annotation">⦉@10,12,13,14</span></span></span><span><span class="code odd" style="--layer: 1" title="27:41-27:42: @18[1]: _24 = ((_21 as Err).0: ())
|
||||
27:41-27:42: @18[4]: _27 = _24
|
||||
|
|
|
|||
|
|
@ -115,9 +115,12 @@ For revisions in Pull Requests (PR):
|
|||
<span class="line"><span class="code" style="--layer: 0"> }</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> ;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="30:9-32:10: @12[0]: _1 = move (_13.0: i32)"><span class="annotation">@12⦊</span>countdown</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="30:9-32:10: @12[0]: _1 = move (_13.0: i32)"> -=</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="30:9-32:10: @12[0]: _1 = move (_13.0: i32)"> 1<span class="annotation">⦉@12</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="30:9-32:10: @7[3]: _13 = CheckedSub(_1, const 1_i32)
|
||||
30:9-32:10: @12[0]: _1 = move (_13.0: i32)"><span class="annotation">@7,12⦊</span>countdown</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="30:9-32:10: @7[3]: _13 = CheckedSub(_1, const 1_i32)
|
||||
30:9-32:10: @12[0]: _1 = move (_13.0: i32)"> -=</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="30:9-32:10: @7[3]: _13 = CheckedSub(_1, const 1_i32)
|
||||
30:9-32:10: @12[0]: _1 = move (_13.0: i32)"> 1<span class="annotation">⦉@7,12</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> ;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="35:8-35:10: @4[4]: _15 = ()
|
||||
|
|
|
|||
|
|
@ -0,0 +1,79 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
Preview this file as rendered HTML from the github source at:
|
||||
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.yield/yield.main-%7Bclosure%230%7D.-------.InstrumentCoverage.0.html
|
||||
|
||||
For revisions in Pull Requests (PR):
|
||||
* Replace "rust-lang" with the github PR author
|
||||
* Replace "master" with the PR branch name
|
||||
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>yield.main-{closure#0} - Coverage Spans</title>
|
||||
<style>
|
||||
.line {
|
||||
counter-increment: line;
|
||||
}
|
||||
.line:before {
|
||||
content: counter(line) ": ";
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
font-style: italic;
|
||||
width: 3.8em;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
filter: opacity(50%);
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.code {
|
||||
color: #dddddd;
|
||||
background-color: #222222;
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
line-height: 1.4em;
|
||||
border-bottom: 2px solid #222222;
|
||||
white-space: pre;
|
||||
display: inline-block;
|
||||
}
|
||||
.odd {
|
||||
background-color: #55bbff;
|
||||
color: #223311;
|
||||
}
|
||||
.even {
|
||||
background-color: #ee7756;
|
||||
color: #551133;
|
||||
}
|
||||
.code {
|
||||
--index: calc(var(--layer) - 1);
|
||||
padding-top: calc(var(--index) * 0.15em);
|
||||
filter:
|
||||
hue-rotate(calc(var(--index) * 25deg))
|
||||
saturate(calc(100% - (var(--index) * 2%)))
|
||||
brightness(calc(100% - (var(--index) * 1.5%)));
|
||||
}
|
||||
.annotation {
|
||||
color: #4444ff;
|
||||
font-family: monospace;
|
||||
font-style: italic;
|
||||
display: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
body:active .annotation {
|
||||
/* requires holding mouse down anywhere on the page */
|
||||
display: inline-block;
|
||||
}
|
||||
span:hover .annotation {
|
||||
/* requires hover over a span ONLY on its first line */
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 7"><span class="line"> <span class="code" style="--layer: 0">|| {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="9:9-9:16: @0.Yield: _3 = yield(const 1_i32) -> [resume: bb1, drop: bb2]"><span class="annotation">@0⦊</span>yield 1<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> return </span><span><span class="code odd" style="--layer: 1" title="10:16-10:21: @1[1]: _0 = const "foo"
|
||||
11:6-11:6: @1.Return: return"><span class="annotation">@1⦊</span>"foo"</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="10:16-10:21: @1[1]: _0 = const "foo"
|
||||
11:6-11:6: @1.Return: return"> }<span class="annotation">⦉@1</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,81 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
Preview this file as rendered HTML from the github source at:
|
||||
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.yield/yield.main-%7Bclosure%231%7D.-------.InstrumentCoverage.0.html
|
||||
|
||||
For revisions in Pull Requests (PR):
|
||||
* Replace "rust-lang" with the github PR author
|
||||
* Replace "master" with the PR branch name
|
||||
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>yield.main-{closure#1} - Coverage Spans</title>
|
||||
<style>
|
||||
.line {
|
||||
counter-increment: line;
|
||||
}
|
||||
.line:before {
|
||||
content: counter(line) ": ";
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
font-style: italic;
|
||||
width: 3.8em;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
filter: opacity(50%);
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.code {
|
||||
color: #dddddd;
|
||||
background-color: #222222;
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
line-height: 1.4em;
|
||||
border-bottom: 2px solid #222222;
|
||||
white-space: pre;
|
||||
display: inline-block;
|
||||
}
|
||||
.odd {
|
||||
background-color: #55bbff;
|
||||
color: #223311;
|
||||
}
|
||||
.even {
|
||||
background-color: #ee7756;
|
||||
color: #551133;
|
||||
}
|
||||
.code {
|
||||
--index: calc(var(--layer) - 1);
|
||||
padding-top: calc(var(--index) * 0.15em);
|
||||
filter:
|
||||
hue-rotate(calc(var(--index) * 25deg))
|
||||
saturate(calc(100% - (var(--index) * 2%)))
|
||||
brightness(calc(100% - (var(--index) * 1.5%)));
|
||||
}
|
||||
.annotation {
|
||||
color: #4444ff;
|
||||
font-family: monospace;
|
||||
font-style: italic;
|
||||
display: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
body:active .annotation {
|
||||
/* requires holding mouse down anywhere on the page */
|
||||
display: inline-block;
|
||||
}
|
||||
span:hover .annotation {
|
||||
/* requires hover over a span ONLY on its first line */
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 21"><span class="line"> <span class="code" style="--layer: 0">|| {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="23:9-23:16: @0.Yield: _3 = yield(const 1_i32) -> [resume: bb1, drop: bb6]"><span class="annotation">@0⦊</span>yield 1<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="24:9-24:16: @1.Yield: _4 = yield(const 2_i32) -> [resume: bb2, drop: bb5]"><span class="annotation">@1⦊</span>yield 2<span class="annotation">⦉@1</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="25:9-25:16: @2.Yield: _5 = yield(const 3_i32) -> [resume: bb3, drop: bb4]"><span class="annotation">@2⦊</span>yield 3<span class="annotation">⦉@2</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> return </span><span><span class="code odd" style="--layer: 1" title="26:16-26:21: @3[1]: _0 = const "foo"
|
||||
27:6-27:6: @3.Return: return"><span class="annotation">@3⦊</span>"foo"</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="26:16-26:21: @3[1]: _0 = const "foo"
|
||||
27:6-27:6: @3.Return: return"> }<span class="annotation">⦉@3</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,138 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
Preview this file as rendered HTML from the github source at:
|
||||
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.yield/yield.main.-------.InstrumentCoverage.0.html
|
||||
|
||||
For revisions in Pull Requests (PR):
|
||||
* Replace "rust-lang" with the github PR author
|
||||
* Replace "master" with the PR branch name
|
||||
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>yield.main - Coverage Spans</title>
|
||||
<style>
|
||||
.line {
|
||||
counter-increment: line;
|
||||
}
|
||||
.line:before {
|
||||
content: counter(line) ": ";
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
font-style: italic;
|
||||
width: 3.8em;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
filter: opacity(50%);
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.code {
|
||||
color: #dddddd;
|
||||
background-color: #222222;
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
line-height: 1.4em;
|
||||
border-bottom: 2px solid #222222;
|
||||
white-space: pre;
|
||||
display: inline-block;
|
||||
}
|
||||
.odd {
|
||||
background-color: #55bbff;
|
||||
color: #223311;
|
||||
}
|
||||
.even {
|
||||
background-color: #ee7756;
|
||||
color: #551133;
|
||||
}
|
||||
.code {
|
||||
--index: calc(var(--layer) - 1);
|
||||
padding-top: calc(var(--index) * 0.15em);
|
||||
filter:
|
||||
hue-rotate(calc(var(--index) * 25deg))
|
||||
saturate(calc(100% - (var(--index) * 2%)))
|
||||
brightness(calc(100% - (var(--index) * 1.5%)));
|
||||
}
|
||||
.annotation {
|
||||
color: #4444ff;
|
||||
font-family: monospace;
|
||||
font-style: italic;
|
||||
display: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
body:active .annotation {
|
||||
/* requires holding mouse down anywhere on the page */
|
||||
display: inline-block;
|
||||
}
|
||||
span:hover .annotation {
|
||||
/* requires hover over a span ONLY on its first line */
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 6"><span class="line"><span class="code" style="--layer: 0">fn main() {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> let </span><span><span class="code even" style="--layer: 1" title="8:9-8:22: @0[2]: FakeRead(ForLet, _1)"><span class="annotation">@0,1,2⦊</span>mut generator<span class="annotation">⦉@0,1,2</span></span></span><span class="code" style="--layer: 0"> = || {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> yield 1;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> return "foo"</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> };</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> match </span><span><span class="code even" style="--layer: 1" title="13:20-13:34: @0[7]: _5 = &mut _1
|
||||
13:11-13:35: @0.Call: _4 = Pin::<&mut [generator@../coverage/yield.rs:8:25: 11:6 {i32, ()}]>::new(move _5) -> [return: bb1, unwind: bb26]
|
||||
13:43-13:45: @1[2]: _6 = ()
|
||||
13:11-13:46: @1.Call: _3 = <[generator@../coverage/yield.rs:8:25: 11:6 {i32, ()}] as Generator>::resume(move _4, move _6) -> [return: bb2, unwind: bb26]
|
||||
13:11-13:46: @2[2]: FakeRead(ForMatchedPlace, _3)
|
||||
14:9-14:35: @2[3]: _7 = discriminant(_3)"><span class="annotation">@0,1,2⦊</span>Pin::new(&mut generator).resume(()) {</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="13:20-13:34: @0[7]: _5 = &mut _1
|
||||
13:11-13:35: @0.Call: _4 = Pin::<&mut [generator@../coverage/yield.rs:8:25: 11:6 {i32, ()}]>::new(move _5) -> [return: bb1, unwind: bb26]
|
||||
13:43-13:45: @1[2]: _6 = ()
|
||||
13:11-13:46: @1.Call: _3 = <[generator@../coverage/yield.rs:8:25: 11:6 {i32, ()}] as Generator>::resume(move _4, move _6) -> [return: bb2, unwind: bb26]
|
||||
13:11-13:46: @2[2]: FakeRead(ForMatchedPlace, _3)
|
||||
14:9-14:35: @2[3]: _7 = discriminant(_3)"> GeneratorState::Yielded(1)<span class="annotation">⦉@0,1,2</span></span></span><span class="code" style="--layer: 0"> => </span><span><span class="code odd" style="--layer: 1" title="14:39-14:41: @6[0]: _2 = const ()"><span class="annotation">@4,6,7,8⦊</span>{}<span class="annotation">⦉@4,6,7,8</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> _ => </span><span><span class="code even" style="--layer: 1" title="15:14-15:52: @5.Call: begin_panic::<&str>(const "unexpected value from resume") -> bb26"><span class="annotation">@5⦊</span>panic!("unexpected value from resume")<span class="annotation">⦉@5</span></span></span><span class="code" style="--layer: 0">,</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> match </span><span><span class="code odd" style="--layer: 1" title="17:20-17:34: @6[7]: _12 = &mut _1
|
||||
17:11-17:35: @6.Call: _11 = Pin::<&mut [generator@../coverage/yield.rs:8:25: 11:6 {i32, ()}]>::new(move _12) -> [return: bb7, unwind: bb26]
|
||||
17:43-17:45: @7[2]: _13 = ()
|
||||
17:11-17:46: @7.Call: _10 = <[generator@../coverage/yield.rs:8:25: 11:6 {i32, ()}] as Generator>::resume(move _11, move _13) -> [return: bb8, unwind: bb26]
|
||||
17:11-17:46: @8[2]: FakeRead(ForMatchedPlace, _10)"><span class="annotation">@4,6,7,8⦊</span>Pin::new(&mut generator).resume(())<span class="annotation">⦉@4,6,7,8</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> GeneratorState::Complete(</span><span><span class="code even" style="--layer: 1" title="18:34-18:39: @10.Call: _14 = <str as PartialEq>::eq(((_10 as Complete).0: &str), const "foo") -> [return: bb11, unwind: bb26]"><span class="annotation">@10,11⦊</span>"foo"<span class="annotation">⦉@10,11</span></span></span><span class="code" style="--layer: 0">) => </span><span><span class="code odd" style="--layer: 1" title="18:44-18:46: @13[0]: _9 = const ()"><span class="annotation">@12,13,14,15⦊</span>{}<span class="annotation">⦉@12,13,14,15</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> _ => </span><span><span class="code even" style="--layer: 1" title="19:14-19:52: @9.Call: begin_panic::<&str>(const "unexpected value from resume") -> bb26"><span class="annotation">@9⦊</span>panic!("unexpected value from resume")<span class="annotation">⦉@9</span></span></span><span class="code" style="--layer: 0">,</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> let </span><span><span class="code odd" style="--layer: 1" title="22:9-22:22: @13[5]: FakeRead(ForLet, _17)"><span class="annotation">@12,13,14,15⦊</span>mut generator<span class="annotation">⦉@12,13,14,15</span></span></span><span class="code" style="--layer: 0"> = || {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> yield 1;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> yield 2;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> yield 3;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> return "foo"</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> };</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> match </span><span><span class="code odd" style="--layer: 1" title="29:20-29:34: @13[10]: _21 = &mut _17
|
||||
29:11-29:35: @13.Call: _20 = Pin::<&mut [generator@../coverage/yield.rs:22:25: 27:6 {i32, ()}]>::new(move _21) -> [return: bb14, unwind: bb26]
|
||||
29:43-29:45: @14[2]: _22 = ()
|
||||
29:11-29:46: @14.Call: _19 = <[generator@../coverage/yield.rs:22:25: 27:6 {i32, ()}] as Generator>::resume(move _20, move _22) -> [return: bb15, unwind: bb26]
|
||||
29:11-29:46: @15[2]: FakeRead(ForMatchedPlace, _19)
|
||||
30:9-30:35: @15[3]: _23 = discriminant(_19)"><span class="annotation">@12,13,14,15⦊</span>Pin::new(&mut generator).resume(()) {</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="29:20-29:34: @13[10]: _21 = &mut _17
|
||||
29:11-29:35: @13.Call: _20 = Pin::<&mut [generator@../coverage/yield.rs:22:25: 27:6 {i32, ()}]>::new(move _21) -> [return: bb14, unwind: bb26]
|
||||
29:43-29:45: @14[2]: _22 = ()
|
||||
29:11-29:46: @14.Call: _19 = <[generator@../coverage/yield.rs:22:25: 27:6 {i32, ()}] as Generator>::resume(move _20, move _22) -> [return: bb15, unwind: bb26]
|
||||
29:11-29:46: @15[2]: FakeRead(ForMatchedPlace, _19)
|
||||
30:9-30:35: @15[3]: _23 = discriminant(_19)"> GeneratorState::Yielded(1)<span class="annotation">⦉@12,13,14,15</span></span></span><span class="code" style="--layer: 0"> => </span><span><span class="code even" style="--layer: 1" title="30:39-30:41: @19[0]: _18 = const ()"><span class="annotation">@17,19,20,21⦊</span>{}<span class="annotation">⦉@17,19,20,21</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> _ => </span><span><span class="code odd" style="--layer: 1" title="31:14-31:52: @18.Call: begin_panic::<&str>(const "unexpected value from resume") -> bb26"><span class="annotation">@18⦊</span>panic!("unexpected value from resume")<span class="annotation">⦉@18</span></span></span><span class="code" style="--layer: 0">,</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> match </span><span><span class="code even" style="--layer: 1" title="33:20-33:34: @19[6]: _27 = &mut _17
|
||||
33:11-33:35: @19.Call: _26 = Pin::<&mut [generator@../coverage/yield.rs:22:25: 27:6 {i32, ()}]>::new(move _27) -> [return: bb20, unwind: bb26]
|
||||
33:43-33:45: @20[2]: _28 = ()
|
||||
33:11-33:46: @20.Call: _25 = <[generator@../coverage/yield.rs:22:25: 27:6 {i32, ()}] as Generator>::resume(move _26, move _28) -> [return: bb21, unwind: bb26]
|
||||
33:11-33:46: @21[2]: FakeRead(ForMatchedPlace, _25)
|
||||
34:9-34:35: @21[3]: _29 = discriminant(_25)"><span class="annotation">@17,19,20,21⦊</span>Pin::new(&mut generator).resume(()) {</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="33:20-33:34: @19[6]: _27 = &mut _17
|
||||
33:11-33:35: @19.Call: _26 = Pin::<&mut [generator@../coverage/yield.rs:22:25: 27:6 {i32, ()}]>::new(move _27) -> [return: bb20, unwind: bb26]
|
||||
33:43-33:45: @20[2]: _28 = ()
|
||||
33:11-33:46: @20.Call: _25 = <[generator@../coverage/yield.rs:22:25: 27:6 {i32, ()}] as Generator>::resume(move _26, move _28) -> [return: bb21, unwind: bb26]
|
||||
33:11-33:46: @21[2]: FakeRead(ForMatchedPlace, _25)
|
||||
34:9-34:35: @21[3]: _29 = discriminant(_25)"> GeneratorState::Yielded(2)<span class="annotation">⦉@17,19,20,21</span></span></span><span class="code" style="--layer: 0"> => </span><span><span class="code odd" style="--layer: 1" title="34:39-34:41: @25[0]: _0 = const ()"><span class="annotation">@23,25⦊</span>{}<span class="annotation">⦉@23,25</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> _ => </span><span><span class="code even" style="--layer: 1" title="35:14-35:52: @24.Call: begin_panic::<&str>(const "unexpected value from resume") -> bb26"><span class="annotation">@24⦊</span>panic!("unexpected value from resume")<span class="annotation">⦉@24</span></span></span><span class="code" style="--layer: 0">,</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0">}</span><span><span class="code odd" style="--layer: 1" title="37:2-37:2: @25.Return: return"><span class="annotation">@23,25⦊</span>‸<span class="annotation">⦉@23,25</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,99 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
|
||||
Preview this file as rendered HTML from the github source at:
|
||||
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.abort/abort.main.-------.InstrumentCoverage.0.html
|
||||
|
||||
For revisions in Pull Requests (PR):
|
||||
* Replace "rust-lang" with the github PR author
|
||||
* Replace "master" with the PR branch name
|
||||
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>abort.main - Coverage Spans</title>
|
||||
<style>
|
||||
.line {
|
||||
counter-increment: line;
|
||||
}
|
||||
.line:before {
|
||||
content: counter(line) ": ";
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
font-style: italic;
|
||||
width: 3.8em;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
filter: opacity(50%);
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.code {
|
||||
color: #dddddd;
|
||||
background-color: #222222;
|
||||
font-family: Menlo, Monaco, monospace;
|
||||
line-height: 1.4em;
|
||||
border-bottom: 2px solid #222222;
|
||||
white-space: pre;
|
||||
display: inline-block;
|
||||
}
|
||||
.odd {
|
||||
background-color: #55bbff;
|
||||
color: #223311;
|
||||
}
|
||||
.even {
|
||||
background-color: #ee7756;
|
||||
color: #551133;
|
||||
}
|
||||
.code {
|
||||
--index: calc(var(--layer) - 1);
|
||||
padding-top: calc(var(--index) * 0.15em);
|
||||
filter:
|
||||
hue-rotate(calc(var(--index) * 25deg))
|
||||
saturate(calc(100% - (var(--index) * 2%)))
|
||||
brightness(calc(100% - (var(--index) * 1.5%)));
|
||||
}
|
||||
.annotation {
|
||||
color: #4444ff;
|
||||
font-family: monospace;
|
||||
font-style: italic;
|
||||
display: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
body:active .annotation {
|
||||
/* requires holding mouse down anywhere on the page */
|
||||
display: inline-block;
|
||||
}
|
||||
span:hover .annotation {
|
||||
/* requires hover over a span ONLY on its first line */
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="code" style="counter-reset: line 13"><span class="line"><span class="code" style="--layer: 0">fn main() -> Result<(),u8> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> let </span><span><span class="code even" style="--layer: 1" title="15:25-15:27: @0[1]: _1 = const 10_i32
|
||||
15:9-15:22: @0[2]: FakeRead(ForLet, _1)"><span class="annotation">@0⦊</span>mut countdown = 10<span class="annotation">⦉@0</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> while </span><span><span class="code odd" style="--layer: 1" title="16:11-16:20: @2[2]: _5 = _1
|
||||
16:11-16:24: @2[3]: _4 = Gt(move _5, const 0_i32)
|
||||
16:11-16:24: @2[5]: FakeRead(ForMatchedPlace, _4)"><span class="annotation">@1,2⦊</span>countdown > 0<span class="annotation">⦉@1,2</span></span></span><span class="code" style="--layer: 0"> {</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> if </span><span><span class="code even" style="--layer: 1" title="17:12-17:21: @5[3]: _8 = _1
|
||||
17:12-17:25: @5[4]: _7 = Lt(move _8, const 5_i32)
|
||||
17:12-17:25: @5[6]: FakeRead(ForMatchedPlace, _7)"><span class="annotation">@3,5⦊</span>countdown < 5<span class="annotation">⦉@3,5</span></span></span><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="18:13-18:31: @8.Call: _9 = might_abort(const false) -> [return: bb9, unwind: bb12]
|
||||
17:26-19:10: @9[1]: _6 = const ()
|
||||
19:10-19:10: @9.Goto: goto -> bb10"><span class="annotation">@6,8,9⦊</span>{</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="18:13-18:31: @8.Call: _9 = might_abort(const false) -> [return: bb9, unwind: bb12]
|
||||
17:26-19:10: @9[1]: _6 = const ()
|
||||
19:10-19:10: @9.Goto: goto -> bb10"> might_abort(false);</span></span>
|
||||
<span class="line"><span class="code odd" style="--layer: 1" title="18:13-18:31: @8.Call: _9 = might_abort(const false) -> [return: bb9, unwind: bb12]
|
||||
17:26-19:10: @9[1]: _6 = const ()
|
||||
19:10-19:10: @9.Goto: goto -> bb10"> }<span class="annotation">⦉@6,8,9</span></span></span><span><span class="code even" style="--layer: 1" title="19:10-19:10: @7.Goto: goto -> bb10"><span class="annotation">@7⦊</span>‸<span class="annotation">⦉@7</span></span></span><span class="code" style="--layer: 0"></span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code odd" style="--layer: 1" title="20:9-20:23: @10[2]: _10 = CheckedSub(_1, const 1_i32)
|
||||
20:9-20:23: @11[0]: _1 = move (_10.0: i32)"><span class="annotation">@10,11⦊</span>countdown -= 1<span class="annotation">⦉@10,11</span></span></span><span class="code" style="--layer: 0">;</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> }</span></span>
|
||||
<span class="line"><span class="code" style="--layer: 0"> </span><span><span class="code even" style="--layer: 1" title="22:8-22:10: @4[4]: _12 = ()
|
||||
22:5-22:11: @4[5]: _0 = std::result::Result::<(), u8>::Ok(move _12)
|
||||
23:2-23:2: @4.Return: return"><span class="annotation">@4⦊</span>Ok(())</span></span>
|
||||
<span class="line"><span class="code even" style="--layer: 1" title="22:8-22:10: @4[4]: _12 = ()
|
||||
22:5-22:11: @4[5]: _0 = std::result::Result::<(), u8>::Ok(move _12)
|
||||
23:2-23:2: @4.Return: return">}<span class="annotation">⦉@4</span></span></span></span></div>
|
||||
</body>
|
||||
</html>
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue