src/compiler/coverage_session.panack
Green: covered; red: known zero; amber: unavailable. Blank lines are outside the executable-start-line denominator.
1 import "coverage.panack" 2 3 record CoverageRoot { 4 project: LoadedProject, mapped: SourceMappedProgram, artifact: Bytes, 5 inventory: Bytes, root: Str, stdlib: Str 6 } 7 record CoverageSessionResult { valid: Bool, nonce: Bytes, executions: Nat, totals: [CoverageData] } 8 9 pure coverage_zero(program: BytecodeProgram): CoverageData { 10 mut functions: [CoverageFunction] = [] 11 for function in sort_functions(program.functions) { 12 mut cells: [CoverageCell] = [] 13 for instruction in function.instructions { cells = append(cells, CoverageCell(0, 0, 0, 0)); } 14 functions = append(functions, CoverageFunction(0, cells)) 15 } 16 CoverageData(true, 1, functions) 17 } 18 19 pure coverage_sum(left: CoverageData, right: CoverageData): CoverageData { 20 mut functions: [CoverageFunction] = [] 21 mut valid: Bool = left.valid && right.valid && len(left.functions) == len(right.functions) 22 if valid { 23 for index in 0..len(left.functions) { 24 a: CoverageFunction = left.functions[index] 25 b: CoverageFunction = right.functions[index] 26 valid = valid && len(a.cells) == len(b.cells) && a.entries + b.entries <= 18446744073709551615 27 mut cells: [CoverageCell] = [] 28 if valid { 29 for pc in 0..len(a.cells) { 30 x: CoverageCell = a.cells[pc] 31 y: CoverageCell = b.cells[pc] 32 cell: CoverageCell = CoverageCell(x.attempted + y.attempted, x.completed + y.completed, 33 x.fallthrough + y.fallthrough, x.branched + y.branched) 34 valid = valid && cell.attempted <= 18446744073709551615 && cell.completed <= 18446744073709551615 && 35 cell.fallthrough <= 18446744073709551615 && cell.branched <= 18446744073709551615 36 cells = append(cells, cell) 37 } 38 } 39 functions = append(functions, CoverageFunction(a.entries + b.entries, cells)) 40 } 41 } 42 CoverageData(valid, 1, functions) 43 } 44 45 // Canonical bounded hierarchical IDs, never record-supplied filesystem paths. 46 pure coverage_execution_id(id: Str): Bool { 47 mut valid: Bool = len(id) > 0 && len(id) < 192 && slice(id, 0, 1) == "0" 48 mut start: Nat = 2 49 if len(id) > 1 { valid = valid && slice(id, 1, 2) == "." && len(id) > 2; } 50 for i in 2..len(id) { 51 c: Str = slice(id, i, i + 1) 52 if c == "." { 53 valid = valid && i > start 54 start = i + 1 55 } else { 56 valid = valid && c >= "0" && c <= "9" && (i != start || c != "0") 57 } 58 } 59 valid && (len(id) == 1 || start < len(id)) 60 } 61 pure coverage_parent(id: Str): Str { 62 mut end: Nat = 0 63 for i in 0..len(id) { if slice(id, i, i + 1) == "." { end = i; } } 64 slice(id, 0, end) 65 } 66 67 coverage_session_read(directory: Str, roots: [CoverageRoot]): CoverageSessionResult { 68 mut valid: Bool = true 69 mut nonce: Bytes = bytes() 70 mut totals: [CoverageData] = [] 71 for root in roots { totals = append(totals, coverage_zero(root.mapped.bytecode)); } 72 mut executions: Nat = 0 73 match source_map_read(directory + "/registry", 16777216) { 74 Error(error) => { valid = false; }, 75 Ok(registry) => { 76 valid = byte_len(registry) >= 35 && coverage_prefix(registry, utf8_encode("PANACKSESSION1\n"), 0) 77 if valid { 78 for i in 15..31 { nonce = byte_append(nonce, byte_get(registry, i)); } 79 mut chunks: [Bytes] = [utf8_encode("PANACKSESSION1\n"), nonce, encode_u32(len(roots))] 80 for root in roots { chunks = append(chunks, source_map_blob(root.artifact)); chunks = append(chunks, source_map_blob(root.inventory)); } 81 valid = registry == source_map_join(chunks, 0, len(chunks)) 82 } 83 } 84 } 85 mut names: Map[Str,Bool] = map() 86 mut ids: [Str] = [] 87 match path_from_text(directory) { 88 Error(error) => { valid = false; }, 89 Ok(path) => match fs_list(path) { 90 Error(error) => { valid = false; }, 91 Ok(children) => { 92 valid = valid && len(children) <= 12291 93 for child in children { 94 match path_to_text(child) { 95 Error(error) => { valid = false; }, 96 Ok(name) => { 97 names = names.put(name, true) 98 if len(name) > 7 && slice(name, 0, 7) == "expect-" { ids = append(ids, slice(name, 7, len(name))); } 99 } 100 } 101 } 102 } 103 } 104 } 105 valid = valid && len(ids) > 0 && len(ids) <= 4096 && names.has("expect-0") && 106 names.has("registry") && names.has("closed") && source_map_matches(directory + "/closed", utf8_encode("closed\n")) 107 // Exact membership prevents surplus/duplicate/renamed records being ignored. 108 mut expected_names: Nat = 3 109 mut declared_children: Nat = 0 110 mut total_bytes: Nat = 0 111 for id in ids { 112 valid = valid && coverage_execution_id(id) && (id == "0" || names.has("expect-" + coverage_parent(id))) && 113 names.has("claim-" + id) && names.has("raw-" + id) 114 expected_names = expected_names + 3 115 mut kind: Bytes = bytes() 116 match source_map_read(directory + "/expect-" + id, 16) { 117 Error(error) => { valid = false; }, Ok(data) => { kind = data; } 118 } 119 valid = valid && (if id == "0" { kind == utf8_encode("root\n") } else { 120 kind == utf8_encode("nested\n") || kind == utf8_encode("task\n") || kind == utf8_encode("server\n") || kind == utf8_encode("process\n") 121 }) && source_map_matches(directory + "/claim-" + id, utf8_encode("claimed\n")) 122 if valid { 123 match source_map_read(directory + "/raw-" + id, 16777216) { 124 Error(error) => { valid = false; }, 125 Ok(raw) => { 126 total_bytes = total_bytes + byte_len(raw) 127 valid = valid && total_bytes <= 268435456 128 envelope: Bytes = source_map_join([utf8_encode("PANACKEXEC1\n"), nonce, source_map_blob(utf8_encode(id))], 0, 3) 129 offset: Nat = byte_len(envelope) 130 valid = valid && byte_len(raw) >= offset + 8 && coverage_prefix(raw, envelope, 0) 131 if valid { 132 identity: Nat = coverage_number(raw, offset, 4) 133 children: Nat = coverage_number(raw, offset + 4, 4) 134 declared_children = declared_children + children 135 valid = identity < len(roots) && children <= 4096 136 if valid { 137 for child in 1..(children + 1) { valid = valid && names.has("expect-" + id + ".${child}"); } 138 } 139 if valid { 140 root: CoverageRoot = roots[identity] 141 observed: CoverageData = decode_coverage_at(raw, root.artifact, root.inventory, root.mapped.bytecode, offset + 8) 142 valid = observed.valid 143 mut next: [CoverageData] = [] 144 for i in 0..len(totals) { 145 combined: CoverageData = if i == identity { coverage_sum(totals[i], observed) } else { totals[i] } 146 valid = valid && combined.valid 147 next = append(next, combined) 148 } 149 totals = next 150 executions = executions + 1 151 } 152 } 153 } 154 } 155 } 156 } 157 // fs_list already guarantees unique names; inspect its length again below. 158 match path_from_text(directory) { 159 Error(error) => { valid = false; }, Ok(path) => match fs_list(path) { 160 Error(error) => { valid = false; }, Ok(children) => { valid = valid && len(children) == expected_names; } 161 } 162 } 163 CoverageSessionResult(valid && declared_children + 1 == len(ids) && 164 source_map_matches(directory + "/budget", bytes_concat(encode_u32(len(ids)), encode_u32(total_bytes))), nonce, executions, totals) 165 } 166 167 run_coverage_aggregate(values: [Str]): Nat { 168 mut sources: [Str] = [] 169 mut inventories: [Str] = [] 170 mut sessions: [Str] = [] 171 mut valid: Bool = true 172 mut cursor: Nat = 1 173 while cursor < len(values) { 174 if values[cursor] == "--source" && cursor + 2 < len(values) && len(sessions) == 0 { 175 sources = append(sources, values[cursor + 1]) 176 inventories = append(inventories, values[cursor + 2]) 177 cursor = cursor + 3 178 } else { if values[cursor] == "--session" && cursor + 1 < len(values) { 179 sessions = append(sessions, values[cursor + 1]) 180 cursor = cursor + 2 181 } else { valid = false; cursor = len(values); } } 182 } 183 valid = valid && len(sources) > 0 && len(sources) <= 16 && len(sessions) > 0 && len(sessions) <= 256 184 mut roots: [CoverageRoot] = [] 185 mut totals: [CoverageData] = [] 186 compiler_path: Str = environment_get("PANACKELTY_COMPILER_PATH") 187 match source_map_read(compiler_path, 16777216) { 188 Error(error) => { valid = false; }, Ok(compiler) => { 189 if valid { 190 for index in 0..len(sources) { 191 entry: Str = path_resolve(sources[index]) 192 root: Str = path_parent(entry) 193 stdlib: Str = path_resolve(environment_get("PANACKELTY_STDLIB_PATH")) 194 project: LoadedProject = load_project_for_inventory(entry) 195 mapped: SourceMappedProgram = compile_program_with_sources(project.program) 196 artifact: Bytes = serialize_bytecode(mapped.bytecode) 197 inner: Bytes = serialize_source_inventory(project, artifact, compiler, entry, root, stdlib) 198 inventory: Bytes = source_map_join([utf8_encode("PANACKINVENTORY1\n"), encode_u32(1), source_map_blob(inner)], 0, 3) 199 valid = valid && len(project.diagnostics) == 0 && byte_len(inner) > 0 && 200 source_map_matches(inventories[index], inventory) && source_snapshots_unchanged(project) 201 for prior in roots { valid = valid && prior.artifact != artifact; } 202 roots = append(roots, CoverageRoot(project, mapped, artifact, inventory, root, stdlib)) 203 totals = append(totals, coverage_zero(mapped.bytecode)) 204 } 205 } 206 valid = valid && source_map_matches(compiler_path, compiler) 207 } 208 } 209 mut seen: [Bytes] = [] 210 mut executions: Nat = 0 211 if valid { 212 for directory in sessions { 213 session: CoverageSessionResult = coverage_session_read(directory, roots) 214 valid = valid && session.valid 215 for nonce in seen { valid = valid && nonce != session.nonce; } 216 seen = append(seen, session.nonce) 217 if valid { 218 mut next: [CoverageData] = [] 219 for i in 0..len(totals) { 220 combined: CoverageData = coverage_sum(totals[i], session.totals[i]) 221 valid = valid && combined.valid 222 next = append(next, combined) 223 } 224 totals = next 225 executions = executions + session.executions 226 } 227 } 228 } 229 // Recheck local snapshots after reading all sessions; compilation and report 230 // decoding must not straddle different source revisions. 231 for root in roots { valid = valid && source_snapshots_unchanged(root.project); } 232 if !valid { 233 eprint("error: coverage aggregate unavailable: missing, partial, duplicate, incompatible or malformed session; no complete report") 234 1 235 } else { 236 count: Nat = len(sessions) 237 print("coverage: aggregate sessions=${count} executions=${executions}") 238 for i in 0..len(roots) { 239 root: CoverageRoot = roots[i] 240 print("artifact/${i}") 241 report: Str = render_coverage(root.project, root.mapped, totals[i], root.root, root.stdlib) 242 print(slice(report, len("coverage: single-execution terminal=1\n"), len(report))) 243 } 244 0 245 } 246 } 247
Functions
[
{
"id": "declaration/3",
"name": "coverage_zero",
"line": 9,
"state": "zero",
"entries": "0"
},
{
"id": "declaration/4",
"name": "coverage_sum",
"line": 19,
"state": "covered",
"entries": "3"
},
{
"id": "declaration/5",
"name": "coverage_execution_id",
"line": 46,
"state": "covered",
"entries": "13"
},
{
"id": "declaration/6",
"name": "coverage_parent",
"line": 61,
"state": "zero",
"entries": "0"
},
{
"id": "declaration/7",
"name": "coverage_session_read",
"line": 67,
"state": "zero",
"entries": "0"
},
{
"id": "declaration/8",
"name": "run_coverage_aggregate",
"line": 167,
"state": "zero",
"entries": "0"
}
]Source branch outcomes
[
{
"id": "declaration/3/statement/1/decision/body",
"outcome": "body",
"line": 11,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/3/statement/1/decision/exit",
"outcome": "exit",
"line": 11,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/3/statement/1/body/statement/1/decision/body",
"outcome": "body",
"line": 13,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/3/statement/1/body/statement/1/decision/exit",
"outcome": "exit",
"line": 13,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/4/statement/1/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 21,
"state": "covered",
"hits": "2"
},
{
"id": "declaration/4/statement/1/value/decision/skip-right",
"outcome": "skip-right",
"line": 21,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/4/statement/1/value/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 21,
"state": "covered",
"hits": "3"
},
{
"id": "declaration/4/statement/1/value/left/decision/skip-right",
"outcome": "skip-right",
"line": 21,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/4/statement/2/value/decision/true",
"outcome": "true",
"line": 22,
"state": "covered",
"hits": "2"
},
{
"id": "declaration/4/statement/2/value/decision/false",
"outcome": "false",
"line": 22,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/4/statement/2/value/true/statement/0/decision/body",
"outcome": "body",
"line": 23,
"state": "covered",
"hits": "2"
},
{
"id": "declaration/4/statement/2/value/true/statement/0/decision/exit",
"outcome": "exit",
"line": 23,
"state": "covered",
"hits": "2"
},
{
"id": "declaration/4/statement/2/value/true/statement/0/body/statement/2/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 26,
"state": "covered",
"hits": "2"
},
{
"id": "declaration/4/statement/2/value/true/statement/0/body/statement/2/value/decision/skip-right",
"outcome": "skip-right",
"line": 26,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/4/statement/2/value/true/statement/0/body/statement/2/value/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 26,
"state": "covered",
"hits": "2"
},
{
"id": "declaration/4/statement/2/value/true/statement/0/body/statement/2/value/left/decision/skip-right",
"outcome": "skip-right",
"line": 26,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/4/statement/2/value/true/statement/0/body/statement/4/value/decision/true",
"outcome": "true",
"line": 28,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/4/statement/2/value/true/statement/0/body/statement/4/value/decision/false",
"outcome": "false",
"line": 28,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/4/statement/2/value/true/statement/0/body/statement/4/value/true/statement/0/decision/body",
"outcome": "body",
"line": 29,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/4/statement/2/value/true/statement/0/body/statement/4/value/true/statement/0/decision/exit",
"outcome": "exit",
"line": 29,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/4/statement/2/value/true/statement/0/body/statement/4/value/true/statement/0/body/statement/3/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 34,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/4/statement/2/value/true/statement/0/body/statement/4/value/true/statement/0/body/statement/3/value/decision/skip-right",
"outcome": "skip-right",
"line": 34,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/4/statement/2/value/true/statement/0/body/statement/4/value/true/statement/0/body/statement/3/value/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 34,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/4/statement/2/value/true/statement/0/body/statement/4/value/true/statement/0/body/statement/3/value/left/decision/skip-right",
"outcome": "skip-right",
"line": 34,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/4/statement/2/value/true/statement/0/body/statement/4/value/true/statement/0/body/statement/3/value/left/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 34,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/4/statement/2/value/true/statement/0/body/statement/4/value/true/statement/0/body/statement/3/value/left/left/decision/skip-right",
"outcome": "skip-right",
"line": 34,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/4/statement/2/value/true/statement/0/body/statement/4/value/true/statement/0/body/statement/3/value/left/left/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 34,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/4/statement/2/value/true/statement/0/body/statement/4/value/true/statement/0/body/statement/3/value/left/left/left/decision/skip-right",
"outcome": "skip-right",
"line": 34,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/5/statement/0/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 47,
"state": "covered",
"hits": "12"
},
{
"id": "declaration/5/statement/0/value/decision/skip-right",
"outcome": "skip-right",
"line": 47,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/5/statement/0/value/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 47,
"state": "covered",
"hits": "12"
},
{
"id": "declaration/5/statement/0/value/left/decision/skip-right",
"outcome": "skip-right",
"line": 47,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/5/statement/2/value/decision/true",
"outcome": "true",
"line": 49,
"state": "covered",
"hits": "10"
},
{
"id": "declaration/5/statement/2/value/decision/false",
"outcome": "false",
"line": 49,
"state": "covered",
"hits": "3"
},
{
"id": "declaration/5/statement/2/value/true/statement/0/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 49,
"state": "covered",
"hits": "8"
},
{
"id": "declaration/5/statement/2/value/true/statement/0/value/decision/skip-right",
"outcome": "skip-right",
"line": 49,
"state": "covered",
"hits": "2"
},
{
"id": "declaration/5/statement/2/value/true/statement/0/value/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 49,
"state": "covered",
"hits": "10"
},
{
"id": "declaration/5/statement/2/value/true/statement/0/value/left/decision/skip-right",
"outcome": "skip-right",
"line": 49,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/5/statement/3/decision/body",
"outcome": "body",
"line": 50,
"state": "covered",
"hits": "16"
},
{
"id": "declaration/5/statement/3/decision/exit",
"outcome": "exit",
"line": 50,
"state": "covered",
"hits": "13"
},
{
"id": "declaration/5/statement/3/body/tail/decision/true",
"outcome": "true",
"line": 52,
"state": "covered",
"hits": "3"
},
{
"id": "declaration/5/statement/3/body/tail/decision/false",
"outcome": "false",
"line": 52,
"state": "covered",
"hits": "13"
},
{
"id": "declaration/5/statement/3/body/tail/true/statement/0/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 53,
"state": "covered",
"hits": "3"
},
{
"id": "declaration/5/statement/3/body/tail/true/statement/0/value/decision/skip-right",
"outcome": "skip-right",
"line": 53,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/5/statement/3/body/tail/false/statement/0/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 56,
"state": "covered",
"hits": "9"
},
{
"id": "declaration/5/statement/3/body/tail/false/statement/0/value/decision/skip-right",
"outcome": "skip-right",
"line": 56,
"state": "covered",
"hits": "4"
},
{
"id": "declaration/5/statement/3/body/tail/false/statement/0/value/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 56,
"state": "covered",
"hits": "10"
},
{
"id": "declaration/5/statement/3/body/tail/false/statement/0/value/left/decision/skip-right",
"outcome": "skip-right",
"line": 56,
"state": "covered",
"hits": "3"
},
{
"id": "declaration/5/statement/3/body/tail/false/statement/0/value/left/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 56,
"state": "covered",
"hits": "10"
},
{
"id": "declaration/5/statement/3/body/tail/false/statement/0/value/left/left/decision/skip-right",
"outcome": "skip-right",
"line": 56,
"state": "covered",
"hits": "3"
},
{
"id": "declaration/5/statement/3/body/tail/false/statement/0/value/right/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 56,
"state": "covered",
"hits": "6"
},
{
"id": "declaration/5/statement/3/body/tail/false/statement/0/value/right/decision/skip-right",
"outcome": "skip-right",
"line": 56,
"state": "covered",
"hits": "3"
},
{
"id": "declaration/5/tail/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 59,
"state": "covered",
"hits": "4"
},
{
"id": "declaration/5/tail/decision/skip-right",
"outcome": "skip-right",
"line": 59,
"state": "covered",
"hits": "9"
},
{
"id": "declaration/5/tail/right/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 59,
"state": "covered",
"hits": "3"
},
{
"id": "declaration/5/tail/right/decision/skip-right",
"outcome": "skip-right",
"line": 59,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/6/statement/1/decision/body",
"outcome": "body",
"line": 63,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/6/statement/1/decision/exit",
"outcome": "exit",
"line": 63,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/6/statement/1/body/tail/decision/true",
"outcome": "true",
"line": 63,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/6/statement/1/body/tail/decision/false",
"outcome": "false",
"line": 63,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/3/decision/body",
"outcome": "body",
"line": 71,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/3/decision/exit",
"outcome": "exit",
"line": 71,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/5/value/arm/0",
"outcome": "Error",
"line": 74,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/5/value/arm/1",
"outcome": "Ok",
"line": 75,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/5/value/arm/1/body/block/statement/0/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 76,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/5/value/arm/1/body/block/statement/0/value/decision/skip-right",
"outcome": "skip-right",
"line": 76,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/5/value/arm/1/body/block/tail/decision/true",
"outcome": "true",
"line": 77,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/5/value/arm/1/body/block/tail/decision/false",
"outcome": "false",
"line": 77,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/5/value/arm/1/body/block/tail/true/statement/0/decision/body",
"outcome": "body",
"line": 78,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/5/value/arm/1/body/block/tail/true/statement/0/decision/exit",
"outcome": "exit",
"line": 78,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/5/value/arm/1/body/block/tail/true/statement/2/decision/body",
"outcome": "body",
"line": 80,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/5/value/arm/1/body/block/tail/true/statement/2/decision/exit",
"outcome": "exit",
"line": 80,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/8/value/arm/0",
"outcome": "Error",
"line": 88,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/8/value/arm/1",
"outcome": "Ok",
"line": 89,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/8/value/arm/1/body/arm/0",
"outcome": "Error",
"line": 90,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/8/value/arm/1/body/arm/1",
"outcome": "Ok",
"line": 91,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/8/value/arm/1/body/arm/1/body/block/statement/0/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 92,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/8/value/arm/1/body/arm/1/body/block/statement/0/value/decision/skip-right",
"outcome": "skip-right",
"line": 92,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/8/value/arm/1/body/arm/1/body/block/statement/1/decision/body",
"outcome": "body",
"line": 93,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/8/value/arm/1/body/arm/1/body/block/statement/1/decision/exit",
"outcome": "exit",
"line": 93,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/8/value/arm/1/body/arm/1/body/block/statement/1/body/tail/arm/0",
"outcome": "Error",
"line": 95,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/8/value/arm/1/body/arm/1/body/block/statement/1/body/tail/arm/1",
"outcome": "Ok",
"line": 96,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/8/value/arm/1/body/arm/1/body/block/statement/1/body/tail/arm/1/body/block/tail/decision/true",
"outcome": "true",
"line": 98,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/8/value/arm/1/body/arm/1/body/block/statement/1/body/tail/arm/1/body/block/tail/decision/false",
"outcome": "false",
"line": 98,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/8/value/arm/1/body/arm/1/body/block/statement/1/body/tail/arm/1/body/block/tail/condition/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 98,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/8/value/arm/1/body/arm/1/body/block/statement/1/body/tail/arm/1/body/block/tail/condition/decision/skip-right",
"outcome": "skip-right",
"line": 98,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/9/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 105,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/9/value/decision/skip-right",
"outcome": "skip-right",
"line": 105,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/9/value/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 105,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/9/value/left/decision/skip-right",
"outcome": "skip-right",
"line": 105,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/9/value/left/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 105,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/9/value/left/left/decision/skip-right",
"outcome": "skip-right",
"line": 105,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/9/value/left/left/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 105,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/9/value/left/left/left/decision/skip-right",
"outcome": "skip-right",
"line": 105,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/9/value/left/left/left/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 105,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/9/value/left/left/left/left/decision/skip-right",
"outcome": "skip-right",
"line": 105,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/9/value/left/left/left/left/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 105,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/9/value/left/left/left/left/left/decision/skip-right",
"outcome": "skip-right",
"line": 105,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/decision/body",
"outcome": "body",
"line": 111,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/decision/exit",
"outcome": "exit",
"line": 111,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/statement/0/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 112,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/statement/0/value/decision/skip-right",
"outcome": "skip-right",
"line": 112,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/statement/0/value/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 112,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/statement/0/value/left/decision/skip-right",
"outcome": "skip-right",
"line": 112,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/statement/0/value/left/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 112,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/statement/0/value/left/left/decision/skip-right",
"outcome": "skip-right",
"line": 112,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/statement/0/value/left/left/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 112,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/statement/0/value/left/left/left/decision/skip-right",
"outcome": "skip-right",
"line": 112,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/statement/0/value/left/left/right/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 112,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/statement/0/value/left/left/right/decision/skip-right",
"outcome": "skip-right",
"line": 112,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/statement/3/value/arm/0",
"outcome": "Error",
"line": 117,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/statement/3/value/arm/1",
"outcome": "Ok",
"line": 117,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/statement/4/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 119,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/statement/4/value/decision/skip-right",
"outcome": "skip-right",
"line": 119,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/statement/4/value/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 119,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/statement/4/value/left/decision/skip-right",
"outcome": "skip-right",
"line": 119,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/statement/4/value/left/right/decision/true",
"outcome": "true",
"line": 119,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/statement/4/value/left/right/decision/false",
"outcome": "false",
"line": 119,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/statement/4/value/left/right/false/tail/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 120,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/statement/4/value/left/right/false/tail/decision/skip-right",
"outcome": "skip-right",
"line": 120,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/statement/4/value/left/right/false/tail/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 120,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/statement/4/value/left/right/false/tail/left/decision/skip-right",
"outcome": "skip-right",
"line": 120,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/statement/4/value/left/right/false/tail/left/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 120,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/statement/4/value/left/right/false/tail/left/left/decision/skip-right",
"outcome": "skip-right",
"line": 120,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/tail/decision/true",
"outcome": "true",
"line": 122,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/tail/decision/false",
"outcome": "false",
"line": 122,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/tail/true/tail/arm/0",
"outcome": "Error",
"line": 124,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/tail/true/tail/arm/1",
"outcome": "Ok",
"line": 125,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/tail/true/tail/arm/1/body/block/statement/1/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 127,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/tail/true/tail/arm/1/body/block/statement/1/value/decision/skip-right",
"outcome": "skip-right",
"line": 127,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/tail/true/tail/arm/1/body/block/statement/4/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 130,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/tail/true/tail/arm/1/body/block/statement/4/value/decision/skip-right",
"outcome": "skip-right",
"line": 130,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/tail/true/tail/arm/1/body/block/statement/4/value/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 130,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/tail/true/tail/arm/1/body/block/statement/4/value/left/decision/skip-right",
"outcome": "skip-right",
"line": 130,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/tail/true/tail/arm/1/body/block/tail/decision/true",
"outcome": "true",
"line": 131,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/tail/true/tail/arm/1/body/block/tail/decision/false",
"outcome": "false",
"line": 131,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/tail/true/tail/arm/1/body/block/tail/true/statement/3/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 135,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/tail/true/tail/arm/1/body/block/tail/true/statement/3/value/decision/skip-right",
"outcome": "skip-right",
"line": 135,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/tail/true/tail/arm/1/body/block/tail/true/statement/4/value/decision/true",
"outcome": "true",
"line": 136,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/tail/true/tail/arm/1/body/block/tail/true/statement/4/value/decision/false",
"outcome": "false",
"line": 136,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/tail/true/tail/arm/1/body/block/tail/true/statement/4/value/true/statement/0/decision/body",
"outcome": "body",
"line": 137,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/tail/true/tail/arm/1/body/block/tail/true/statement/4/value/true/statement/0/decision/exit",
"outcome": "exit",
"line": 137,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/tail/true/tail/arm/1/body/block/tail/true/statement/4/value/true/statement/0/body/statement/0/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 137,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/tail/true/tail/arm/1/body/block/tail/true/statement/4/value/true/statement/0/body/statement/0/value/decision/skip-right",
"outcome": "skip-right",
"line": 137,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/tail/true/tail/arm/1/body/block/tail/true/tail/decision/true",
"outcome": "true",
"line": 139,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/tail/true/tail/arm/1/body/block/tail/true/tail/decision/false",
"outcome": "false",
"line": 139,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/tail/true/tail/arm/1/body/block/tail/true/tail/true/statement/4/decision/body",
"outcome": "body",
"line": 144,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/tail/true/tail/arm/1/body/block/tail/true/tail/true/statement/4/decision/exit",
"outcome": "exit",
"line": 144,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/tail/true/tail/arm/1/body/block/tail/true/tail/true/statement/4/body/statement/0/value/decision/true",
"outcome": "true",
"line": 145,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/tail/true/tail/arm/1/body/block/tail/true/tail/true/statement/4/body/statement/0/value/decision/false",
"outcome": "false",
"line": 145,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/tail/true/tail/arm/1/body/block/tail/true/tail/true/statement/4/body/statement/1/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 146,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/13/body/tail/true/tail/arm/1/body/block/tail/true/tail/true/statement/4/body/statement/1/value/decision/skip-right",
"outcome": "skip-right",
"line": 146,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/14/value/arm/0",
"outcome": "Error",
"line": 159,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/14/value/arm/1",
"outcome": "Ok",
"line": 159,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/14/value/arm/1/body/arm/0",
"outcome": "Error",
"line": 160,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/14/value/arm/1/body/arm/1",
"outcome": "Ok",
"line": 160,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/14/value/arm/1/body/arm/1/body/block/statement/0/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 160,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/14/value/arm/1/body/arm/1/body/block/statement/0/value/decision/skip-right",
"outcome": "skip-right",
"line": 160,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/tail/args/0/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 163,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/tail/args/0/decision/skip-right",
"outcome": "skip-right",
"line": 163,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/tail/args/0/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 163,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/tail/args/0/left/decision/skip-right",
"outcome": "skip-right",
"line": 163,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/5/decision/body",
"outcome": "body",
"line": 173,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/5/decision/exit",
"outcome": "exit",
"line": 173,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/5/body/tail/decision/true",
"outcome": "true",
"line": 174,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/5/body/tail/decision/false",
"outcome": "false",
"line": 174,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/5/body/tail/condition/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 174,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/5/body/tail/condition/decision/skip-right",
"outcome": "skip-right",
"line": 174,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/5/body/tail/condition/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 174,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/5/body/tail/condition/left/decision/skip-right",
"outcome": "skip-right",
"line": 174,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/5/body/tail/false/tail/decision/true",
"outcome": "true",
"line": 178,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/5/body/tail/false/tail/decision/false",
"outcome": "false",
"line": 178,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/5/body/tail/false/tail/condition/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 178,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/5/body/tail/false/tail/condition/decision/skip-right",
"outcome": "skip-right",
"line": 178,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/6/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 183,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/6/value/decision/skip-right",
"outcome": "skip-right",
"line": 183,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/6/value/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 183,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/6/value/left/decision/skip-right",
"outcome": "skip-right",
"line": 183,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/6/value/left/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 183,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/6/value/left/left/decision/skip-right",
"outcome": "skip-right",
"line": 183,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/6/value/left/left/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 183,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/6/value/left/left/left/decision/skip-right",
"outcome": "skip-right",
"line": 183,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/10/value/arm/0",
"outcome": "Error",
"line": 188,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/10/value/arm/1",
"outcome": "Ok",
"line": 188,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/10/value/arm/1/body/block/statement/0/value/decision/true",
"outcome": "true",
"line": 189,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/10/value/arm/1/body/block/statement/0/value/decision/false",
"outcome": "false",
"line": 189,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/10/value/arm/1/body/block/statement/0/value/true/statement/0/decision/body",
"outcome": "body",
"line": 190,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/10/value/arm/1/body/block/statement/0/value/true/statement/0/decision/exit",
"outcome": "exit",
"line": 190,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/10/value/arm/1/body/block/statement/0/value/true/statement/0/body/statement/8/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 199,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/10/value/arm/1/body/block/statement/0/value/true/statement/0/body/statement/8/value/decision/skip-right",
"outcome": "skip-right",
"line": 199,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/10/value/arm/1/body/block/statement/0/value/true/statement/0/body/statement/8/value/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 199,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/10/value/arm/1/body/block/statement/0/value/true/statement/0/body/statement/8/value/left/decision/skip-right",
"outcome": "skip-right",
"line": 199,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/10/value/arm/1/body/block/statement/0/value/true/statement/0/body/statement/8/value/left/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 199,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/10/value/arm/1/body/block/statement/0/value/true/statement/0/body/statement/8/value/left/left/decision/skip-right",
"outcome": "skip-right",
"line": 199,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/10/value/arm/1/body/block/statement/0/value/true/statement/0/body/statement/8/value/left/left/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 199,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/10/value/arm/1/body/block/statement/0/value/true/statement/0/body/statement/8/value/left/left/left/decision/skip-right",
"outcome": "skip-right",
"line": 199,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/10/value/arm/1/body/block/statement/0/value/true/statement/0/body/statement/9/decision/body",
"outcome": "body",
"line": 201,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/10/value/arm/1/body/block/statement/0/value/true/statement/0/body/statement/9/decision/exit",
"outcome": "exit",
"line": 201,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/10/value/arm/1/body/block/statement/0/value/true/statement/0/body/statement/9/body/statement/0/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 201,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/10/value/arm/1/body/block/statement/0/value/true/statement/0/body/statement/9/body/statement/0/value/decision/skip-right",
"outcome": "skip-right",
"line": 201,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/10/value/arm/1/body/block/statement/1/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 206,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/10/value/arm/1/body/block/statement/1/value/decision/skip-right",
"outcome": "skip-right",
"line": 206,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/13/value/decision/true",
"outcome": "true",
"line": 211,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/13/value/decision/false",
"outcome": "false",
"line": 211,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/13/value/true/statement/0/decision/body",
"outcome": "body",
"line": 212,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/13/value/true/statement/0/decision/exit",
"outcome": "exit",
"line": 212,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/13/value/true/statement/0/body/statement/1/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 214,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/13/value/true/statement/0/body/statement/1/value/decision/skip-right",
"outcome": "skip-right",
"line": 214,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/13/value/true/statement/0/body/statement/2/decision/body",
"outcome": "body",
"line": 215,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/13/value/true/statement/0/body/statement/2/decision/exit",
"outcome": "exit",
"line": 215,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/13/value/true/statement/0/body/statement/2/body/statement/0/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 215,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/13/value/true/statement/0/body/statement/2/body/statement/0/value/decision/skip-right",
"outcome": "skip-right",
"line": 215,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/13/value/true/statement/0/body/tail/decision/true",
"outcome": "true",
"line": 217,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/13/value/true/statement/0/body/tail/decision/false",
"outcome": "false",
"line": 217,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/13/value/true/statement/0/body/tail/true/statement/1/decision/body",
"outcome": "body",
"line": 219,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/13/value/true/statement/0/body/tail/true/statement/1/decision/exit",
"outcome": "exit",
"line": 219,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/13/value/true/statement/0/body/tail/true/statement/1/body/statement/1/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 221,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/13/value/true/statement/0/body/tail/true/statement/1/body/statement/1/value/decision/skip-right",
"outcome": "skip-right",
"line": 221,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/14/decision/body",
"outcome": "body",
"line": 231,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/14/decision/exit",
"outcome": "exit",
"line": 231,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/14/body/statement/0/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 231,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/statement/14/body/statement/0/value/decision/skip-right",
"outcome": "skip-right",
"line": 231,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/tail/decision/true",
"outcome": "true",
"line": 232,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/tail/decision/false",
"outcome": "false",
"line": 232,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/tail/false/statement/2/decision/body",
"outcome": "body",
"line": 238,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/8/tail/false/statement/2/decision/exit",
"outcome": "exit",
"line": 238,
"state": "zero",
"hits": "0"
}
]Reviewed declaration exclusions
[
{
"id": "declaration/0",
"reason": "import",
"line": 1
},
{
"id": "declaration/1",
"reason": "record-declaration",
"line": 3
},
{
"id": "declaration/2",
"reason": "record-declaration",
"line": 7
}
]