src/compiler/coverage.panack
Green: covered; red: known zero; amber: unavailable. Blank lines are outside the executable-start-line denominator.
1 import "source_inventory.panack" 2 3 record CoverageCell { attempted: Nat, completed: Nat, fallthrough: Nat, branched: Nat } 4 record CoverageFunction { entries: Nat, cells: [CoverageCell] } 5 record CoverageData { valid: Bool, terminal: Nat, functions: [CoverageFunction] } 6 7 pure coverage_number(data: Bytes, offset: Nat, width: Nat): Nat { 8 mut value: Nat = 0 9 for index in 0..width { value = value * 256 + byte_get(data, offset + index); } 10 value 11 } 12 13 pure coverage_prefix(data: Bytes, expected: Bytes, offset: Nat): Bool { 14 mut valid: Bool = offset + byte_len(expected) <= byte_len(data) 15 if valid { 16 for index in 0..byte_len(expected) { 17 valid = valid && byte_get(data, offset + index) == byte_get(expected, index) 18 } 19 } 20 valid 21 } 22 23 // Layout is derived solely from locally compiled code; no foreign sizes or paths 24 // are trusted. Exact artifact + inventory bytes bind observations to SC2 IDs. 25 pure decode_coverage(data: Bytes, artifact: Bytes, inventory: Bytes, program: BytecodeProgram): CoverageData { 26 decode_coverage_at(data, artifact, inventory, program, 0) 27 } 28 29 pure decode_coverage_at(data: Bytes, artifact: Bytes, inventory: Bytes, program: BytecodeProgram, offset: Nat): CoverageData { 30 prefix: Bytes = source_map_join([utf8_encode("PANACKCOV1\n"), source_map_blob(artifact), 31 source_map_blob(inventory), encode_u32(len(program.functions))], 0, 4) 32 mut size: Nat = byte_len(prefix) + 6 33 for function in sort_functions(program.functions) { size = size + 12 + len(function.instructions) * 32; } 34 mut valid: Bool = size <= 16777216 && byte_len(data) == size + offset && coverage_prefix(data, prefix, offset) 35 mut functions: [CoverageFunction] = [] 36 mut terminal: Nat = 0 37 if valid { 38 mut cursor: Nat = offset + byte_len(prefix) 39 for function in sort_functions(program.functions) { 40 entries: Nat = coverage_number(data, cursor, 8) 41 valid = valid && coverage_number(data, cursor + 8, 4) == len(function.instructions) 42 cursor = cursor + 12 43 mut cells: [CoverageCell] = [] 44 for instruction in function.instructions { 45 cell: CoverageCell = CoverageCell(coverage_number(data, cursor, 8), coverage_number(data, cursor + 8, 8), 46 coverage_number(data, cursor + 16, 8), coverage_number(data, cursor + 24, 8)) 47 valid = valid && cell.completed <= cell.attempted 48 edge: CoverageEdge = coverage_edge(instruction, 0) 49 if edge.conditional { valid = valid && cell.fallthrough + cell.branched == cell.completed; } 50 else { valid = valid && cell.fallthrough == 0 && cell.branched == 0; } 51 cells = append(cells, cell) 52 cursor = cursor + 32 53 } 54 functions = append(functions, CoverageFunction(entries, cells)) 55 } 56 terminal = byte_get(data, cursor + 4) 57 valid = valid && coverage_prefix(data, utf8_encode("END\n"), cursor) && 58 (terminal == 1 || terminal == 2 || terminal == 3) && byte_get(data, cursor + 5) == 0 59 } 60 CoverageData(valid, terminal, functions) 61 } 62 63 record CoverageEdge { conditional: Bool, target: Nat, falls: Bool } 64 65 pure coverage_edge(instruction: Instruction, pc: Nat): CoverageEdge { 66 match instruction { 67 ConstInstruction(a0) => CoverageEdge(false, pc + 1, true), 68 LoadInstruction(a0) => CoverageEdge(false, pc + 1, true), 69 StoreInstruction(a0) => CoverageEdge(false, pc + 1, true), 70 PopInstruction() => CoverageEdge(false, pc + 1, true), 71 UnaryInstruction(a0) => CoverageEdge(false, pc + 1, true), 72 BinaryInstruction(a0) => CoverageEdge(false, pc + 1, true), 73 MakeRangeInstruction() => CoverageEdge(false, pc + 1, true), 74 MakeArrayInstruction(a0) => CoverageEdge(false, pc + 1, true), 75 IndexGetInstruction() => CoverageEdge(false, pc + 1, true), 76 InterpolateInstruction(a0) => CoverageEdge(false, pc + 1, true), 77 IterInitInstruction(a0) => CoverageEdge(false, pc + 1, true), 78 IterNextInstruction(a0, a1, a2) => CoverageEdge(true, a2, true), 79 MakeRecordInstruction(a0, a1) => CoverageEdge(false, pc + 1, true), 80 FieldGetInstruction(a0) => CoverageEdge(false, pc + 1, true), 81 MakeVariantInstruction(a0, a1, a2) => CoverageEdge(false, pc + 1, true), 82 MatchVariantInstruction(a0, a1) => CoverageEdge(true, a1, true), 83 MatchFailInstruction() => CoverageEdge(false, pc, false), 84 CallInstruction(a0, a1) => CoverageEdge(false, pc + 1, true), 85 CallValueInstruction(a0) => CoverageEdge(false, pc + 1, true), 86 AwaitCallInstruction(a0, a1) => CoverageEdge(false, pc + 1, true), 87 AwaitValueInstruction(a0) => CoverageEdge(false, pc + 1, true), 88 JumpFalseInstruction(a0) => CoverageEdge(true, a0, true), 89 JumpInstruction(a0) => CoverageEdge(false, a0, false), 90 PendingEndJumpInstruction() => CoverageEdge(false, pc, false), 91 ReturnInstruction() => CoverageEdge(false, pc, false) 92 } 93 } 94 95 pure coverage_same_span(left: SourceSpan, right: SourceSpan): Bool { 96 left.start.file == right.start.file && left.start.offset == right.start.offset && left.end.offset == right.end.offset 97 } 98 99 // Index completed incoming edges once per function. Both expression entry and 100 // completion are queries against a target PC; rescanning a large function for 101 // every source item makes compiler-sized reports unnecessarily quadratic. 102 record CoverageIncoming { source: Nat, count: Nat } 103 pure coverage_add_incoming(index: Map[Nat,[CoverageIncoming]], target: Nat, source: Nat, count: Nat): Map[Nat,[CoverageIncoming]] { 104 if count == 0 { index } else { 105 prior: [CoverageIncoming] = if index.has(target) { index.get(target) } else { [] } 106 index.put(target, append(prior, CoverageIncoming(source, count))) 107 } 108 } 109 pure coverage_incoming(code: FunctionCode, data: CoverageFunction): Map[Nat,[CoverageIncoming]] { 110 mut index: Map[Nat,[CoverageIncoming]] = map() 111 for pc in 0..len(code.instructions) { 112 edge: CoverageEdge = coverage_edge(code.instructions[pc], pc) 113 cell: CoverageCell = data.cells[pc] 114 if edge.conditional { 115 index = coverage_add_incoming(index, pc + 1, pc, cell.fallthrough) 116 index = coverage_add_incoming(index, edge.target, pc, cell.branched) 117 } else { index = coverage_add_incoming(index, edge.target, pc, cell.completed); } 118 } 119 index 120 } 121 pure coverage_attempted_indexed(probe: EmissionProbe, entries: Nat, index: Map[Nat,[CoverageIncoming]]): Nat { 122 mut count: Nat = if probe.start == 0 { entries } else { 0 } 123 if index.has(probe.start) { 124 for edge in index.get(probe.start) { 125 if edge.source < probe.start || edge.source >= probe.end { count = count + edge.count; } 126 } 127 } 128 count 129 } 130 pure coverage_completed_indexed(probe: EmissionProbe, index: Map[Nat,[CoverageIncoming]]): Nat { 131 mut count: Nat = 0 132 if index.has(probe.end) { 133 for edge in index.get(probe.end) { 134 if edge.source >= probe.start && edge.source < probe.end { count = count + edge.count; } 135 } 136 } 137 count 138 } 139 140 // A loop inside a block expression may jump back to its first PC. Count entries 141 // from outside the interval, not redispatches of that PC from inside the block. 142 pure coverage_attempted(probe: EmissionProbe, code: FunctionCode, data: CoverageFunction): Nat { 143 mut count: Nat = if probe.start == 0 { data.entries } else { 0 } 144 for pc in 0..len(code.instructions) { 145 if pc < probe.start || pc >= probe.end { 146 cell: CoverageCell = data.cells[pc] 147 edge: CoverageEdge = coverage_edge(code.instructions[pc], pc) 148 if edge.conditional { 149 if pc + 1 == probe.start { count = count + cell.fallthrough; } 150 if edge.target == probe.start { count = count + cell.branched; } 151 } else { 152 if edge.target == probe.start { count = count + cell.completed; } 153 } 154 } 155 } 156 count 157 } 158 159 // Count successful edges leaving this expression's own interval. Looking only 160 // at the destination PC would falsely complete an untaken sibling expression. 161 pure coverage_completed(probe: EmissionProbe, code: FunctionCode, data: CoverageFunction): Nat { 162 mut count: Nat = 0 163 for pc in probe.start..probe.end { 164 cell: CoverageCell = data.cells[pc] 165 edge: CoverageEdge = coverage_edge(code.instructions[pc], pc) 166 if edge.conditional { 167 if pc + 1 == probe.end { count = count + cell.fallthrough; } 168 if edge.target == probe.end { count = count + cell.branched; } 169 } else { 170 if edge.target == probe.end { count = count + cell.completed; } 171 } 172 } 173 count 174 } 175 176 pure coverage_function_name(declaration: TopLevel): Str { 177 match declaration { 178 FunctionDeclaration(name, parameters, result, pure_effect, async_effect, body, types) => name, 179 ImportDeclaration(path) => "", TypeDeclaration(name, base, guard) => "", 180 RecordDeclaration(name, types, fields) => "", EnumDeclaration(name, types, variants) => "" 181 } 182 } 183 184 pure coverage_item_kind(item: InventoryItem, items: [InventoryItem]): Str { 185 if item.kind == "expression" || item.kind == "statement" { "expression" } 186 else { if item.kind == "decision" { if item.detail == "match" { "expression" } else { item.detail } } 187 else { 188 mut kind: Str = "arm:" + item.detail 189 for candidate in items { 190 if candidate.kind == "decision" && item.id == candidate.id + "/" + item.detail { 191 kind = candidate.detail 192 } 193 } 194 kind 195 } } 196 } 197 198 pure coverage_text_join(chunks: [Str], start: Nat, end: Nat): Str { 199 if start == end { "" } else { if end == start + 1 { chunks[start] } else { 200 middle: Nat = quotient(start + end, 2) 201 coverage_text_join(chunks, start, middle) + coverage_text_join(chunks, middle, end) 202 } } 203 } 204 205 pure coverage_probe_key(kind: Str, span: SourceSpan): Str { 206 start: Nat = span.start.offset 207 end: Nat = span.end.offset 208 kind + "\t" + source_map_escape(span.start.file) + "\t${start}\t${end}" 209 } 210 211 pure render_coverage(project: LoadedProject, mapped: SourceMappedProgram, data: CoverageData, root: Str, stdlib: Str): Str { 212 terminal: Nat = data.terminal 213 mut rows: [Str] = ["coverage: single-execution terminal=${terminal}\n"] 214 codes: [FunctionCode] = sort_functions(mapped.bytecode.functions) 215 mut incoming: [Map[Nat,[CoverageIncoming]]] = [] 216 for i in 0..len(codes) { incoming = append(incoming, coverage_incoming(codes[i], data.functions[i])); } 217 mut code_indices: Map[Str,Nat] = map() 218 for i in 0..len(codes) { code_indices = code_indices.put(codes[i].name, i); } 219 mut probe_index: Map[Str,Map[Str,[EmissionProbe]]] = map() 220 for mapping in mapped.probes { 221 mut probes: Map[Str,[EmissionProbe]] = if probe_index.has(mapping.name) { probe_index.get(mapping.name) } else { map() } 222 for probe in mapping.entries { 223 key: Str = coverage_probe_key(probe.kind, probe.span) 224 prior: [EmissionProbe] = if probes.has(key) { probes.get(key) } else { [] } 225 probes = probes.put(key, append(prior, probe)) 226 } 227 probe_index = probe_index.put(mapping.name, probes) 228 } 229 for snapshot in source_snapshots(project, root, stdlib) { 230 for module in project.modules { 231 if module.source_path == snapshot.path { 232 items: [InventoryItem] = inventory_module(module) 233 mut function_name: Str = "" 234 mut declaration_index: Nat = 0 235 mut lines: Map[Nat,Bool] = map() 236 mut line_order: [Nat] = [] 237 mut line_states: Map[Nat,Str] = map() 238 for item in items { 239 if item.kind == "function" || item.kind == "excluded" { 240 while declaration_index < len(module.parsed.program.declarations) && item.id != "declaration/${declaration_index}" { 241 declaration_index = declaration_index + 1 242 } 243 if declaration_index < len(module.execution_program.declarations) { 244 function_name = coverage_function_name(module.execution_program.declarations[declaration_index]) 245 } 246 } 247 mut state: Str = if item.kind == "excluded" { "excluded" } else { "not-emitted" } 248 mut attempted: Nat = 0 249 mut completed: Nat = 0 250 if code_indices.has(function_name) && item.kind != "excluded" { 251 function_index: Nat = code_indices.get(function_name) 252 code: FunctionCode = codes[function_index] 253 observed: CoverageFunction = data.functions[function_index] 254 if item.kind == "function" { 255 state = "observed" 256 attempted = observed.entries 257 for pc in 0..len(code.instructions) { 258 match code.instructions[pc] { 259 ReturnInstruction() => { completed = completed + observed.cells[pc].completed; }, 260 ConstInstruction(a0) => {}, 261 LoadInstruction(a0) => {}, 262 StoreInstruction(a0) => {}, 263 PopInstruction() => {}, 264 UnaryInstruction(a0) => {}, 265 BinaryInstruction(a0) => {}, 266 MakeRangeInstruction() => {}, 267 MakeArrayInstruction(a0) => {}, 268 IndexGetInstruction() => {}, 269 InterpolateInstruction(a0) => {}, 270 IterInitInstruction(a0) => {}, 271 IterNextInstruction(a0, a1, a2) => {}, 272 MakeRecordInstruction(a0, a1) => {}, 273 FieldGetInstruction(a0) => {}, 274 MakeVariantInstruction(a0, a1, a2) => {}, 275 MatchVariantInstruction(a0, a1) => {}, 276 MatchFailInstruction() => {}, 277 CallInstruction(a0, a1) => {}, 278 CallValueInstruction(a0) => {}, 279 AwaitCallInstruction(a0, a1) => {}, 280 AwaitValueInstruction(a0) => {}, 281 JumpFalseInstruction(a0) => {}, 282 JumpInstruction(a0) => {}, 283 PendingEndJumpInstruction() => {} 284 } 285 } 286 } else { 287 state = "unavailable" 288 kind: Str = coverage_item_kind(item, items) 289 mut matches: Nat = 0 290 if probe_index.has(code.name) { 291 probes: Map[Str,[EmissionProbe]] = probe_index.get(code.name) 292 key: Str = coverage_probe_key(kind, item.span) 293 if probes.has(key) { 294 candidates: [EmissionProbe] = probes.get(key) 295 matches = len(candidates) 296 if matches == 1 { 297 probe: EmissionProbe = candidates[0] 298 cell: CoverageCell = observed.cells[probe.start] 299 attempted = if kind == "expression" { coverage_attempted_indexed(probe, observed.entries, incoming[function_index]) } else { cell.attempted } 300 completed = if kind == "expression" { coverage_completed_indexed(probe, incoming[function_index]) } else { cell.completed } 301 if item.kind == "outcome" { 302 take_branch: Bool = item.detail == "false" || item.detail == "exit" || 303 (kind == "&&" && item.detail == "skip-right") || (kind == "||" && item.detail == "evaluate-right") 304 attempted = if take_branch { cell.branched } else { cell.fallthrough } 305 completed = attempted 306 } 307 } 308 } 309 } 310 if matches == 1 { state = "observed"; } else { attempted = 0; completed = 0; } 311 } 312 } 313 file: Str = source_map_escape(snapshot.name) 314 rows = append(rows, file + "\t" + item.id + "\t" + item.kind + "\t" + item.detail + "\t${state}\t${attempted}\t${completed}\n") 315 if item.kind == "expression" || item.kind == "statement" { 316 line: Nat = item.span.start.line 317 reached: Bool = (state == "observed" && attempted > 0) || (lines.has(line) && lines.get(line)) 318 prior_state: Str = if line_states.has(line) { line_states.get(line) } else { state } 319 line_states = line_states.put(line, if prior_state == state { state } else { "unavailable" }) 320 if !lines.has(line) { line_order = append(line_order, line); } 321 lines = lines.put(line, reached) 322 } 323 } 324 for line in line_order { 325 rows = append(rows, source_map_escape(snapshot.name) + "\tline/${line}\tline\tanchor\t" + (if lines.get(line) { "observed" } else { line_states.get(line) }) + "\t" + 326 (if lines.get(line) { "1" } else { "0" }) + "\n") 327 } 328 } 329 } 330 } 331 coverage_text_join(rows, 0, len(rows)) 332 } 333 334 run_coverage_report(values: [Str]): Nat { 335 if len(values) != 6 || values[2] != "--inventory" || values[4] != "--coverage" { 336 eprint("error: coverage-report SOURCE.panack --inventory FILE --coverage RAW") 337 1 338 } else { 339 entry: Str = path_resolve(values[1]) 340 root: Str = path_parent(entry) 341 stdlib: Str = path_resolve(environment_get("PANACKELTY_STDLIB_PATH")) 342 compiler_path: Str = environment_get("PANACKELTY_COMPILER_PATH") 343 project: LoadedProject = load_project_for_inventory(entry) 344 match source_map_read(compiler_path, 16777216) { 345 Error(error) => { eprint("error: coverage compiler unavailable"); 1 }, 346 Ok(compiler) => { 347 mapped: SourceMappedProgram = compile_program_with_sources(project.program) 348 artifact: Bytes = serialize_bytecode(mapped.bytecode) 349 inner: Bytes = serialize_source_inventory(project, artifact, compiler, entry, root, stdlib) 350 inventory: Bytes = source_map_join([utf8_encode("PANACKINVENTORY1\n"), encode_u32(1), source_map_blob(inner)], 0, 3) 351 if len(project.diagnostics) > 0 || byte_len(inner) == 0 || !source_map_matches(values[3], inventory) || 352 !source_snapshots_unchanged(project) || !source_map_matches(compiler_path, compiler) { 353 eprint("error: coverage unavailable: invalid, changed or incompatible local inventory") 354 1 355 } else { 356 match source_map_read(values[5], 16777216) { 357 Error(error) => { eprint("error: coverage raw record unavailable"); 1 }, 358 Ok(raw) => { 359 data: CoverageData = decode_coverage(raw, artifact, inventory, mapped.bytecode) 360 if !data.valid { eprint("error: coverage unavailable: malformed, incomplete, stale, overflowed or uncollected execution"); 1 } 361 else { print(render_coverage(project, mapped, data, root, stdlib)); 0 } 362 } 363 } 364 } 365 } 366 } 367 } 368 } 369
Functions
[
{
"id": "declaration/4",
"name": "coverage_number",
"line": 7,
"state": "covered",
"entries": "66"
},
{
"id": "declaration/5",
"name": "coverage_prefix",
"line": 13,
"state": "covered",
"entries": "21"
},
{
"id": "declaration/6",
"name": "decode_coverage",
"line": 25,
"state": "covered",
"entries": "15"
},
{
"id": "declaration/7",
"name": "decode_coverage_at",
"line": 29,
"state": "covered",
"entries": "15"
},
{
"id": "declaration/9",
"name": "coverage_edge",
"line": 65,
"state": "covered",
"entries": "100"
},
{
"id": "declaration/10",
"name": "coverage_same_span",
"line": 95,
"state": "zero",
"entries": "0"
},
{
"id": "declaration/12",
"name": "coverage_add_incoming",
"line": 103,
"state": "covered",
"entries": "91"
},
{
"id": "declaration/13",
"name": "coverage_incoming",
"line": 109,
"state": "covered",
"entries": "6"
},
{
"id": "declaration/14",
"name": "coverage_attempted_indexed",
"line": 121,
"state": "covered",
"entries": "2"
},
{
"id": "declaration/15",
"name": "coverage_completed_indexed",
"line": 130,
"state": "covered",
"entries": "1"
},
{
"id": "declaration/16",
"name": "coverage_attempted",
"line": 142,
"state": "covered",
"entries": "2"
},
{
"id": "declaration/17",
"name": "coverage_completed",
"line": 161,
"state": "zero",
"entries": "0"
},
{
"id": "declaration/18",
"name": "coverage_function_name",
"line": 176,
"state": "covered",
"entries": "14"
},
{
"id": "declaration/19",
"name": "coverage_item_kind",
"line": 184,
"state": "covered",
"entries": "69"
},
{
"id": "declaration/20",
"name": "coverage_text_join",
"line": 198,
"state": "covered",
"entries": "633"
},
{
"id": "declaration/21",
"name": "coverage_probe_key",
"line": 205,
"state": "zero",
"entries": "0"
},
{
"id": "declaration/22",
"name": "render_coverage",
"line": 211,
"state": "covered",
"entries": "1"
},
{
"id": "declaration/23",
"name": "run_coverage_report",
"line": 334,
"state": "zero",
"entries": "0"
}
]Source branch outcomes
[
{
"id": "declaration/4/statement/1/decision/body",
"outcome": "body",
"line": 9,
"state": "covered",
"hits": "484"
},
{
"id": "declaration/4/statement/1/decision/exit",
"outcome": "exit",
"line": 9,
"state": "covered",
"hits": "66"
},
{
"id": "declaration/5/statement/1/value/decision/true",
"outcome": "true",
"line": 15,
"state": "covered",
"hits": "21"
},
{
"id": "declaration/5/statement/1/value/decision/false",
"outcome": "false",
"line": 15,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/5/statement/1/value/true/statement/0/decision/body",
"outcome": "body",
"line": 16,
"state": "covered",
"hits": "357"
},
{
"id": "declaration/5/statement/1/value/true/statement/0/decision/exit",
"outcome": "exit",
"line": 16,
"state": "covered",
"hits": "21"
},
{
"id": "declaration/5/statement/1/value/true/statement/0/body/statement/0/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 17,
"state": "covered",
"hits": "344"
},
{
"id": "declaration/5/statement/1/value/true/statement/0/body/statement/0/value/decision/skip-right",
"outcome": "skip-right",
"line": 17,
"state": "covered",
"hits": "13"
},
{
"id": "declaration/7/statement/2/decision/body",
"outcome": "body",
"line": 33,
"state": "covered",
"hits": "15"
},
{
"id": "declaration/7/statement/2/decision/exit",
"outcome": "exit",
"line": 33,
"state": "covered",
"hits": "15"
},
{
"id": "declaration/7/statement/3/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 34,
"state": "covered",
"hits": "13"
},
{
"id": "declaration/7/statement/3/value/decision/skip-right",
"outcome": "skip-right",
"line": 34,
"state": "covered",
"hits": "2"
},
{
"id": "declaration/7/statement/3/value/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 34,
"state": "covered",
"hits": "15"
},
{
"id": "declaration/7/statement/3/value/left/decision/skip-right",
"outcome": "skip-right",
"line": 34,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/6/value/decision/true",
"outcome": "true",
"line": 37,
"state": "covered",
"hits": "11"
},
{
"id": "declaration/7/statement/6/value/decision/false",
"outcome": "false",
"line": 37,
"state": "covered",
"hits": "4"
},
{
"id": "declaration/7/statement/6/value/true/statement/1/decision/body",
"outcome": "body",
"line": 39,
"state": "covered",
"hits": "11"
},
{
"id": "declaration/7/statement/6/value/true/statement/1/decision/exit",
"outcome": "exit",
"line": 39,
"state": "covered",
"hits": "11"
},
{
"id": "declaration/7/statement/6/value/true/statement/1/body/statement/1/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 41,
"state": "covered",
"hits": "11"
},
{
"id": "declaration/7/statement/6/value/true/statement/1/body/statement/1/value/decision/skip-right",
"outcome": "skip-right",
"line": 41,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/6/value/true/statement/1/body/statement/4/decision/body",
"outcome": "body",
"line": 44,
"state": "covered",
"hits": "11"
},
{
"id": "declaration/7/statement/6/value/true/statement/1/body/statement/4/decision/exit",
"outcome": "exit",
"line": 44,
"state": "covered",
"hits": "11"
},
{
"id": "declaration/7/statement/6/value/true/statement/1/body/statement/4/body/statement/1/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 47,
"state": "covered",
"hits": "11"
},
{
"id": "declaration/7/statement/6/value/true/statement/1/body/statement/4/body/statement/1/value/decision/skip-right",
"outcome": "skip-right",
"line": 47,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/6/value/true/statement/1/body/statement/4/body/statement/3/value/decision/true",
"outcome": "true",
"line": 49,
"state": "covered",
"hits": "11"
},
{
"id": "declaration/7/statement/6/value/true/statement/1/body/statement/4/body/statement/3/value/decision/false",
"outcome": "false",
"line": 49,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/6/value/true/statement/1/body/statement/4/body/statement/3/value/true/statement/0/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 49,
"state": "covered",
"hits": "10"
},
{
"id": "declaration/7/statement/6/value/true/statement/1/body/statement/4/body/statement/3/value/true/statement/0/value/decision/skip-right",
"outcome": "skip-right",
"line": 49,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/7/statement/6/value/true/statement/1/body/statement/4/body/statement/3/value/false/statement/0/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 50,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/6/value/true/statement/1/body/statement/4/body/statement/3/value/false/statement/0/value/decision/skip-right",
"outcome": "skip-right",
"line": 50,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/6/value/true/statement/1/body/statement/4/body/statement/3/value/false/statement/0/value/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 50,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/6/value/true/statement/1/body/statement/4/body/statement/3/value/false/statement/0/value/left/decision/skip-right",
"outcome": "skip-right",
"line": 50,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/7/statement/6/value/true/statement/3/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 57,
"state": "covered",
"hits": "5"
},
{
"id": "declaration/7/statement/6/value/true/statement/3/value/decision/skip-right",
"outcome": "skip-right",
"line": 57,
"state": "covered",
"hits": "6"
},
{
"id": "declaration/7/statement/6/value/true/statement/3/value/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 57,
"state": "covered",
"hits": "8"
},
{
"id": "declaration/7/statement/6/value/true/statement/3/value/left/decision/skip-right",
"outcome": "skip-right",
"line": 57,
"state": "covered",
"hits": "3"
},
{
"id": "declaration/7/statement/6/value/true/statement/3/value/left/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 57,
"state": "covered",
"hits": "8"
},
{
"id": "declaration/7/statement/6/value/true/statement/3/value/left/left/decision/skip-right",
"outcome": "skip-right",
"line": 57,
"state": "covered",
"hits": "3"
},
{
"id": "declaration/7/statement/6/value/true/statement/3/value/left/right/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 58,
"state": "covered",
"hits": "3"
},
{
"id": "declaration/7/statement/6/value/true/statement/3/value/left/right/decision/skip-right",
"outcome": "skip-right",
"line": 58,
"state": "covered",
"hits": "5"
},
{
"id": "declaration/7/statement/6/value/true/statement/3/value/left/right/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 58,
"state": "covered",
"hits": "3"
},
{
"id": "declaration/7/statement/6/value/true/statement/3/value/left/right/left/decision/skip-right",
"outcome": "skip-right",
"line": 58,
"state": "covered",
"hits": "5"
},
{
"id": "declaration/9/tail/arm/0",
"outcome": "ConstInstruction",
"line": 67,
"state": "covered",
"hits": "27"
},
{
"id": "declaration/9/tail/arm/1",
"outcome": "LoadInstruction",
"line": 68,
"state": "covered",
"hits": "9"
},
{
"id": "declaration/9/tail/arm/2",
"outcome": "StoreInstruction",
"line": 69,
"state": "covered",
"hits": "6"
},
{
"id": "declaration/9/tail/arm/3",
"outcome": "PopInstruction",
"line": 70,
"state": "covered",
"hits": "7"
},
{
"id": "declaration/9/tail/arm/4",
"outcome": "UnaryInstruction",
"line": 71,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/9/tail/arm/5",
"outcome": "BinaryInstruction",
"line": 72,
"state": "covered",
"hits": "2"
},
{
"id": "declaration/9/tail/arm/6",
"outcome": "MakeRangeInstruction",
"line": 73,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/9/tail/arm/7",
"outcome": "MakeArrayInstruction",
"line": 74,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/9/tail/arm/8",
"outcome": "IndexGetInstruction",
"line": 75,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/9/tail/arm/9",
"outcome": "InterpolateInstruction",
"line": 76,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/9/tail/arm/10",
"outcome": "IterInitInstruction",
"line": 77,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/9/tail/arm/11",
"outcome": "IterNextInstruction",
"line": 78,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/9/tail/arm/12",
"outcome": "MakeRecordInstruction",
"line": 79,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/9/tail/arm/13",
"outcome": "FieldGetInstruction",
"line": 80,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/9/tail/arm/14",
"outcome": "MakeVariantInstruction",
"line": 81,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/9/tail/arm/15",
"outcome": "MatchVariantInstruction",
"line": 82,
"state": "covered",
"hits": "2"
},
{
"id": "declaration/9/tail/arm/16",
"outcome": "MatchFailInstruction",
"line": 83,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/9/tail/arm/17",
"outcome": "CallInstruction",
"line": 84,
"state": "covered",
"hits": "8"
},
{
"id": "declaration/9/tail/arm/18",
"outcome": "CallValueInstruction",
"line": 85,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/9/tail/arm/19",
"outcome": "AwaitCallInstruction",
"line": 86,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/9/tail/arm/20",
"outcome": "AwaitValueInstruction",
"line": 87,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/9/tail/arm/21",
"outcome": "JumpFalseInstruction",
"line": 88,
"state": "covered",
"hits": "17"
},
{
"id": "declaration/9/tail/arm/22",
"outcome": "JumpInstruction",
"line": 89,
"state": "covered",
"hits": "9"
},
{
"id": "declaration/9/tail/arm/23",
"outcome": "PendingEndJumpInstruction",
"line": 90,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/9/tail/arm/24",
"outcome": "ReturnInstruction",
"line": 91,
"state": "covered",
"hits": "8"
},
{
"id": "declaration/10/tail/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 96,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/10/tail/decision/skip-right",
"outcome": "skip-right",
"line": 96,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/10/tail/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 96,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/10/tail/left/decision/skip-right",
"outcome": "skip-right",
"line": 96,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/12/tail/decision/true",
"outcome": "true",
"line": 104,
"state": "covered",
"hits": "84"
},
{
"id": "declaration/12/tail/decision/false",
"outcome": "false",
"line": 104,
"state": "covered",
"hits": "7"
},
{
"id": "declaration/12/tail/false/statement/0/value/decision/true",
"outcome": "true",
"line": 105,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/12/tail/false/statement/0/value/decision/false",
"outcome": "false",
"line": 105,
"state": "covered",
"hits": "6"
},
{
"id": "declaration/13/statement/1/decision/body",
"outcome": "body",
"line": 111,
"state": "covered",
"hits": "83"
},
{
"id": "declaration/13/statement/1/decision/exit",
"outcome": "exit",
"line": 111,
"state": "covered",
"hits": "6"
},
{
"id": "declaration/13/statement/1/body/tail/decision/true",
"outcome": "true",
"line": 114,
"state": "covered",
"hits": "8"
},
{
"id": "declaration/13/statement/1/body/tail/decision/false",
"outcome": "false",
"line": 114,
"state": "covered",
"hits": "75"
},
{
"id": "declaration/14/statement/0/value/decision/true",
"outcome": "true",
"line": 122,
"state": "covered",
"hits": "2"
},
{
"id": "declaration/14/statement/0/value/decision/false",
"outcome": "false",
"line": 122,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/14/statement/1/value/decision/true",
"outcome": "true",
"line": 123,
"state": "covered",
"hits": "2"
},
{
"id": "declaration/14/statement/1/value/decision/false",
"outcome": "false",
"line": 123,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/14/statement/1/value/true/statement/0/decision/body",
"outcome": "body",
"line": 124,
"state": "covered",
"hits": "2"
},
{
"id": "declaration/14/statement/1/value/true/statement/0/decision/exit",
"outcome": "exit",
"line": 124,
"state": "covered",
"hits": "2"
},
{
"id": "declaration/14/statement/1/value/true/statement/0/body/tail/decision/true",
"outcome": "true",
"line": 125,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/14/statement/1/value/true/statement/0/body/tail/decision/false",
"outcome": "false",
"line": 125,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/14/statement/1/value/true/statement/0/body/tail/condition/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 125,
"state": "covered",
"hits": "2"
},
{
"id": "declaration/14/statement/1/value/true/statement/0/body/tail/condition/decision/skip-right",
"outcome": "skip-right",
"line": 125,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/15/statement/1/value/decision/true",
"outcome": "true",
"line": 132,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/15/statement/1/value/decision/false",
"outcome": "false",
"line": 132,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/15/statement/1/value/true/statement/0/decision/body",
"outcome": "body",
"line": 133,
"state": "covered",
"hits": "2"
},
{
"id": "declaration/15/statement/1/value/true/statement/0/decision/exit",
"outcome": "exit",
"line": 133,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/15/statement/1/value/true/statement/0/body/tail/decision/true",
"outcome": "true",
"line": 134,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/15/statement/1/value/true/statement/0/body/tail/decision/false",
"outcome": "false",
"line": 134,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/15/statement/1/value/true/statement/0/body/tail/condition/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 134,
"state": "covered",
"hits": "2"
},
{
"id": "declaration/15/statement/1/value/true/statement/0/body/tail/condition/decision/skip-right",
"outcome": "skip-right",
"line": 134,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/16/statement/0/value/decision/true",
"outcome": "true",
"line": 143,
"state": "covered",
"hits": "2"
},
{
"id": "declaration/16/statement/0/value/decision/false",
"outcome": "false",
"line": 143,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/16/statement/1/decision/body",
"outcome": "body",
"line": 144,
"state": "covered",
"hits": "12"
},
{
"id": "declaration/16/statement/1/decision/exit",
"outcome": "exit",
"line": 144,
"state": "covered",
"hits": "2"
},
{
"id": "declaration/16/statement/1/body/tail/decision/true",
"outcome": "true",
"line": 145,
"state": "covered",
"hits": "6"
},
{
"id": "declaration/16/statement/1/body/tail/decision/false",
"outcome": "false",
"line": 145,
"state": "covered",
"hits": "6"
},
{
"id": "declaration/16/statement/1/body/tail/condition/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 145,
"state": "covered",
"hits": "12"
},
{
"id": "declaration/16/statement/1/body/tail/condition/decision/skip-right",
"outcome": "skip-right",
"line": 145,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/16/statement/1/body/tail/true/tail/decision/true",
"outcome": "true",
"line": 148,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/16/statement/1/body/tail/true/tail/decision/false",
"outcome": "false",
"line": 148,
"state": "covered",
"hits": "5"
},
{
"id": "declaration/16/statement/1/body/tail/true/tail/true/statement/0/value/decision/true",
"outcome": "true",
"line": 149,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/16/statement/1/body/tail/true/tail/true/statement/0/value/decision/false",
"outcome": "false",
"line": 149,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/16/statement/1/body/tail/true/tail/true/tail/decision/true",
"outcome": "true",
"line": 150,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/16/statement/1/body/tail/true/tail/true/tail/decision/false",
"outcome": "false",
"line": 150,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/16/statement/1/body/tail/true/tail/false/tail/decision/true",
"outcome": "true",
"line": 152,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/16/statement/1/body/tail/true/tail/false/tail/decision/false",
"outcome": "false",
"line": 152,
"state": "covered",
"hits": "4"
},
{
"id": "declaration/17/statement/1/decision/body",
"outcome": "body",
"line": 163,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/17/statement/1/decision/exit",
"outcome": "exit",
"line": 163,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/17/statement/1/body/tail/decision/true",
"outcome": "true",
"line": 166,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/17/statement/1/body/tail/decision/false",
"outcome": "false",
"line": 166,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/17/statement/1/body/tail/true/statement/0/value/decision/true",
"outcome": "true",
"line": 167,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/17/statement/1/body/tail/true/statement/0/value/decision/false",
"outcome": "false",
"line": 167,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/17/statement/1/body/tail/true/tail/decision/true",
"outcome": "true",
"line": 168,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/17/statement/1/body/tail/true/tail/decision/false",
"outcome": "false",
"line": 168,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/17/statement/1/body/tail/false/tail/decision/true",
"outcome": "true",
"line": 170,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/17/statement/1/body/tail/false/tail/decision/false",
"outcome": "false",
"line": 170,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/18/tail/arm/0",
"outcome": "FunctionDeclaration",
"line": 178,
"state": "covered",
"hits": "8"
},
{
"id": "declaration/18/tail/arm/1",
"outcome": "ImportDeclaration",
"line": 179,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/18/tail/arm/2",
"outcome": "TypeDeclaration",
"line": 179,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/18/tail/arm/3",
"outcome": "RecordDeclaration",
"line": 180,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/18/tail/arm/4",
"outcome": "EnumDeclaration",
"line": 180,
"state": "covered",
"hits": "3"
},
{
"id": "declaration/19/tail/decision/true",
"outcome": "true",
"line": 185,
"state": "covered",
"hits": "51"
},
{
"id": "declaration/19/tail/decision/false",
"outcome": "false",
"line": 185,
"state": "covered",
"hits": "18"
},
{
"id": "declaration/19/tail/condition/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 185,
"state": "covered",
"hits": "29"
},
{
"id": "declaration/19/tail/condition/decision/skip-right",
"outcome": "skip-right",
"line": 185,
"state": "covered",
"hits": "40"
},
{
"id": "declaration/19/tail/false/tail/decision/true",
"outcome": "true",
"line": 186,
"state": "covered",
"hits": "6"
},
{
"id": "declaration/19/tail/false/tail/decision/false",
"outcome": "false",
"line": 186,
"state": "covered",
"hits": "12"
},
{
"id": "declaration/19/tail/false/tail/true/tail/decision/true",
"outcome": "true",
"line": 186,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/19/tail/false/tail/true/tail/decision/false",
"outcome": "false",
"line": 186,
"state": "covered",
"hits": "5"
},
{
"id": "declaration/19/tail/false/tail/false/statement/1/decision/body",
"outcome": "body",
"line": 189,
"state": "covered",
"hits": "876"
},
{
"id": "declaration/19/tail/false/tail/false/statement/1/decision/exit",
"outcome": "exit",
"line": 189,
"state": "covered",
"hits": "12"
},
{
"id": "declaration/19/tail/false/tail/false/statement/1/body/tail/decision/true",
"outcome": "true",
"line": 190,
"state": "covered",
"hits": "10"
},
{
"id": "declaration/19/tail/false/tail/false/statement/1/body/tail/decision/false",
"outcome": "false",
"line": 190,
"state": "covered",
"hits": "866"
},
{
"id": "declaration/19/tail/false/tail/false/statement/1/body/tail/condition/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 190,
"state": "covered",
"hits": "72"
},
{
"id": "declaration/19/tail/false/tail/false/statement/1/body/tail/condition/decision/skip-right",
"outcome": "skip-right",
"line": 190,
"state": "covered",
"hits": "804"
},
{
"id": "declaration/20/tail/decision/true",
"outcome": "true",
"line": 199,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/20/tail/decision/false",
"outcome": "false",
"line": 199,
"state": "covered",
"hits": "633"
},
{
"id": "declaration/20/tail/false/tail/decision/true",
"outcome": "true",
"line": 199,
"state": "covered",
"hits": "317"
},
{
"id": "declaration/20/tail/false/tail/decision/false",
"outcome": "false",
"line": 199,
"state": "covered",
"hits": "316"
},
{
"id": "declaration/22/statement/4/decision/body",
"outcome": "body",
"line": 216,
"state": "covered",
"hits": "5"
},
{
"id": "declaration/22/statement/4/decision/exit",
"outcome": "exit",
"line": 216,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/22/statement/6/decision/body",
"outcome": "body",
"line": 218,
"state": "covered",
"hits": "5"
},
{
"id": "declaration/22/statement/6/decision/exit",
"outcome": "exit",
"line": 218,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/22/statement/8/decision/body",
"outcome": "body",
"line": 220,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/8/decision/exit",
"outcome": "exit",
"line": 220,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/22/statement/8/body/statement/0/value/decision/true",
"outcome": "true",
"line": 221,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/8/body/statement/0/value/decision/false",
"outcome": "false",
"line": 221,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/8/body/statement/1/decision/body",
"outcome": "body",
"line": 222,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/8/body/statement/1/decision/exit",
"outcome": "exit",
"line": 222,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/8/body/statement/1/body/statement/1/value/decision/true",
"outcome": "true",
"line": 224,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/8/body/statement/1/body/statement/1/value/decision/false",
"outcome": "false",
"line": 224,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/decision/body",
"outcome": "body",
"line": 229,
"state": "covered",
"hits": "3"
},
{
"id": "declaration/22/statement/9/decision/exit",
"outcome": "exit",
"line": 229,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/22/statement/9/body/statement/0/decision/body",
"outcome": "body",
"line": 230,
"state": "covered",
"hits": "9"
},
{
"id": "declaration/22/statement/9/body/statement/0/decision/exit",
"outcome": "exit",
"line": 230,
"state": "covered",
"hits": "3"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/decision/true",
"outcome": "true",
"line": 231,
"state": "covered",
"hits": "3"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/decision/false",
"outcome": "false",
"line": 231,
"state": "covered",
"hits": "6"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/decision/body",
"outcome": "body",
"line": 238,
"state": "covered",
"hits": "267"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/decision/exit",
"outcome": "exit",
"line": 238,
"state": "covered",
"hits": "3"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/0/value/decision/true",
"outcome": "true",
"line": 239,
"state": "covered",
"hits": "14"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/0/value/decision/false",
"outcome": "false",
"line": 239,
"state": "covered",
"hits": "253"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/0/value/condition/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 239,
"state": "covered",
"hits": "259"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/0/value/condition/decision/skip-right",
"outcome": "skip-right",
"line": 239,
"state": "covered",
"hits": "8"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/0/value/true/statement/0/decision/body",
"outcome": "body",
"line": 240,
"state": "covered",
"hits": "11"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/0/value/true/statement/0/decision/exit",
"outcome": "exit",
"line": 240,
"state": "covered",
"hits": "14"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/0/value/true/statement/0/condition/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 240,
"state": "covered",
"hits": "25"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/0/value/true/statement/0/condition/decision/skip-right",
"outcome": "skip-right",
"line": 240,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/0/value/true/tail/decision/true",
"outcome": "true",
"line": 243,
"state": "covered",
"hits": "14"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/0/value/true/tail/decision/false",
"outcome": "false",
"line": 243,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/1/value/decision/true",
"outcome": "true",
"line": 247,
"state": "covered",
"hits": "6"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/1/value/decision/false",
"outcome": "false",
"line": 247,
"state": "covered",
"hits": "261"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/decision/true",
"outcome": "true",
"line": 250,
"state": "covered",
"hits": "74"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/decision/false",
"outcome": "false",
"line": 250,
"state": "covered",
"hits": "193"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/condition/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 250,
"state": "covered",
"hits": "74"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/condition/decision/skip-right",
"outcome": "skip-right",
"line": 250,
"state": "covered",
"hits": "193"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/decision/true",
"outcome": "true",
"line": 254,
"state": "covered",
"hits": "5"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/decision/false",
"outcome": "false",
"line": 254,
"state": "covered",
"hits": "69"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/true/statement/2/decision/body",
"outcome": "body",
"line": 257,
"state": "covered",
"hits": "77"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/true/statement/2/decision/exit",
"outcome": "exit",
"line": 257,
"state": "covered",
"hits": "5"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/true/statement/2/body/tail/arm/0",
"outcome": "ReturnInstruction",
"line": 259,
"state": "covered",
"hits": "5"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/true/statement/2/body/tail/arm/1",
"outcome": "ConstInstruction",
"line": 260,
"state": "covered",
"hits": "23"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/true/statement/2/body/tail/arm/2",
"outcome": "LoadInstruction",
"line": 261,
"state": "covered",
"hits": "8"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/true/statement/2/body/tail/arm/3",
"outcome": "StoreInstruction",
"line": 262,
"state": "covered",
"hits": "6"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/true/statement/2/body/tail/arm/4",
"outcome": "PopInstruction",
"line": 263,
"state": "covered",
"hits": "7"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/true/statement/2/body/tail/arm/5",
"outcome": "UnaryInstruction",
"line": 264,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/true/statement/2/body/tail/arm/6",
"outcome": "BinaryInstruction",
"line": 265,
"state": "covered",
"hits": "2"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/true/statement/2/body/tail/arm/7",
"outcome": "MakeRangeInstruction",
"line": 266,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/true/statement/2/body/tail/arm/8",
"outcome": "MakeArrayInstruction",
"line": 267,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/true/statement/2/body/tail/arm/9",
"outcome": "IndexGetInstruction",
"line": 268,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/true/statement/2/body/tail/arm/10",
"outcome": "InterpolateInstruction",
"line": 269,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/true/statement/2/body/tail/arm/11",
"outcome": "IterInitInstruction",
"line": 270,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/true/statement/2/body/tail/arm/12",
"outcome": "IterNextInstruction",
"line": 271,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/true/statement/2/body/tail/arm/13",
"outcome": "MakeRecordInstruction",
"line": 272,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/true/statement/2/body/tail/arm/14",
"outcome": "FieldGetInstruction",
"line": 273,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/true/statement/2/body/tail/arm/15",
"outcome": "MakeVariantInstruction",
"line": 274,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/true/statement/2/body/tail/arm/16",
"outcome": "MatchVariantInstruction",
"line": 275,
"state": "covered",
"hits": "2"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/true/statement/2/body/tail/arm/17",
"outcome": "MatchFailInstruction",
"line": 276,
"state": "covered",
"hits": "1"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/true/statement/2/body/tail/arm/18",
"outcome": "CallInstruction",
"line": 277,
"state": "covered",
"hits": "8"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/true/statement/2/body/tail/arm/19",
"outcome": "CallValueInstruction",
"line": 278,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/true/statement/2/body/tail/arm/20",
"outcome": "AwaitCallInstruction",
"line": 279,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/true/statement/2/body/tail/arm/21",
"outcome": "AwaitValueInstruction",
"line": 280,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/true/statement/2/body/tail/arm/22",
"outcome": "JumpFalseInstruction",
"line": 281,
"state": "covered",
"hits": "4"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/true/statement/2/body/tail/arm/23",
"outcome": "JumpInstruction",
"line": 282,
"state": "covered",
"hits": "7"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/true/statement/2/body/tail/arm/24",
"outcome": "PendingEndJumpInstruction",
"line": 283,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/false/statement/3/value/decision/true",
"outcome": "true",
"line": 290,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/false/statement/3/value/decision/false",
"outcome": "false",
"line": 290,
"state": "covered",
"hits": "69"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/false/statement/3/value/true/tail/decision/true",
"outcome": "true",
"line": 293,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/false/statement/3/value/true/tail/decision/false",
"outcome": "false",
"line": 293,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/false/statement/3/value/true/tail/true/tail/decision/true",
"outcome": "true",
"line": 296,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/false/statement/3/value/true/tail/true/tail/decision/false",
"outcome": "false",
"line": 296,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/false/statement/3/value/true/tail/true/tail/true/statement/2/value/decision/true",
"outcome": "true",
"line": 299,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/false/statement/3/value/true/tail/true/tail/true/statement/2/value/decision/false",
"outcome": "false",
"line": 299,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/false/statement/3/value/true/tail/true/tail/true/statement/3/value/decision/true",
"outcome": "true",
"line": 300,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/false/statement/3/value/true/tail/true/tail/true/statement/3/value/decision/false",
"outcome": "false",
"line": 300,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/false/statement/3/value/true/tail/true/tail/true/tail/decision/true",
"outcome": "true",
"line": 301,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/false/statement/3/value/true/tail/true/tail/true/tail/decision/false",
"outcome": "false",
"line": 301,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/false/statement/3/value/true/tail/true/tail/true/tail/true/statement/0/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 302,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/false/statement/3/value/true/tail/true/tail/true/tail/true/statement/0/value/decision/skip-right",
"outcome": "skip-right",
"line": 302,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/false/statement/3/value/true/tail/true/tail/true/tail/true/statement/0/value/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 302,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/false/statement/3/value/true/tail/true/tail/true/tail/true/statement/0/value/left/decision/skip-right",
"outcome": "skip-right",
"line": 302,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/false/statement/3/value/true/tail/true/tail/true/tail/true/statement/0/value/left/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 302,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/false/statement/3/value/true/tail/true/tail/true/tail/true/statement/0/value/left/left/decision/skip-right",
"outcome": "skip-right",
"line": 302,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/false/statement/3/value/true/tail/true/tail/true/tail/true/statement/0/value/left/right/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 303,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/false/statement/3/value/true/tail/true/tail/true/tail/true/statement/0/value/left/right/decision/skip-right",
"outcome": "skip-right",
"line": 303,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/false/statement/3/value/true/tail/true/tail/true/tail/true/statement/0/value/right/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 303,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/false/statement/3/value/true/tail/true/tail/true/tail/true/statement/0/value/right/decision/skip-right",
"outcome": "skip-right",
"line": 303,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/false/statement/3/value/true/tail/true/tail/true/tail/true/statement/1/value/decision/true",
"outcome": "true",
"line": 304,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/false/statement/3/value/true/tail/true/tail/true/tail/true/statement/1/value/decision/false",
"outcome": "false",
"line": 304,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/false/tail/decision/true",
"outcome": "true",
"line": 310,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/statement/4/value/true/tail/false/tail/decision/false",
"outcome": "false",
"line": 310,
"state": "covered",
"hits": "69"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/tail/decision/true",
"outcome": "true",
"line": 315,
"state": "covered",
"hits": "205"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/tail/decision/false",
"outcome": "false",
"line": 315,
"state": "covered",
"hits": "62"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/tail/condition/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 315,
"state": "covered",
"hits": "100"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/tail/condition/decision/skip-right",
"outcome": "skip-right",
"line": 315,
"state": "covered",
"hits": "167"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/tail/true/statement/1/value/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 317,
"state": "covered",
"hits": "205"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/tail/true/statement/1/value/decision/skip-right",
"outcome": "skip-right",
"line": 317,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/tail/true/statement/1/value/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 317,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/tail/true/statement/1/value/left/decision/skip-right",
"outcome": "skip-right",
"line": 317,
"state": "covered",
"hits": "205"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/tail/true/statement/1/value/right/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 317,
"state": "covered",
"hits": "156"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/tail/true/statement/1/value/right/decision/skip-right",
"outcome": "skip-right",
"line": 317,
"state": "covered",
"hits": "49"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/tail/true/statement/2/value/decision/true",
"outcome": "true",
"line": 318,
"state": "covered",
"hits": "156"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/tail/true/statement/2/value/decision/false",
"outcome": "false",
"line": 318,
"state": "covered",
"hits": "49"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/tail/true/statement/3/value/args/1/decision/true",
"outcome": "true",
"line": 319,
"state": "covered",
"hits": "205"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/tail/true/statement/3/value/args/1/decision/false",
"outcome": "false",
"line": 319,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/tail/true/statement/4/value/decision/true",
"outcome": "true",
"line": 320,
"state": "covered",
"hits": "49"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/6/body/tail/true/statement/4/value/decision/false",
"outcome": "false",
"line": 320,
"state": "covered",
"hits": "156"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/7/decision/body",
"outcome": "body",
"line": 324,
"state": "covered",
"hits": "49"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/7/decision/exit",
"outcome": "exit",
"line": 324,
"state": "covered",
"hits": "3"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/7/body/statement/0/value/args/1/left/left/left/right/decision/true",
"outcome": "true",
"line": 325,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/7/body/statement/0/value/args/1/left/left/left/right/decision/false",
"outcome": "false",
"line": 325,
"state": "covered",
"hits": "49"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/7/body/statement/0/value/args/1/left/right/decision/true",
"outcome": "true",
"line": 326,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/22/statement/9/body/statement/0/body/tail/true/statement/7/body/statement/0/value/args/1/left/right/decision/false",
"outcome": "false",
"line": 326,
"state": "covered",
"hits": "49"
},
{
"id": "declaration/23/tail/decision/true",
"outcome": "true",
"line": 335,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/23/tail/decision/false",
"outcome": "false",
"line": 335,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/23/tail/condition/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 335,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/23/tail/condition/decision/skip-right",
"outcome": "skip-right",
"line": 335,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/23/tail/condition/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 335,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/23/tail/condition/left/decision/skip-right",
"outcome": "skip-right",
"line": 335,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/23/tail/false/tail/arm/0",
"outcome": "Error",
"line": 345,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/23/tail/false/tail/arm/1",
"outcome": "Ok",
"line": 346,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/23/tail/false/tail/arm/1/body/block/tail/decision/true",
"outcome": "true",
"line": 351,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/23/tail/false/tail/arm/1/body/block/tail/decision/false",
"outcome": "false",
"line": 351,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/23/tail/false/tail/arm/1/body/block/tail/condition/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 351,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/23/tail/false/tail/arm/1/body/block/tail/condition/decision/skip-right",
"outcome": "skip-right",
"line": 351,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/23/tail/false/tail/arm/1/body/block/tail/condition/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 351,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/23/tail/false/tail/arm/1/body/block/tail/condition/left/decision/skip-right",
"outcome": "skip-right",
"line": 351,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/23/tail/false/tail/arm/1/body/block/tail/condition/left/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 351,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/23/tail/false/tail/arm/1/body/block/tail/condition/left/left/decision/skip-right",
"outcome": "skip-right",
"line": 351,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/23/tail/false/tail/arm/1/body/block/tail/condition/left/left/left/decision/evaluate-right",
"outcome": "evaluate-right",
"line": 351,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/23/tail/false/tail/arm/1/body/block/tail/condition/left/left/left/decision/skip-right",
"outcome": "skip-right",
"line": 351,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/23/tail/false/tail/arm/1/body/block/tail/false/tail/arm/0",
"outcome": "Error",
"line": 357,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/23/tail/false/tail/arm/1/body/block/tail/false/tail/arm/1",
"outcome": "Ok",
"line": 358,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/23/tail/false/tail/arm/1/body/block/tail/false/tail/arm/1/body/block/tail/decision/true",
"outcome": "true",
"line": 360,
"state": "zero",
"hits": "0"
},
{
"id": "declaration/23/tail/false/tail/arm/1/body/block/tail/false/tail/arm/1/body/block/tail/decision/false",
"outcome": "false",
"line": 360,
"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": 4
},
{
"id": "declaration/3",
"reason": "record-declaration",
"line": 5
},
{
"id": "declaration/8",
"reason": "record-declaration",
"line": 63
},
{
"id": "declaration/11",
"reason": "record-declaration",
"line": 102
}
]