necropsy 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -0
  3. data/MEASUREMENTS.md +27 -0
  4. data/README.md +182 -17
  5. data/bench/README.md +92 -0
  6. data/bench/audit.rb +113 -0
  7. data/bench/audits/0.2.1/audit.json +501 -0
  8. data/bench/audits/0.2.1/audit.md +55 -0
  9. data/bench/audits/0.2.1/baseline_performance.yml +16 -0
  10. data/bench/audits/0.2.1/config.yml +42 -0
  11. data/bench/audits/0.2.1/review.yml +56 -0
  12. data/bench/audits/0.2.1/review_queue.yml +3651 -0
  13. data/bench/corpora/v1/README.md +30 -0
  14. data/bench/corpora/v1/labels.yml +37 -0
  15. data/bench/corpora/v1/manifest.yml +63 -0
  16. data/bench/corpora/v1/rubocop.necropsy.yml +7 -0
  17. data/bench/corpora/v1/self.necropsy.yml +8 -0
  18. data/bench/corpora/v1/tools/debride.yml +42 -0
  19. data/bench/corpora/v1/tools/spoom.yml +12 -0
  20. data/bench/corpora/v1/tools/type_aware.yml +11 -0
  21. data/bench/golden/v1/candidate_union.json +21918 -0
  22. data/bench/golden/v1/metadata.json +12 -0
  23. data/bench/golden/v1/reports/dynamic_evidence.json +146 -0
  24. data/bench/golden/v1/reports/plain_ruby.json +135 -0
  25. data/bench/golden/v1/reports/rails.json +176 -0
  26. data/bench/golden/v1/reports/rubocop_1_75_0.json +26848 -0
  27. data/bench/golden/v1/reports/self.json +3449 -0
  28. data/bench/review_queue.rb +35 -0
  29. data/bench/run.rb +31 -0
  30. data/bench/schema/candidate-union-v1.schema.json +70 -0
  31. data/docs/impv_implementation_matrix.md +179 -0
  32. data/docs/migrations/0.2.1.md +57 -0
  33. data/docs/migrations/0.3.0.md +207 -0
  34. data/docs/migrations/0.4.0.md +13 -0
  35. data/docs/necropsy_performance_adr.md +43 -0
  36. data/docs/necropsy_scope_decisions.md +58 -0
  37. data/docs/necropsy_type_facts_adr.md +22 -0
  38. data/gemfiles/prism_min.gemfile +9 -0
  39. data/gemfiles/prism_min.gemfile.lock +50 -0
  40. data/lib/necropsy/analyzer.rb +121 -2
  41. data/lib/necropsy/analyzers/dynamic/coverage_collector.rb +69 -17
  42. data/lib/necropsy/analyzers/dynamic/coverage_importer.rb +99 -9
  43. data/lib/necropsy/analyzers/dynamic/coverband_importer.rb +69 -299
  44. data/lib/necropsy/analyzers/dynamic/coverband_payload_set.rb +149 -0
  45. data/lib/necropsy/analyzers/dynamic/observation_policy.rb +96 -0
  46. data/lib/necropsy/analyzers/dynamic/redis_input_limits.rb +121 -0
  47. data/lib/necropsy/analyzers/dynamic/redis_nonblocking_io.rb +94 -0
  48. data/lib/necropsy/analyzers/dynamic/redis_payload_loader.rb +165 -0
  49. data/lib/necropsy/analyzers/dynamic/redis_transport.rb +217 -0
  50. data/lib/necropsy/analyzers/dynamic/runtime_reference.rb +96 -0
  51. data/lib/necropsy/analyzers/dynamic/trace_point_collector.rb +133 -23
  52. data/lib/necropsy/analyzers/dynamic/trace_point_importer.rb +3 -1
  53. data/lib/necropsy/analyzers/legacy_result_adapter.rb +226 -0
  54. data/lib/necropsy/analyzers/static/cha.rb +33 -73
  55. data/lib/necropsy/analyzers/static/name_resolution.rb +133 -12
  56. data/lib/necropsy/analyzers/static/rta.rb +237 -29
  57. data/lib/necropsy/ast_scanner/call_recording.rb +149 -30
  58. data/lib/necropsy/ast_scanner/call_site_creation.rb +54 -0
  59. data/lib/necropsy/ast_scanner/definition_creation.rb +43 -0
  60. data/lib/necropsy/ast_scanner/dsl_macros.rb +431 -41
  61. data/lib/necropsy/ast_scanner/method_definitions.rb +232 -50
  62. data/lib/necropsy/ast_scanner/references.rb +43 -9
  63. data/lib/necropsy/ast_scanner/ruby_semantics.rb +101 -15
  64. data/lib/necropsy/ast_scanner/traversal.rb +234 -71
  65. data/lib/necropsy/ast_scanner/value_definitions.rb +23 -13
  66. data/lib/necropsy/ast_scanner.rb +67 -6
  67. data/lib/necropsy/bench/candidate_union.rb +555 -0
  68. data/lib/necropsy/bench/claim_gate.rb +112 -0
  69. data/lib/necropsy/bench/evaluator.rb +329 -16
  70. data/lib/necropsy/bench/finding_facts.rb +152 -0
  71. data/lib/necropsy/bench/precision_gate.rb +144 -0
  72. data/lib/necropsy/bench/release_audit/adversarial_runner.rb +56 -0
  73. data/lib/necropsy/bench/release_audit/artifact_writer.rb +112 -0
  74. data/lib/necropsy/bench/release_audit/config_validator.rb +112 -0
  75. data/lib/necropsy/bench/release_audit/git_snapshot.rb +36 -0
  76. data/lib/necropsy/bench/release_audit/performance_gate.rb +165 -0
  77. data/lib/necropsy/bench/release_audit/run_provenance.rb +133 -0
  78. data/lib/necropsy/bench/release_audit.rb +360 -0
  79. data/lib/necropsy/bench/report_normalizer.rb +140 -0
  80. data/lib/necropsy/bench/review_queue.rb +154 -0
  81. data/lib/necropsy/bench/safety_mutation_harness.rb +59 -0
  82. data/lib/necropsy/bench/seed_runner.rb +408 -0
  83. data/lib/necropsy/bounded_canonicalizer.rb +218 -0
  84. data/lib/necropsy/cache/scan_cache.rb +85 -17
  85. data/lib/necropsy/call_site_identity.rb +54 -0
  86. data/lib/necropsy/cli.rb +220 -33
  87. data/lib/necropsy/clock.rb +40 -0
  88. data/lib/necropsy/confidence/scorer.rb +103 -58
  89. data/lib/necropsy/configuration.rb +224 -21
  90. data/lib/necropsy/convention_rules.rb +138 -0
  91. data/lib/necropsy/definition_identity/canonical_digest.rb +278 -0
  92. data/lib/necropsy/definition_identity.rb +37 -0
  93. data/lib/necropsy/diagnostics.rb +176 -36
  94. data/lib/necropsy/embedded_ruby.rb +55 -0
  95. data/lib/necropsy/entry_points/plain.rb +111 -10
  96. data/lib/necropsy/entry_points/rails.rb +322 -41
  97. data/lib/necropsy/entry_points/test.rb +6 -1
  98. data/lib/necropsy/flow_interpreter.rb +460 -0
  99. data/lib/necropsy/graph/blocker_matching.rb +338 -0
  100. data/lib/necropsy/graph/call_graph.rb +1099 -109
  101. data/lib/necropsy/graph/definition_index.rb +149 -0
  102. data/lib/necropsy/graph/dynamic_evidence_tracking.rb +206 -0
  103. data/lib/necropsy/graph/evidence_store.rb +213 -0
  104. data/lib/necropsy/graph/resolution_store.rb +497 -0
  105. data/lib/necropsy/graph_self_check.rb +79 -0
  106. data/lib/necropsy/guardrail/baseline.rb +350 -13
  107. data/lib/necropsy/guardrail/quarantine.rb +94 -9
  108. data/lib/necropsy/load_graph.rb +206 -0
  109. data/lib/necropsy/models.rb +878 -13
  110. data/lib/necropsy/performance_profiler.rb +108 -0
  111. data/lib/necropsy/project.rb +327 -25
  112. data/lib/necropsy/reachability/engine.rb +54 -13
  113. data/lib/necropsy/reference_barrier.rb +458 -0
  114. data/lib/necropsy/report.rb +113 -4
  115. data/lib/necropsy/reporter.rb +431 -15
  116. data/lib/necropsy/runner.rb +233 -18
  117. data/lib/necropsy/runtime_feedback.rb +136 -0
  118. data/lib/necropsy/semantics_matrix.rb +153 -0
  119. data/lib/necropsy/type_facts.rb +53 -0
  120. data/lib/necropsy/version.rb +1 -1
  121. data/lib/necropsy/why_not_explanation.rb +436 -0
  122. data/lib/necropsy/why_not_renderer.rb +197 -0
  123. data/lib/necropsy/world_policy.rb +90 -0
  124. data/lib/necropsy.rb +35 -2
  125. data/schema/necropsy-report-v2.schema.json +366 -0
  126. metadata +85 -1
@@ -0,0 +1,3449 @@
1
+ {
2
+ "schema_version": 1,
3
+ "corpus": "self",
4
+ "metrics": {
5
+ "analysis_graph": {
6
+ "scope": "analysis",
7
+ "nodes": 1991,
8
+ "definitions": 1900,
9
+ "call_sites": 15341,
10
+ "edges": 15500
11
+ },
12
+ "findings": 147,
13
+ "actionable_candidates": 82,
14
+ "candidate_loc": 622,
15
+ "diagnostic_findings": 65
16
+ },
17
+ "states": {
18
+ "blocked": 65,
19
+ "unreachable": 82
20
+ },
21
+ "quality": {
22
+ "scope": "report",
23
+ "candidate_count": 82,
24
+ "candidate_loc": 622,
25
+ "diagnostic_count": 65,
26
+ "blocked_count": 65,
27
+ "blocked_rate": 0.4422,
28
+ "unknown_finding_count": 65,
29
+ "unknown_finding_rate": 0.4422,
30
+ "resolution_counts": {
31
+ "total": 46023,
32
+ "complete": 7134,
33
+ "partial": 17304,
34
+ "unknown": 21585
35
+ },
36
+ "unknown_resolution_rate": 0.469,
37
+ "rule_counts": {},
38
+ "risk_counts": {
39
+ "analysis_incomplete": 65,
40
+ "generated_method": 23,
41
+ "public_or_protected_visibility": 48
42
+ },
43
+ "by_category": {
44
+ "generated_method": {
45
+ "findings": 13,
46
+ "candidate_count": 13,
47
+ "candidate_loc": 88,
48
+ "blocked_count": 0,
49
+ "blocked_rate": 0.0,
50
+ "unknown_count": 0,
51
+ "unknown_rate": 0.0,
52
+ "rule_counts": {},
53
+ "risk_counts": {
54
+ "generated_method": 13,
55
+ "public_or_protected_visibility": 11
56
+ }
57
+ },
58
+ "partial_dispatch": {
59
+ "findings": 55,
60
+ "candidate_count": 0,
61
+ "candidate_loc": 0,
62
+ "blocked_count": 55,
63
+ "blocked_rate": 1.0,
64
+ "unknown_count": 55,
65
+ "unknown_rate": 1.0,
66
+ "rule_counts": {},
67
+ "risk_counts": {
68
+ "analysis_incomplete": 55,
69
+ "generated_method": 10,
70
+ "public_or_protected_visibility": 11
71
+ }
72
+ },
73
+ "unknown_dispatch": {
74
+ "findings": 10,
75
+ "candidate_count": 0,
76
+ "candidate_loc": 0,
77
+ "blocked_count": 10,
78
+ "blocked_rate": 1.0,
79
+ "unknown_count": 10,
80
+ "unknown_rate": 1.0,
81
+ "rule_counts": {},
82
+ "risk_counts": {
83
+ "analysis_incomplete": 10,
84
+ "public_or_protected_visibility": 10
85
+ }
86
+ },
87
+ "unreachable": {
88
+ "findings": 69,
89
+ "candidate_count": 69,
90
+ "candidate_loc": 534,
91
+ "blocked_count": 0,
92
+ "blocked_rate": 0.0,
93
+ "unknown_count": 0,
94
+ "unknown_rate": 0.0,
95
+ "rule_counts": {},
96
+ "risk_counts": {
97
+ "public_or_protected_visibility": 16
98
+ }
99
+ }
100
+ }
101
+ },
102
+ "findings": [
103
+ {
104
+ "id": "Necropsy::Analyzer#analyze",
105
+ "definition_id": "def:v1:f290071d31474fc8fbe88732556be27a984b1674ded865c8377be0931c061cd9",
106
+ "path": "lib/necropsy/analyzer.rb",
107
+ "line": 68,
108
+ "end_line": 70,
109
+ "loc": 3,
110
+ "state": "blocked",
111
+ "confidence": "low",
112
+ "candidate": false,
113
+ "diagnostic": true,
114
+ "category": "unknown_dispatch",
115
+ "unknown": true,
116
+ "rule_hits": [],
117
+ "risk_flags": [
118
+ "analysis_incomplete",
119
+ "public_or_protected_visibility"
120
+ ],
121
+ "blocker_kinds": [
122
+ "partial_dispatch",
123
+ "unknown_dispatch"
124
+ ],
125
+ "reasons": [
126
+ "Blocked by 24 unresolved runtime dispatches."
127
+ ]
128
+ },
129
+ {
130
+ "id": "Necropsy::Analyzers::Dynamic::CoverageCollector#coverage_result",
131
+ "definition_id": "def:v1:2c408254cc594761bbc40efa2956d53b6de310ad62bdfa86e30eeada4fef5f5a",
132
+ "path": "lib/necropsy/analyzers/dynamic/coverage_collector.rb",
133
+ "line": 66,
134
+ "end_line": 77,
135
+ "loc": 12,
136
+ "state": "unreachable",
137
+ "confidence": "medium",
138
+ "candidate": true,
139
+ "diagnostic": false,
140
+ "category": "unreachable",
141
+ "unknown": false,
142
+ "rule_hits": [],
143
+ "risk_flags": [],
144
+ "blocker_kinds": [],
145
+ "reasons": []
146
+ },
147
+ {
148
+ "id": "Necropsy::Analyzers::Dynamic::CoverageCollector#install_at_exit",
149
+ "definition_id": "def:v1:db87aeef77474c45a0dde6ec14cc2e1e9e4511057eb1521a85bf34ffc53351ab",
150
+ "path": "lib/necropsy/analyzers/dynamic/coverage_collector.rb",
151
+ "line": 38,
152
+ "end_line": 49,
153
+ "loc": 12,
154
+ "state": "blocked",
155
+ "confidence": "low",
156
+ "candidate": false,
157
+ "diagnostic": true,
158
+ "category": "partial_dispatch",
159
+ "unknown": true,
160
+ "rule_hits": [],
161
+ "risk_flags": [
162
+ "analysis_incomplete",
163
+ "public_or_protected_visibility"
164
+ ],
165
+ "blocker_kinds": [
166
+ "partial_dispatch"
167
+ ],
168
+ "reasons": [
169
+ "Blocked by 2 unresolved runtime dispatches.",
170
+ "Lowered because this node is near unresolved metaprogramming."
171
+ ]
172
+ },
173
+ {
174
+ "id": "Necropsy::Analyzers::Dynamic::CoverageCollector#method_coverage?",
175
+ "definition_id": "def:v1:b46d1fddac85dc1a48f3d3c0ced37789e62ff707c9048226393624ce1bfe9cce",
176
+ "path": "lib/necropsy/analyzers/dynamic/coverage_collector.rb",
177
+ "line": 79,
178
+ "end_line": 81,
179
+ "loc": 3,
180
+ "state": "unreachable",
181
+ "confidence": "low",
182
+ "candidate": true,
183
+ "diagnostic": false,
184
+ "category": "unreachable",
185
+ "unknown": false,
186
+ "rule_hits": [],
187
+ "risk_flags": [],
188
+ "blocker_kinds": [],
189
+ "reasons": [
190
+ "Lowered because this node is near unresolved metaprogramming."
191
+ ]
192
+ },
193
+ {
194
+ "id": "Necropsy::Analyzers::Dynamic::CoverageCollector#start_coverage",
195
+ "definition_id": "def:v1:078dcf1060d215c37d17a654940f2ccad64d574cd76a7ef5037ebd6196247b5e",
196
+ "path": "lib/necropsy/analyzers/dynamic/coverage_collector.rb",
197
+ "line": 59,
198
+ "end_line": 64,
199
+ "loc": 6,
200
+ "state": "unreachable",
201
+ "confidence": "medium",
202
+ "candidate": true,
203
+ "diagnostic": false,
204
+ "category": "unreachable",
205
+ "unknown": false,
206
+ "rule_hits": [],
207
+ "risk_flags": [],
208
+ "blocker_kinds": [],
209
+ "reasons": []
210
+ },
211
+ {
212
+ "id": "Necropsy::Analyzers::Dynamic::CoverageCollector.install_at_exit",
213
+ "definition_id": "def:v1:e06a722e6671a8cac4e6a24e1883e1c6cc830979ceb06401022fd1740916421d",
214
+ "path": "lib/necropsy/analyzers/dynamic/coverage_collector.rb",
215
+ "line": 18,
216
+ "end_line": 20,
217
+ "loc": 3,
218
+ "state": "blocked",
219
+ "confidence": "low",
220
+ "candidate": false,
221
+ "diagnostic": true,
222
+ "category": "partial_dispatch",
223
+ "unknown": true,
224
+ "rule_hits": [],
225
+ "risk_flags": [
226
+ "analysis_incomplete",
227
+ "public_or_protected_visibility"
228
+ ],
229
+ "blocker_kinds": [
230
+ "partial_dispatch"
231
+ ],
232
+ "reasons": [
233
+ "Blocked by 1 unresolved runtime dispatch.",
234
+ "Lowered because this node is near unresolved metaprogramming."
235
+ ]
236
+ },
237
+ {
238
+ "id": "Necropsy::Analyzers::Dynamic::ObservationPolicy#compatible_merge",
239
+ "definition_id": "def:v1:556dcac42733c0a0f9f2bceb1f35743329f3fb5ff513eff1bd14e77e76cfad96",
240
+ "path": "lib/necropsy/analyzers/dynamic/observation_policy.rb",
241
+ "line": 51,
242
+ "end_line": 60,
243
+ "loc": 10,
244
+ "state": "unreachable",
245
+ "confidence": "low",
246
+ "candidate": true,
247
+ "diagnostic": false,
248
+ "category": "unreachable",
249
+ "unknown": false,
250
+ "rule_hits": [],
251
+ "risk_flags": [],
252
+ "blocker_kinds": [],
253
+ "reasons": [
254
+ "Lowered because this node is near unresolved metaprogramming."
255
+ ]
256
+ },
257
+ {
258
+ "id": "Necropsy::Analyzers::Dynamic::ObservationPolicy#evidence_scope",
259
+ "definition_id": "def:v1:fd518daeec3e637cbd13a3ff270acf89ba3dad28d0817d7dce17737848554de8",
260
+ "path": "lib/necropsy/analyzers/dynamic/observation_policy.rb",
261
+ "line": 62,
262
+ "end_line": 75,
263
+ "loc": 14,
264
+ "state": "unreachable",
265
+ "confidence": "low",
266
+ "candidate": true,
267
+ "diagnostic": false,
268
+ "category": "unreachable",
269
+ "unknown": false,
270
+ "rule_hits": [],
271
+ "risk_flags": [],
272
+ "blocker_kinds": [],
273
+ "reasons": [
274
+ "Lowered because this node is near unresolved metaprogramming."
275
+ ]
276
+ },
277
+ {
278
+ "id": "Necropsy::Analyzers::Dynamic::ObservationPolicy#metadata",
279
+ "definition_id": "def:v1:ddc9cc5a9c4211ee08fc3cafa0769ad35c8a7486eb0a3fdaefd0bf6753ef908e",
280
+ "path": "lib/necropsy/analyzers/dynamic/observation_policy.rb",
281
+ "line": 9,
282
+ "end_line": 49,
283
+ "loc": 41,
284
+ "state": "blocked",
285
+ "confidence": "low",
286
+ "candidate": false,
287
+ "diagnostic": true,
288
+ "category": "partial_dispatch",
289
+ "unknown": true,
290
+ "rule_hits": [],
291
+ "risk_flags": [
292
+ "analysis_incomplete"
293
+ ],
294
+ "blocker_kinds": [
295
+ "partial_dispatch"
296
+ ],
297
+ "reasons": [
298
+ "Blocked by 7 unresolved runtime dispatches.",
299
+ "Lowered because this node is near unresolved metaprogramming."
300
+ ]
301
+ },
302
+ {
303
+ "id": "Necropsy::Analyzers::Dynamic::ObservationPolicy#source_revision",
304
+ "definition_id": "def:v1:daf44c5e2fd20014cf17f3edec9df5b0ee8c88eb30df8dfe78f1eed62878f5e3",
305
+ "path": "lib/necropsy/analyzers/dynamic/observation_policy.rb",
306
+ "line": 77,
307
+ "end_line": 81,
308
+ "loc": 5,
309
+ "state": "blocked",
310
+ "confidence": "low",
311
+ "candidate": false,
312
+ "diagnostic": true,
313
+ "category": "partial_dispatch",
314
+ "unknown": true,
315
+ "rule_hits": [],
316
+ "risk_flags": [
317
+ "analysis_incomplete"
318
+ ],
319
+ "blocker_kinds": [
320
+ "partial_dispatch"
321
+ ],
322
+ "reasons": [
323
+ "Blocked by 1 unresolved runtime dispatch.",
324
+ "Lowered because this node is near unresolved metaprogramming."
325
+ ]
326
+ },
327
+ {
328
+ "id": "Necropsy::Analyzers::Dynamic::ObservationPolicy#source_revision_status",
329
+ "definition_id": "def:v1:86ccf62f8735bc5ce9e1b43068d615828dcd5015c4d50fc4c3705bbaa6ce5290",
330
+ "path": "lib/necropsy/analyzers/dynamic/observation_policy.rb",
331
+ "line": 84,
332
+ "end_line": 91,
333
+ "loc": 8,
334
+ "state": "blocked",
335
+ "confidence": "low",
336
+ "candidate": false,
337
+ "diagnostic": true,
338
+ "category": "partial_dispatch",
339
+ "unknown": true,
340
+ "rule_hits": [],
341
+ "risk_flags": [
342
+ "analysis_incomplete"
343
+ ],
344
+ "blocker_kinds": [
345
+ "partial_dispatch"
346
+ ],
347
+ "reasons": [
348
+ "Blocked by 1 unresolved runtime dispatch.",
349
+ "Lowered because this node is near unresolved metaprogramming."
350
+ ]
351
+ },
352
+ {
353
+ "id": "Necropsy::Analyzers::Dynamic::RuntimeReference#malformed?",
354
+ "definition_id": "def:v1:acd90202e384ffffc12cda3e7772de3626ed3c537a429377479ec5ecb25b543f",
355
+ "path": "lib/necropsy/analyzers/dynamic/runtime_reference.rb",
356
+ "line": 64,
357
+ "end_line": 66,
358
+ "loc": 3,
359
+ "state": "unreachable",
360
+ "confidence": "low",
361
+ "candidate": true,
362
+ "diagnostic": false,
363
+ "category": "unreachable",
364
+ "unknown": false,
365
+ "rule_hits": [],
366
+ "risk_flags": [],
367
+ "blocker_kinds": [],
368
+ "reasons": [
369
+ "Lowered because this node is near unresolved metaprogramming."
370
+ ]
371
+ },
372
+ {
373
+ "id": "Necropsy::Analyzers::Dynamic::RuntimeReference#preferred",
374
+ "definition_id": "def:v1:c96935a3c74bfb7b2584a764eed9e2dda79ac41da8d00a13b5eee2bc86056d55",
375
+ "path": "lib/necropsy/analyzers/dynamic/runtime_reference.rb",
376
+ "line": 54,
377
+ "end_line": 62,
378
+ "loc": 9,
379
+ "state": "unreachable",
380
+ "confidence": "low",
381
+ "candidate": true,
382
+ "diagnostic": false,
383
+ "category": "unreachable",
384
+ "unknown": false,
385
+ "rule_hits": [],
386
+ "risk_flags": [],
387
+ "blocker_kinds": [],
388
+ "reasons": [
389
+ "Lowered because this node is near unresolved metaprogramming."
390
+ ]
391
+ },
392
+ {
393
+ "id": "Necropsy::Analyzers::Dynamic::RuntimeReference.malformed?",
394
+ "definition_id": "def:v1:0850b239e67b07b8e59aa7e1abcba1f33feadf7fea94b54ee61bacf0c8462a4b",
395
+ "path": "lib/necropsy/analyzers/dynamic/runtime_reference.rb",
396
+ "line": 64,
397
+ "end_line": 66,
398
+ "loc": 3,
399
+ "state": "unreachable",
400
+ "confidence": "low",
401
+ "candidate": true,
402
+ "diagnostic": false,
403
+ "category": "generated_method",
404
+ "unknown": false,
405
+ "rule_hits": [],
406
+ "risk_flags": [
407
+ "generated_method",
408
+ "public_or_protected_visibility"
409
+ ],
410
+ "blocker_kinds": [],
411
+ "reasons": [
412
+ "Lowered because this node is near unresolved metaprogramming."
413
+ ]
414
+ },
415
+ {
416
+ "id": "Necropsy::Analyzers::Dynamic::TracePointCollector#install_at_exit",
417
+ "definition_id": "def:v1:9fa9f4457a428ad3ad8f5850680ebb04393de30c9c3bef37a142749bc16a0816",
418
+ "path": "lib/necropsy/analyzers/dynamic/trace_point_collector.rb",
419
+ "line": 48,
420
+ "end_line": 58,
421
+ "loc": 11,
422
+ "state": "blocked",
423
+ "confidence": "low",
424
+ "candidate": false,
425
+ "diagnostic": true,
426
+ "category": "partial_dispatch",
427
+ "unknown": true,
428
+ "rule_hits": [],
429
+ "risk_flags": [
430
+ "analysis_incomplete",
431
+ "public_or_protected_visibility"
432
+ ],
433
+ "blocker_kinds": [
434
+ "partial_dispatch"
435
+ ],
436
+ "reasons": [
437
+ "Blocked by 2 unresolved runtime dispatches.",
438
+ "Lowered because this node is near unresolved metaprogramming."
439
+ ]
440
+ },
441
+ {
442
+ "id": "Necropsy::Analyzers::Dynamic::TracePointCollector.install_at_exit",
443
+ "definition_id": "def:v1:dc5e9859b5a2fbaa6f59ad269895bf2882938def419b477af01a241f3cf08fc3",
444
+ "path": "lib/necropsy/analyzers/dynamic/trace_point_collector.rb",
445
+ "line": 18,
446
+ "end_line": 20,
447
+ "loc": 3,
448
+ "state": "blocked",
449
+ "confidence": "low",
450
+ "candidate": false,
451
+ "diagnostic": true,
452
+ "category": "partial_dispatch",
453
+ "unknown": true,
454
+ "rule_hits": [],
455
+ "risk_flags": [
456
+ "analysis_incomplete",
457
+ "public_or_protected_visibility"
458
+ ],
459
+ "blocker_kinds": [
460
+ "partial_dispatch"
461
+ ],
462
+ "reasons": [
463
+ "Blocked by 1 unresolved runtime dispatch.",
464
+ "Lowered because this node is near unresolved metaprogramming."
465
+ ]
466
+ },
467
+ {
468
+ "id": "Necropsy::AstScanner::Context#file=",
469
+ "definition_id": "def:v1:9c79eafc397cb76a9ac355f7d79e81c284a5426a05ecd1ec83d48599f0345941",
470
+ "path": "lib/necropsy/ast_scanner.rb",
471
+ "line": 60,
472
+ "end_line": 76,
473
+ "loc": 17,
474
+ "state": "unreachable",
475
+ "confidence": "low",
476
+ "candidate": true,
477
+ "diagnostic": false,
478
+ "category": "generated_method",
479
+ "unknown": false,
480
+ "rule_hits": [],
481
+ "risk_flags": [
482
+ "generated_method",
483
+ "public_or_protected_visibility"
484
+ ],
485
+ "blocker_kinds": [],
486
+ "reasons": [
487
+ "Lowered because this node is generated by a Ruby accessor DSL."
488
+ ]
489
+ },
490
+ {
491
+ "id": "Necropsy::AstScanner::Context#module_function",
492
+ "definition_id": "def:v1:db431ac5f25a99c22a20d339e4cd8d4d4b5a70c3a58e7545212b19e3043174b5",
493
+ "path": "lib/necropsy/ast_scanner.rb",
494
+ "line": 60,
495
+ "end_line": 76,
496
+ "loc": 17,
497
+ "state": "unreachable",
498
+ "confidence": "low",
499
+ "candidate": true,
500
+ "diagnostic": false,
501
+ "category": "generated_method",
502
+ "unknown": false,
503
+ "rule_hits": [],
504
+ "risk_flags": [
505
+ "generated_method",
506
+ "public_or_protected_visibility"
507
+ ],
508
+ "blocker_kinds": [],
509
+ "reasons": [
510
+ "Lowered because this node is generated by a Ruby accessor DSL."
511
+ ]
512
+ },
513
+ {
514
+ "id": "Necropsy::AstScanner::Context#relative_file=",
515
+ "definition_id": "def:v1:70eb89b62a333022ee792c3df0a96e920b668dfe83b9e77088bcfa46923140a7",
516
+ "path": "lib/necropsy/ast_scanner.rb",
517
+ "line": 60,
518
+ "end_line": 76,
519
+ "loc": 17,
520
+ "state": "unreachable",
521
+ "confidence": "low",
522
+ "candidate": true,
523
+ "diagnostic": false,
524
+ "category": "generated_method",
525
+ "unknown": false,
526
+ "rule_hits": [],
527
+ "risk_flags": [
528
+ "generated_method",
529
+ "public_or_protected_visibility"
530
+ ],
531
+ "blocker_kinds": [],
532
+ "reasons": [
533
+ "Lowered because this node is generated by a Ruby accessor DSL."
534
+ ]
535
+ },
536
+ {
537
+ "id": "Necropsy::AstScanner::Context#test=",
538
+ "definition_id": "def:v1:99b9d04256753ab05ac2eead7f3e3ee083d757ebf5bbe8e50c3e874aa3b73372",
539
+ "path": "lib/necropsy/ast_scanner.rb",
540
+ "line": 60,
541
+ "end_line": 76,
542
+ "loc": 17,
543
+ "state": "unreachable",
544
+ "confidence": "low",
545
+ "candidate": true,
546
+ "diagnostic": false,
547
+ "category": "generated_method",
548
+ "unknown": false,
549
+ "rule_hits": [],
550
+ "risk_flags": [
551
+ "generated_method",
552
+ "public_or_protected_visibility"
553
+ ],
554
+ "blocker_kinds": [],
555
+ "reasons": [
556
+ "Lowered because this node is generated by a Ruby accessor DSL."
557
+ ]
558
+ },
559
+ {
560
+ "id": "Necropsy::Bench::FindingFacts#actionable?",
561
+ "definition_id": "def:v1:2493c12409215905a9578963febb90a105e39e32b71558d9453813098d80f6c8",
562
+ "path": "lib/necropsy/bench/finding_facts.rb",
563
+ "line": 21,
564
+ "end_line": 23,
565
+ "loc": 3,
566
+ "state": "blocked",
567
+ "confidence": "low",
568
+ "candidate": false,
569
+ "diagnostic": true,
570
+ "category": "partial_dispatch",
571
+ "unknown": true,
572
+ "rule_hits": [],
573
+ "risk_flags": [
574
+ "analysis_incomplete"
575
+ ],
576
+ "blocker_kinds": [
577
+ "partial_dispatch"
578
+ ],
579
+ "reasons": [
580
+ "Blocked by 1 unresolved runtime dispatch.",
581
+ "Lowered because this node is near unresolved metaprogramming."
582
+ ]
583
+ },
584
+ {
585
+ "id": "Necropsy::Bench::FindingFacts#category",
586
+ "definition_id": "def:v1:ea8d0216786e566c2ba54c8cf37467f6c84b5f13b2ce6520692e68cdb9a6575f",
587
+ "path": "lib/necropsy/bench/finding_facts.rb",
588
+ "line": 64,
589
+ "end_line": 75,
590
+ "loc": 12,
591
+ "state": "unreachable",
592
+ "confidence": "low",
593
+ "candidate": true,
594
+ "diagnostic": false,
595
+ "category": "unreachable",
596
+ "unknown": false,
597
+ "rule_hits": [],
598
+ "risk_flags": [],
599
+ "blocker_kinds": [],
600
+ "reasons": [
601
+ "Lowered because this node is near unresolved metaprogramming."
602
+ ]
603
+ },
604
+ {
605
+ "id": "Necropsy::Bench::FindingFacts#explicit_category",
606
+ "definition_id": "def:v1:280e68bb1dda667c60cfe521af96fbb571b0991b462c09fd565baf1f72ec0ca5",
607
+ "path": "lib/necropsy/bench/finding_facts.rb",
608
+ "line": 140,
609
+ "end_line": 148,
610
+ "loc": 9,
611
+ "state": "blocked",
612
+ "confidence": "low",
613
+ "candidate": false,
614
+ "diagnostic": true,
615
+ "category": "partial_dispatch",
616
+ "unknown": true,
617
+ "rule_hits": [],
618
+ "risk_flags": [
619
+ "analysis_incomplete"
620
+ ],
621
+ "blocker_kinds": [
622
+ "partial_dispatch"
623
+ ],
624
+ "reasons": [
625
+ "Blocked by 1 unresolved runtime dispatch.",
626
+ "Lowered because this node is near unresolved metaprogramming."
627
+ ]
628
+ },
629
+ {
630
+ "id": "Necropsy::Bench::FindingFacts#loc",
631
+ "definition_id": "def:v1:6b1f5edfb78455a880b008f3cf65036982503133f88fea598683a87c4aa8cfab",
632
+ "path": "lib/necropsy/bench/finding_facts.rb",
633
+ "line": 25,
634
+ "end_line": 31,
635
+ "loc": 7,
636
+ "state": "unreachable",
637
+ "confidence": "low",
638
+ "candidate": true,
639
+ "diagnostic": false,
640
+ "category": "unreachable",
641
+ "unknown": false,
642
+ "rule_hits": [],
643
+ "risk_flags": [],
644
+ "blocker_kinds": [],
645
+ "reasons": [
646
+ "Lowered because this node is near unresolved metaprogramming."
647
+ ]
648
+ },
649
+ {
650
+ "id": "Necropsy::Bench::FindingFacts#positive_integer",
651
+ "definition_id": "def:v1:6cbfc53ef2b7b07f44fc70e7ba63311f710b6a5b4997ded09c62a467bb7494f4",
652
+ "path": "lib/necropsy/bench/finding_facts.rb",
653
+ "line": 128,
654
+ "end_line": 131,
655
+ "loc": 4,
656
+ "state": "blocked",
657
+ "confidence": "low",
658
+ "candidate": false,
659
+ "diagnostic": true,
660
+ "category": "partial_dispatch",
661
+ "unknown": true,
662
+ "rule_hits": [],
663
+ "risk_flags": [
664
+ "analysis_incomplete"
665
+ ],
666
+ "blocker_kinds": [
667
+ "partial_dispatch"
668
+ ],
669
+ "reasons": [
670
+ "Blocked by 3 unresolved runtime dispatches.",
671
+ "Lowered because this node is near unresolved metaprogramming."
672
+ ]
673
+ },
674
+ {
675
+ "id": "Necropsy::Bench::FindingFacts#ratio",
676
+ "definition_id": "def:v1:9753386b3dff42008154a96d89a02448be4ac3a56825d8c8204a8b00df1a5ac0",
677
+ "path": "lib/necropsy/bench/finding_facts.rb",
678
+ "line": 112,
679
+ "end_line": 114,
680
+ "loc": 3,
681
+ "state": "blocked",
682
+ "confidence": "low",
683
+ "candidate": false,
684
+ "diagnostic": true,
685
+ "category": "partial_dispatch",
686
+ "unknown": true,
687
+ "rule_hits": [],
688
+ "risk_flags": [
689
+ "analysis_incomplete"
690
+ ],
691
+ "blocker_kinds": [
692
+ "partial_dispatch"
693
+ ],
694
+ "reasons": [
695
+ "Blocked by 10 unresolved runtime dispatches.",
696
+ "Lowered because this node is near unresolved metaprogramming."
697
+ ]
698
+ },
699
+ {
700
+ "id": "Necropsy::Bench::FindingFacts#report_risk_counts",
701
+ "definition_id": "def:v1:53118c11a100eb25bb772ffcae174c84c830283b3e70484a8a524e76ef425a8d",
702
+ "path": "lib/necropsy/bench/finding_facts.rb",
703
+ "line": 88,
704
+ "end_line": 90,
705
+ "loc": 3,
706
+ "state": "unreachable",
707
+ "confidence": "low",
708
+ "candidate": true,
709
+ "diagnostic": false,
710
+ "category": "unreachable",
711
+ "unknown": false,
712
+ "rule_hits": [],
713
+ "risk_flags": [],
714
+ "blocker_kinds": [],
715
+ "reasons": [
716
+ "Lowered because this node is near unresolved metaprogramming."
717
+ ]
718
+ },
719
+ {
720
+ "id": "Necropsy::Bench::FindingFacts#report_rule_counts",
721
+ "definition_id": "def:v1:519e8495aaa1c029589404dedc40661bd3c10ef6aeed45f5932da1d5df2a02fb",
722
+ "path": "lib/necropsy/bench/finding_facts.rb",
723
+ "line": 77,
724
+ "end_line": 86,
725
+ "loc": 10,
726
+ "state": "unreachable",
727
+ "confidence": "low",
728
+ "candidate": true,
729
+ "diagnostic": false,
730
+ "category": "unreachable",
731
+ "unknown": false,
732
+ "rule_hits": [],
733
+ "risk_flags": [],
734
+ "blocker_kinds": [],
735
+ "reasons": [
736
+ "Lowered because this node is near unresolved metaprogramming."
737
+ ]
738
+ },
739
+ {
740
+ "id": "Necropsy::Bench::FindingFacts#resolution_counts",
741
+ "definition_id": "def:v1:cfa8deb1eb3e1bfcd856f605e47c1622f54a76225466be13a657b9d8d82153bb",
742
+ "path": "lib/necropsy/bench/finding_facts.rb",
743
+ "line": 96,
744
+ "end_line": 110,
745
+ "loc": 15,
746
+ "state": "unreachable",
747
+ "confidence": "low",
748
+ "candidate": true,
749
+ "diagnostic": false,
750
+ "category": "unreachable",
751
+ "unknown": false,
752
+ "rule_hits": [],
753
+ "risk_flags": [],
754
+ "blocker_kinds": [],
755
+ "reasons": [
756
+ "Lowered because this node is near unresolved metaprogramming."
757
+ ]
758
+ },
759
+ {
760
+ "id": "Necropsy::Bench::FindingFacts#risk_flags",
761
+ "definition_id": "def:v1:cc6b6e6ee556b80bbae48edab131b95f733479f64ef349c426793ffccf173c99",
762
+ "path": "lib/necropsy/bench/finding_facts.rb",
763
+ "line": 37,
764
+ "end_line": 49,
765
+ "loc": 13,
766
+ "state": "blocked",
767
+ "confidence": "low",
768
+ "candidate": false,
769
+ "diagnostic": true,
770
+ "category": "partial_dispatch",
771
+ "unknown": true,
772
+ "rule_hits": [],
773
+ "risk_flags": [
774
+ "analysis_incomplete"
775
+ ],
776
+ "blocker_kinds": [
777
+ "partial_dispatch"
778
+ ],
779
+ "reasons": [
780
+ "Blocked by 2 unresolved runtime dispatches.",
781
+ "Lowered because this node is near unresolved metaprogramming."
782
+ ]
783
+ },
784
+ {
785
+ "id": "Necropsy::Bench::FindingFacts#rule_hits",
786
+ "definition_id": "def:v1:5bcf232599203e8bbeff4dbe61363e42b1410a401f5494899a7ef3101b431122",
787
+ "path": "lib/necropsy/bench/finding_facts.rb",
788
+ "line": 51,
789
+ "end_line": 62,
790
+ "loc": 12,
791
+ "state": "blocked",
792
+ "confidence": "low",
793
+ "candidate": false,
794
+ "diagnostic": true,
795
+ "category": "partial_dispatch",
796
+ "unknown": true,
797
+ "rule_hits": [],
798
+ "risk_flags": [
799
+ "analysis_incomplete"
800
+ ],
801
+ "blocker_kinds": [
802
+ "partial_dispatch"
803
+ ],
804
+ "reasons": [
805
+ "Blocked by 1 unresolved runtime dispatch.",
806
+ "Lowered because this node is near unresolved metaprogramming."
807
+ ]
808
+ },
809
+ {
810
+ "id": "Necropsy::Bench::FindingFacts#stringify_keys",
811
+ "definition_id": "def:v1:d89c344ff26af5cd36e783dbee8f71a7a4bb42118345be7446fdd9bb95f22b9e",
812
+ "path": "lib/necropsy/bench/finding_facts.rb",
813
+ "line": 121,
814
+ "end_line": 125,
815
+ "loc": 5,
816
+ "state": "blocked",
817
+ "confidence": "low",
818
+ "candidate": false,
819
+ "diagnostic": true,
820
+ "category": "partial_dispatch",
821
+ "unknown": true,
822
+ "rule_hits": [],
823
+ "risk_flags": [
824
+ "analysis_incomplete"
825
+ ],
826
+ "blocker_kinds": [
827
+ "partial_dispatch"
828
+ ],
829
+ "reasons": [
830
+ "Blocked by 6 unresolved runtime dispatches.",
831
+ "Lowered because this node is near unresolved metaprogramming."
832
+ ]
833
+ },
834
+ {
835
+ "id": "Necropsy::Bench::ReleaseAudit#initialize",
836
+ "definition_id": "def:v1:95433fb03453fafe2cf6990ef569b343ad656348eeae928ee7019c4e4219eb6e",
837
+ "path": "lib/necropsy/bench/release_audit.rb",
838
+ "line": 18,
839
+ "end_line": 20,
840
+ "loc": 3,
841
+ "state": "blocked",
842
+ "confidence": "low",
843
+ "candidate": false,
844
+ "diagnostic": true,
845
+ "category": "unknown_dispatch",
846
+ "unknown": true,
847
+ "rule_hits": [],
848
+ "risk_flags": [
849
+ "analysis_incomplete",
850
+ "public_or_protected_visibility"
851
+ ],
852
+ "blocker_kinds": [
853
+ "partial_dispatch",
854
+ "unknown_dispatch"
855
+ ],
856
+ "reasons": [
857
+ "Blocked by 552 unresolved runtime dispatches."
858
+ ]
859
+ },
860
+ {
861
+ "id": "Necropsy::Bench::ReleaseAudit::AdversarialRunner#initialize",
862
+ "definition_id": "def:v1:fad9417f263f84e25e91b069152da40bc7e83eac75c7eb98f8472ebd07833f79",
863
+ "path": "lib/necropsy/bench/release_audit/adversarial_runner.rb",
864
+ "line": 9,
865
+ "end_line": 13,
866
+ "loc": 5,
867
+ "state": "blocked",
868
+ "confidence": "low",
869
+ "candidate": false,
870
+ "diagnostic": true,
871
+ "category": "unknown_dispatch",
872
+ "unknown": true,
873
+ "rule_hits": [],
874
+ "risk_flags": [
875
+ "analysis_incomplete",
876
+ "public_or_protected_visibility"
877
+ ],
878
+ "blocker_kinds": [
879
+ "partial_dispatch",
880
+ "unknown_dispatch"
881
+ ],
882
+ "reasons": [
883
+ "Blocked by 552 unresolved runtime dispatches."
884
+ ]
885
+ },
886
+ {
887
+ "id": "Necropsy::Bench::ReleaseAudit::ArtifactWriter#initialize",
888
+ "definition_id": "def:v1:21e7e1b82f6d3a50ffaba4c93b1c28b5af345c69b9f28f196f6e2c3b08e9b7ab",
889
+ "path": "lib/necropsy/bench/release_audit/artifact_writer.rb",
890
+ "line": 10,
891
+ "end_line": 13,
892
+ "loc": 4,
893
+ "state": "blocked",
894
+ "confidence": "low",
895
+ "candidate": false,
896
+ "diagnostic": true,
897
+ "category": "unknown_dispatch",
898
+ "unknown": true,
899
+ "rule_hits": [],
900
+ "risk_flags": [
901
+ "analysis_incomplete",
902
+ "public_or_protected_visibility"
903
+ ],
904
+ "blocker_kinds": [
905
+ "partial_dispatch",
906
+ "unknown_dispatch"
907
+ ],
908
+ "reasons": [
909
+ "Blocked by 552 unresolved runtime dispatches."
910
+ ]
911
+ },
912
+ {
913
+ "id": "Necropsy::Bench::ReleaseAudit::GitSnapshot#initialize",
914
+ "definition_id": "def:v1:9d6dde636c911de3d5769258d3232d4fa4f5d35cc20fc46d03cada6991f0bd1f",
915
+ "path": "lib/necropsy/bench/release_audit/git_snapshot.rb",
916
+ "line": 10,
917
+ "end_line": 14,
918
+ "loc": 5,
919
+ "state": "blocked",
920
+ "confidence": "low",
921
+ "candidate": false,
922
+ "diagnostic": true,
923
+ "category": "unknown_dispatch",
924
+ "unknown": true,
925
+ "rule_hits": [],
926
+ "risk_flags": [
927
+ "analysis_incomplete",
928
+ "public_or_protected_visibility"
929
+ ],
930
+ "blocker_kinds": [
931
+ "partial_dispatch",
932
+ "unknown_dispatch"
933
+ ],
934
+ "reasons": [
935
+ "Blocked by 552 unresolved runtime dispatches."
936
+ ]
937
+ },
938
+ {
939
+ "id": "Necropsy::Bench::ReleaseAudit::GitSnapshot#reports",
940
+ "definition_id": "def:v1:295f400406b1a4a31e5cf9343cbafad931bbf6833d6cc72d454631f4ebfac6e4",
941
+ "path": "lib/necropsy/bench/release_audit/git_snapshot.rb",
942
+ "line": 16,
943
+ "end_line": 18,
944
+ "loc": 3,
945
+ "state": "blocked",
946
+ "confidence": "low",
947
+ "candidate": false,
948
+ "diagnostic": true,
949
+ "category": "partial_dispatch",
950
+ "unknown": true,
951
+ "rule_hits": [],
952
+ "risk_flags": [
953
+ "analysis_incomplete",
954
+ "public_or_protected_visibility"
955
+ ],
956
+ "blocker_kinds": [
957
+ "partial_dispatch"
958
+ ],
959
+ "reasons": [
960
+ "Blocked by 12 unresolved runtime dispatches.",
961
+ "Lowered because this node is near unresolved metaprogramming."
962
+ ]
963
+ },
964
+ {
965
+ "id": "Necropsy::Bench::ReleaseAudit::RunProvenance#artifact_digests",
966
+ "definition_id": "def:v1:6faf9b64eccf7fa6139ce7a527aca05c7f0d5057099663d6b1eb8364e4714aba",
967
+ "path": "lib/necropsy/bench/release_audit/run_provenance.rb",
968
+ "line": 102,
969
+ "end_line": 112,
970
+ "loc": 11,
971
+ "state": "blocked",
972
+ "confidence": "low",
973
+ "candidate": false,
974
+ "diagnostic": true,
975
+ "category": "partial_dispatch",
976
+ "unknown": true,
977
+ "rule_hits": [],
978
+ "risk_flags": [
979
+ "analysis_incomplete"
980
+ ],
981
+ "blocker_kinds": [
982
+ "partial_dispatch"
983
+ ],
984
+ "reasons": [
985
+ "Blocked by 2 unresolved runtime dispatches.",
986
+ "Lowered because this node is near unresolved metaprogramming."
987
+ ]
988
+ },
989
+ {
990
+ "id": "Necropsy::Bench::ReleaseAudit::RunProvenance#capture",
991
+ "definition_id": "def:v1:f277296c87b17d7924652a70c50a3b830f49a106a6bc2b4c7f8ee50c07649177",
992
+ "path": "lib/necropsy/bench/release_audit/run_provenance.rb",
993
+ "line": 124,
994
+ "end_line": 129,
995
+ "loc": 6,
996
+ "state": "blocked",
997
+ "confidence": "low",
998
+ "candidate": false,
999
+ "diagnostic": true,
1000
+ "category": "partial_dispatch",
1001
+ "unknown": true,
1002
+ "rule_hits": [],
1003
+ "risk_flags": [
1004
+ "analysis_incomplete"
1005
+ ],
1006
+ "blocker_kinds": [
1007
+ "partial_dispatch"
1008
+ ],
1009
+ "reasons": [
1010
+ "Blocked by 2 unresolved runtime dispatches.",
1011
+ "Lowered because this node is near unresolved metaprogramming."
1012
+ ]
1013
+ },
1014
+ {
1015
+ "id": "Necropsy::Bench::ReleaseAudit::RunProvenance#capture_source!",
1016
+ "definition_id": "def:v1:c563db469c679d61f8664566e7435522b71623caff054645e81c50142464a814",
1017
+ "path": "lib/necropsy/bench/release_audit/run_provenance.rb",
1018
+ "line": 22,
1019
+ "end_line": 31,
1020
+ "loc": 10,
1021
+ "state": "unreachable",
1022
+ "confidence": "medium",
1023
+ "candidate": true,
1024
+ "diagnostic": false,
1025
+ "category": "unreachable",
1026
+ "unknown": false,
1027
+ "rule_hits": [],
1028
+ "risk_flags": [
1029
+ "public_or_protected_visibility"
1030
+ ],
1031
+ "blocker_kinds": [],
1032
+ "reasons": []
1033
+ },
1034
+ {
1035
+ "id": "Necropsy::Bench::ReleaseAudit::RunProvenance#complete",
1036
+ "definition_id": "def:v1:8845e315339e570d025f0cde85d70492e45717afa338127edc096046cdec0296",
1037
+ "path": "lib/necropsy/bench/release_audit/run_provenance.rb",
1038
+ "line": 33,
1039
+ "end_line": 38,
1040
+ "loc": 6,
1041
+ "state": "blocked",
1042
+ "confidence": "low",
1043
+ "candidate": false,
1044
+ "diagnostic": true,
1045
+ "category": "partial_dispatch",
1046
+ "unknown": true,
1047
+ "rule_hits": [],
1048
+ "risk_flags": [
1049
+ "analysis_incomplete",
1050
+ "public_or_protected_visibility"
1051
+ ],
1052
+ "blocker_kinds": [
1053
+ "partial_dispatch"
1054
+ ],
1055
+ "reasons": [
1056
+ "Blocked by 2 unresolved runtime dispatches."
1057
+ ]
1058
+ },
1059
+ {
1060
+ "id": "Necropsy::Bench::ReleaseAudit::RunProvenance#config_path",
1061
+ "definition_id": "def:v1:6b182b386a95a228e7ab3a842dac4babe29c2259a2be0571b96c0aee29084dee",
1062
+ "path": "lib/necropsy/bench/release_audit/run_provenance.rb",
1063
+ "line": 60,
1064
+ "end_line": 60,
1065
+ "loc": 1,
1066
+ "state": "blocked",
1067
+ "confidence": "low",
1068
+ "candidate": false,
1069
+ "diagnostic": true,
1070
+ "category": "partial_dispatch",
1071
+ "unknown": true,
1072
+ "rule_hits": [],
1073
+ "risk_flags": [
1074
+ "analysis_incomplete",
1075
+ "generated_method"
1076
+ ],
1077
+ "blocker_kinds": [
1078
+ "partial_dispatch"
1079
+ ],
1080
+ "reasons": [
1081
+ "Blocked by 4 unresolved runtime dispatches.",
1082
+ "Lowered because this node is generated by a Ruby accessor DSL."
1083
+ ]
1084
+ },
1085
+ {
1086
+ "id": "Necropsy::Bench::ReleaseAudit::RunProvenance#digest",
1087
+ "definition_id": "def:v1:11ffc271d51a6d4a0386b1a0bdaad954a60d04a2c8cba3996f26b2fdd57bb972",
1088
+ "path": "lib/necropsy/bench/release_audit/run_provenance.rb",
1089
+ "line": 75,
1090
+ "end_line": 77,
1091
+ "loc": 3,
1092
+ "state": "unreachable",
1093
+ "confidence": "low",
1094
+ "candidate": true,
1095
+ "diagnostic": false,
1096
+ "category": "unreachable",
1097
+ "unknown": false,
1098
+ "rule_hits": [],
1099
+ "risk_flags": [],
1100
+ "blocker_kinds": [],
1101
+ "reasons": [
1102
+ "Lowered because this node is near unresolved metaprogramming."
1103
+ ]
1104
+ },
1105
+ {
1106
+ "id": "Necropsy::Bench::ReleaseAudit::RunProvenance#ensure_clean!",
1107
+ "definition_id": "def:v1:97f0d1f77c9da04487680916cc5fd93a0edfd9362b8196f5b8c11149e353ea29",
1108
+ "path": "lib/necropsy/bench/release_audit/run_provenance.rb",
1109
+ "line": 62,
1110
+ "end_line": 66,
1111
+ "loc": 5,
1112
+ "state": "unreachable",
1113
+ "confidence": "low",
1114
+ "candidate": true,
1115
+ "diagnostic": false,
1116
+ "category": "unreachable",
1117
+ "unknown": false,
1118
+ "rule_hits": [],
1119
+ "risk_flags": [],
1120
+ "blocker_kinds": [],
1121
+ "reasons": [
1122
+ "Lowered because this node is near unresolved metaprogramming."
1123
+ ]
1124
+ },
1125
+ {
1126
+ "id": "Necropsy::Bench::ReleaseAudit::RunProvenance#environment",
1127
+ "definition_id": "def:v1:2a81bcba83190c300a1ec5261cca29df7ae91378fb5a23c4e50b81b109750909",
1128
+ "path": "lib/necropsy/bench/release_audit/run_provenance.rb",
1129
+ "line": 79,
1130
+ "end_line": 90,
1131
+ "loc": 12,
1132
+ "state": "unreachable",
1133
+ "confidence": "low",
1134
+ "candidate": true,
1135
+ "diagnostic": false,
1136
+ "category": "unreachable",
1137
+ "unknown": false,
1138
+ "rule_hits": [],
1139
+ "risk_flags": [],
1140
+ "blocker_kinds": [],
1141
+ "reasons": [
1142
+ "Lowered because this node is near unresolved metaprogramming."
1143
+ ]
1144
+ },
1145
+ {
1146
+ "id": "Necropsy::Bench::ReleaseAudit::RunProvenance#git_head",
1147
+ "definition_id": "def:v1:8a6a928cba3f5a784bc2811f573d8c5a956c336b856ad01a090509abca3686f6",
1148
+ "path": "lib/necropsy/bench/release_audit/run_provenance.rb",
1149
+ "line": 68,
1150
+ "end_line": 73,
1151
+ "loc": 6,
1152
+ "state": "unreachable",
1153
+ "confidence": "low",
1154
+ "candidate": true,
1155
+ "diagnostic": false,
1156
+ "category": "unreachable",
1157
+ "unknown": false,
1158
+ "rule_hits": [],
1159
+ "risk_flags": [],
1160
+ "blocker_kinds": [],
1161
+ "reasons": [
1162
+ "Lowered because this node is near unresolved metaprogramming."
1163
+ ]
1164
+ },
1165
+ {
1166
+ "id": "Necropsy::Bench::ReleaseAudit::RunProvenance#initialize",
1167
+ "definition_id": "def:v1:90d47867ca58ae271b8a8fcee2fa0265e1bd88694fcf00c8e3a1bd39f9f633ec",
1168
+ "path": "lib/necropsy/bench/release_audit/run_provenance.rb",
1169
+ "line": 14,
1170
+ "end_line": 20,
1171
+ "loc": 7,
1172
+ "state": "blocked",
1173
+ "confidence": "low",
1174
+ "candidate": false,
1175
+ "diagnostic": true,
1176
+ "category": "unknown_dispatch",
1177
+ "unknown": true,
1178
+ "rule_hits": [],
1179
+ "risk_flags": [
1180
+ "analysis_incomplete",
1181
+ "public_or_protected_visibility"
1182
+ ],
1183
+ "blocker_kinds": [
1184
+ "partial_dispatch",
1185
+ "unknown_dispatch"
1186
+ ],
1187
+ "reasons": [
1188
+ "Blocked by 552 unresolved runtime dispatches."
1189
+ ]
1190
+ },
1191
+ {
1192
+ "id": "Necropsy::Bench::ReleaseAudit::RunProvenance#load_and_validate!",
1193
+ "definition_id": "def:v1:c81fe9fc98770f815c844549ca87941d52275a3292630b1964a7e7a567c65339",
1194
+ "path": "lib/necropsy/bench/release_audit/run_provenance.rb",
1195
+ "line": 44,
1196
+ "end_line": 56,
1197
+ "loc": 13,
1198
+ "state": "unreachable",
1199
+ "confidence": "low",
1200
+ "candidate": true,
1201
+ "diagnostic": false,
1202
+ "category": "unreachable",
1203
+ "unknown": false,
1204
+ "rule_hits": [],
1205
+ "risk_flags": [
1206
+ "public_or_protected_visibility"
1207
+ ],
1208
+ "blocker_kinds": [],
1209
+ "reasons": [
1210
+ "Lowered because this node is near unresolved metaprogramming."
1211
+ ]
1212
+ },
1213
+ {
1214
+ "id": "Necropsy::Bench::ReleaseAudit::RunProvenance#manifest_path",
1215
+ "definition_id": "def:v1:41de7085d28a64e41258ec2272e36fb337fe94d875d036f87071c6d3073666a1",
1216
+ "path": "lib/necropsy/bench/release_audit/run_provenance.rb",
1217
+ "line": 60,
1218
+ "end_line": 60,
1219
+ "loc": 1,
1220
+ "state": "blocked",
1221
+ "confidence": "low",
1222
+ "candidate": false,
1223
+ "diagnostic": true,
1224
+ "category": "partial_dispatch",
1225
+ "unknown": true,
1226
+ "rule_hits": [],
1227
+ "risk_flags": [
1228
+ "analysis_incomplete",
1229
+ "generated_method"
1230
+ ],
1231
+ "blocker_kinds": [
1232
+ "partial_dispatch"
1233
+ ],
1234
+ "reasons": [
1235
+ "Blocked by 3 unresolved runtime dispatches.",
1236
+ "Lowered because this node is generated by a Ruby accessor DSL."
1237
+ ]
1238
+ },
1239
+ {
1240
+ "id": "Necropsy::Bench::ReleaseAudit::RunProvenance#operating_system",
1241
+ "definition_id": "def:v1:a083f21af36454ccf211a16e564b1131e29581487383c62a368c2bf733fb8189",
1242
+ "path": "lib/necropsy/bench/release_audit/run_provenance.rb",
1243
+ "line": 114,
1244
+ "end_line": 122,
1245
+ "loc": 9,
1246
+ "state": "unreachable",
1247
+ "confidence": "low",
1248
+ "candidate": true,
1249
+ "diagnostic": false,
1250
+ "category": "unreachable",
1251
+ "unknown": false,
1252
+ "rule_hits": [],
1253
+ "risk_flags": [],
1254
+ "blocker_kinds": [],
1255
+ "reasons": [
1256
+ "Lowered because this node is near unresolved metaprogramming."
1257
+ ]
1258
+ },
1259
+ {
1260
+ "id": "Necropsy::Bench::ReleaseAudit::RunProvenance#output_dir",
1261
+ "definition_id": "def:v1:17de6153edeacf061145421276ac1279dac59e73a5ec1d26d62aa7e9cd7c84be",
1262
+ "path": "lib/necropsy/bench/release_audit/run_provenance.rb",
1263
+ "line": 60,
1264
+ "end_line": 60,
1265
+ "loc": 1,
1266
+ "state": "blocked",
1267
+ "confidence": "low",
1268
+ "candidate": false,
1269
+ "diagnostic": true,
1270
+ "category": "partial_dispatch",
1271
+ "unknown": true,
1272
+ "rule_hits": [],
1273
+ "risk_flags": [
1274
+ "analysis_incomplete",
1275
+ "generated_method"
1276
+ ],
1277
+ "blocker_kinds": [
1278
+ "partial_dispatch"
1279
+ ],
1280
+ "reasons": [
1281
+ "Blocked by 10 unresolved runtime dispatches.",
1282
+ "Lowered because this node is generated by a Ruby accessor DSL."
1283
+ ]
1284
+ },
1285
+ {
1286
+ "id": "Necropsy::Bench::ReleaseAudit::RunProvenance#validate_environment!",
1287
+ "definition_id": "def:v1:bd5a31c2545d925a209e41d79841157717e013ba3a177b33ce77da349d42c15d",
1288
+ "path": "lib/necropsy/bench/release_audit/run_provenance.rb",
1289
+ "line": 92,
1290
+ "end_line": 100,
1291
+ "loc": 9,
1292
+ "state": "unreachable",
1293
+ "confidence": "low",
1294
+ "candidate": true,
1295
+ "diagnostic": false,
1296
+ "category": "unreachable",
1297
+ "unknown": false,
1298
+ "rule_hits": [],
1299
+ "risk_flags": [],
1300
+ "blocker_kinds": [],
1301
+ "reasons": [
1302
+ "Lowered because this node is near unresolved metaprogramming."
1303
+ ]
1304
+ },
1305
+ {
1306
+ "id": "Necropsy::Bench::ReviewQueue#initialize",
1307
+ "definition_id": "def:v1:8bbd2d0801726c9c679a6d4936dc427c01c6b9f9ebf5dfb24c69c0185f2b90c8",
1308
+ "path": "lib/necropsy/bench/review_queue.rb",
1309
+ "line": 17,
1310
+ "end_line": 24,
1311
+ "loc": 8,
1312
+ "state": "blocked",
1313
+ "confidence": "low",
1314
+ "candidate": false,
1315
+ "diagnostic": true,
1316
+ "category": "unknown_dispatch",
1317
+ "unknown": true,
1318
+ "rule_hits": [],
1319
+ "risk_flags": [
1320
+ "analysis_incomplete",
1321
+ "public_or_protected_visibility"
1322
+ ],
1323
+ "blocker_kinds": [
1324
+ "partial_dispatch",
1325
+ "unknown_dispatch"
1326
+ ],
1327
+ "reasons": [
1328
+ "Blocked by 552 unresolved runtime dispatches.",
1329
+ "Lowered because this node is near unresolved metaprogramming."
1330
+ ]
1331
+ },
1332
+ {
1333
+ "id": "Necropsy::Bench::ReviewQueue#validate_options!",
1334
+ "definition_id": "def:v1:0ae44a8f731da2b338b26914945b6a338b41d5eee6622efac32e93f38e10494f",
1335
+ "path": "lib/necropsy/bench/review_queue.rb",
1336
+ "line": 54,
1337
+ "end_line": 57,
1338
+ "loc": 4,
1339
+ "state": "unreachable",
1340
+ "confidence": "low",
1341
+ "candidate": true,
1342
+ "diagnostic": false,
1343
+ "category": "unreachable",
1344
+ "unknown": false,
1345
+ "rule_hits": [],
1346
+ "risk_flags": [],
1347
+ "blocker_kinds": [],
1348
+ "reasons": [
1349
+ "Lowered because this node is near unresolved metaprogramming."
1350
+ ]
1351
+ },
1352
+ {
1353
+ "id": "Necropsy::Bench::SeedRunner#initialize",
1354
+ "definition_id": "def:v1:8e30fa79d64d2b819e3c3b004344f41466f4e6beba0ffb15c03347dd9ffb13b7",
1355
+ "path": "lib/necropsy/bench/seed_runner.rb",
1356
+ "line": 16,
1357
+ "end_line": 38,
1358
+ "loc": 23,
1359
+ "state": "blocked",
1360
+ "confidence": "low",
1361
+ "candidate": false,
1362
+ "diagnostic": true,
1363
+ "category": "unknown_dispatch",
1364
+ "unknown": true,
1365
+ "rule_hits": [],
1366
+ "risk_flags": [
1367
+ "analysis_incomplete",
1368
+ "public_or_protected_visibility"
1369
+ ],
1370
+ "blocker_kinds": [
1371
+ "partial_dispatch",
1372
+ "unknown_dispatch"
1373
+ ],
1374
+ "reasons": [
1375
+ "Blocked by 551 unresolved runtime dispatches."
1376
+ ]
1377
+ },
1378
+ {
1379
+ "id": "Necropsy::Bench::SeedRunner#read_git_revision",
1380
+ "definition_id": "def:v1:13ff67beab72218cc8749225c0496177fe90fb5f2bf9c1ea638a97a4155d0dff",
1381
+ "path": "lib/necropsy/bench/seed_runner.rb",
1382
+ "line": 204,
1383
+ "end_line": 209,
1384
+ "loc": 6,
1385
+ "state": "unreachable",
1386
+ "confidence": "low",
1387
+ "candidate": true,
1388
+ "diagnostic": false,
1389
+ "category": "unreachable",
1390
+ "unknown": false,
1391
+ "rule_hits": [],
1392
+ "risk_flags": [],
1393
+ "blocker_kinds": [],
1394
+ "reasons": [
1395
+ "Lowered because this node is near unresolved metaprogramming."
1396
+ ]
1397
+ },
1398
+ {
1399
+ "id": "Necropsy::Bench::SeedRunner#read_process_rss",
1400
+ "definition_id": "def:v1:fedfcd023bbe8b4757c2a8a0895eac71b2d0799fbffa655cb4c9e9d9e06a2699",
1401
+ "path": "lib/necropsy/bench/seed_runner.rb",
1402
+ "line": 178,
1403
+ "end_line": 202,
1404
+ "loc": 25,
1405
+ "state": "unreachable",
1406
+ "confidence": "low",
1407
+ "candidate": true,
1408
+ "diagnostic": false,
1409
+ "category": "unreachable",
1410
+ "unknown": false,
1411
+ "rule_hits": [],
1412
+ "risk_flags": [],
1413
+ "blocker_kinds": [],
1414
+ "reasons": [
1415
+ "Lowered because this node is near unresolved metaprogramming."
1416
+ ]
1417
+ },
1418
+ {
1419
+ "id": "Necropsy::Bench::SeedRunner#tracked_git_dirty?",
1420
+ "definition_id": "def:v1:f0ba4cbd7303f2357f7742c36344f541531a11e3f570b7192baa6553012f55c5",
1421
+ "path": "lib/necropsy/bench/seed_runner.rb",
1422
+ "line": 211,
1423
+ "end_line": 216,
1424
+ "loc": 6,
1425
+ "state": "unreachable",
1426
+ "confidence": "low",
1427
+ "candidate": true,
1428
+ "diagnostic": false,
1429
+ "category": "unreachable",
1430
+ "unknown": false,
1431
+ "rule_hits": [],
1432
+ "risk_flags": [],
1433
+ "blocker_kinds": [],
1434
+ "reasons": [
1435
+ "Lowered because this node is near unresolved metaprogramming."
1436
+ ]
1437
+ },
1438
+ {
1439
+ "id": "Necropsy::BoundedCanonicalizer#active_containers",
1440
+ "definition_id": "def:v1:14f831d6b4450bf12812c6498d82035893ec4c2e97fcefabad69acabdf352704",
1441
+ "path": "lib/necropsy/bounded_canonicalizer.rb",
1442
+ "line": 45,
1443
+ "end_line": 45,
1444
+ "loc": 1,
1445
+ "state": "blocked",
1446
+ "confidence": "low",
1447
+ "candidate": false,
1448
+ "diagnostic": true,
1449
+ "category": "partial_dispatch",
1450
+ "unknown": true,
1451
+ "rule_hits": [],
1452
+ "risk_flags": [
1453
+ "analysis_incomplete",
1454
+ "generated_method"
1455
+ ],
1456
+ "blocker_kinds": [
1457
+ "partial_dispatch"
1458
+ ],
1459
+ "reasons": [
1460
+ "Blocked by 3 unresolved runtime dispatches.",
1461
+ "Lowered because this node is generated by a Ruby accessor DSL."
1462
+ ]
1463
+ },
1464
+ {
1465
+ "id": "Necropsy::BoundedCanonicalizer#append",
1466
+ "definition_id": "def:v1:c2dab320605412e753b0a08147625bb5617caab4a0651e01ac40c69cb22fd96b",
1467
+ "path": "lib/necropsy/bounded_canonicalizer.rb",
1468
+ "line": 172,
1469
+ "end_line": 177,
1470
+ "loc": 6,
1471
+ "state": "unreachable",
1472
+ "confidence": "low",
1473
+ "candidate": true,
1474
+ "diagnostic": false,
1475
+ "category": "unreachable",
1476
+ "unknown": false,
1477
+ "rule_hits": [],
1478
+ "risk_flags": [],
1479
+ "blocker_kinds": [],
1480
+ "reasons": [
1481
+ "Lowered because this node is near unresolved metaprogramming."
1482
+ ]
1483
+ },
1484
+ {
1485
+ "id": "Necropsy::BoundedCanonicalizer#canonical_float",
1486
+ "definition_id": "def:v1:89852cf4b27af586b6d7f324ce138d871cd1e49883213d1501f19dd86d7fc121",
1487
+ "path": "lib/necropsy/bounded_canonicalizer.rb",
1488
+ "line": 162,
1489
+ "end_line": 166,
1490
+ "loc": 5,
1491
+ "state": "unreachable",
1492
+ "confidence": "low",
1493
+ "candidate": true,
1494
+ "diagnostic": false,
1495
+ "category": "unreachable",
1496
+ "unknown": false,
1497
+ "rule_hits": [],
1498
+ "risk_flags": [],
1499
+ "blocker_kinds": [],
1500
+ "reasons": [
1501
+ "Lowered because this node is near unresolved metaprogramming."
1502
+ ]
1503
+ },
1504
+ {
1505
+ "id": "Necropsy::BoundedCanonicalizer#canonical_string",
1506
+ "definition_id": "def:v1:d5cff430a4d5d99b98df16614226b97d0e1c04019044dd998c564fec27c95ea6",
1507
+ "path": "lib/necropsy/bounded_canonicalizer.rb",
1508
+ "line": 154,
1509
+ "end_line": 160,
1510
+ "loc": 7,
1511
+ "state": "blocked",
1512
+ "confidence": "low",
1513
+ "candidate": false,
1514
+ "diagnostic": true,
1515
+ "category": "partial_dispatch",
1516
+ "unknown": true,
1517
+ "rule_hits": [],
1518
+ "risk_flags": [
1519
+ "analysis_incomplete"
1520
+ ],
1521
+ "blocker_kinds": [
1522
+ "partial_dispatch"
1523
+ ],
1524
+ "reasons": [
1525
+ "Blocked by 6 unresolved runtime dispatches.",
1526
+ "Lowered because this node is near unresolved metaprogramming."
1527
+ ]
1528
+ },
1529
+ {
1530
+ "id": "Necropsy::BoundedCanonicalizer#check_depth!",
1531
+ "definition_id": "def:v1:816d9583ddb0f336aacaa2519ca74f875141fb6de137be4819cb0a4ca8a3d5b8",
1532
+ "path": "lib/necropsy/bounded_canonicalizer.rb",
1533
+ "line": 196,
1534
+ "end_line": 200,
1535
+ "loc": 5,
1536
+ "state": "blocked",
1537
+ "confidence": "low",
1538
+ "candidate": false,
1539
+ "diagnostic": true,
1540
+ "category": "partial_dispatch",
1541
+ "unknown": true,
1542
+ "rule_hits": [],
1543
+ "risk_flags": [
1544
+ "analysis_incomplete"
1545
+ ],
1546
+ "blocker_kinds": [
1547
+ "partial_dispatch"
1548
+ ],
1549
+ "reasons": [
1550
+ "Blocked by 1 unresolved runtime dispatch.",
1551
+ "Lowered because this node is near unresolved metaprogramming."
1552
+ ]
1553
+ },
1554
+ {
1555
+ "id": "Necropsy::BoundedCanonicalizer#check_scalar_size!",
1556
+ "definition_id": "def:v1:fcae9d41850c5594bb85f9e8e45ed3bdd91b20f989b8558d5b22d2c052e83e4a",
1557
+ "path": "lib/necropsy/bounded_canonicalizer.rb",
1558
+ "line": 190,
1559
+ "end_line": 194,
1560
+ "loc": 5,
1561
+ "state": "unreachable",
1562
+ "confidence": "low",
1563
+ "candidate": true,
1564
+ "diagnostic": false,
1565
+ "category": "unreachable",
1566
+ "unknown": false,
1567
+ "rule_hits": [],
1568
+ "risk_flags": [],
1569
+ "blocker_kinds": [],
1570
+ "reasons": [
1571
+ "Lowered because this node is near unresolved metaprogramming."
1572
+ ]
1573
+ },
1574
+ {
1575
+ "id": "Necropsy::BoundedCanonicalizer#count_item!",
1576
+ "definition_id": "def:v1:f2334c47dd4ad52edb2f6e52deaa1df2f1c8a83bb3da42cdad6c8f0290831b55",
1577
+ "path": "lib/necropsy/bounded_canonicalizer.rb",
1578
+ "line": 202,
1579
+ "end_line": 205,
1580
+ "loc": 4,
1581
+ "state": "blocked",
1582
+ "confidence": "low",
1583
+ "candidate": false,
1584
+ "diagnostic": true,
1585
+ "category": "partial_dispatch",
1586
+ "unknown": true,
1587
+ "rule_hits": [],
1588
+ "risk_flags": [
1589
+ "analysis_incomplete"
1590
+ ],
1591
+ "blocker_kinds": [
1592
+ "partial_dispatch"
1593
+ ],
1594
+ "reasons": [
1595
+ "Blocked by 2 unresolved runtime dispatches.",
1596
+ "Lowered because this node is near unresolved metaprogramming."
1597
+ ]
1598
+ },
1599
+ {
1600
+ "id": "Necropsy::BoundedCanonicalizer#encoded_string",
1601
+ "definition_id": "def:v1:66d7b57a76e88a9a4999c276fdd149741c0d5b550ec9d4a3eb0d58a43137f6a6",
1602
+ "path": "lib/necropsy/bounded_canonicalizer.rb",
1603
+ "line": 150,
1604
+ "end_line": 152,
1605
+ "loc": 3,
1606
+ "state": "unreachable",
1607
+ "confidence": "medium",
1608
+ "candidate": true,
1609
+ "diagnostic": false,
1610
+ "category": "unreachable",
1611
+ "unknown": false,
1612
+ "rule_hits": [],
1613
+ "risk_flags": [],
1614
+ "blocker_kinds": [],
1615
+ "reasons": []
1616
+ },
1617
+ {
1618
+ "id": "Necropsy::BoundedCanonicalizer#enter_container!",
1619
+ "definition_id": "def:v1:80312dd5df38e3f3728e4a6a1f9f95acb5236fa84a973e8081c0f4089e586e4e",
1620
+ "path": "lib/necropsy/bounded_canonicalizer.rb",
1621
+ "line": 179,
1622
+ "end_line": 184,
1623
+ "loc": 6,
1624
+ "state": "blocked",
1625
+ "confidence": "low",
1626
+ "candidate": false,
1627
+ "diagnostic": true,
1628
+ "category": "partial_dispatch",
1629
+ "unknown": true,
1630
+ "rule_hits": [],
1631
+ "risk_flags": [
1632
+ "analysis_incomplete"
1633
+ ],
1634
+ "blocker_kinds": [
1635
+ "partial_dispatch"
1636
+ ],
1637
+ "reasons": [
1638
+ "Blocked by 3 unresolved runtime dispatches.",
1639
+ "Lowered because this node is near unresolved metaprogramming."
1640
+ ]
1641
+ },
1642
+ {
1643
+ "id": "Necropsy::BoundedCanonicalizer#json_string",
1644
+ "definition_id": "def:v1:557c2bce01094a45acaea7dc8d46d749b09474f3b1c65f0dd1dc7f5ff8d4b1dd",
1645
+ "path": "lib/necropsy/bounded_canonicalizer.rb",
1646
+ "line": 168,
1647
+ "end_line": 170,
1648
+ "loc": 3,
1649
+ "state": "blocked",
1650
+ "confidence": "low",
1651
+ "candidate": false,
1652
+ "diagnostic": true,
1653
+ "category": "partial_dispatch",
1654
+ "unknown": true,
1655
+ "rule_hits": [],
1656
+ "risk_flags": [
1657
+ "analysis_incomplete"
1658
+ ],
1659
+ "blocker_kinds": [
1660
+ "partial_dispatch"
1661
+ ],
1662
+ "reasons": [
1663
+ "Blocked by 3 unresolved runtime dispatches.",
1664
+ "Lowered because this node is near unresolved metaprogramming."
1665
+ ]
1666
+ },
1667
+ {
1668
+ "id": "Necropsy::BoundedCanonicalizer#leave_container",
1669
+ "definition_id": "def:v1:5fffaaddb21f356b2c65b88dd185b6c415d87d08f9dc0b8aebddc69ff1f272cd",
1670
+ "path": "lib/necropsy/bounded_canonicalizer.rb",
1671
+ "line": 186,
1672
+ "end_line": 188,
1673
+ "loc": 3,
1674
+ "state": "blocked",
1675
+ "confidence": "low",
1676
+ "candidate": false,
1677
+ "diagnostic": true,
1678
+ "category": "partial_dispatch",
1679
+ "unknown": true,
1680
+ "rule_hits": [],
1681
+ "risk_flags": [
1682
+ "analysis_incomplete"
1683
+ ],
1684
+ "blocker_kinds": [
1685
+ "partial_dispatch"
1686
+ ],
1687
+ "reasons": [
1688
+ "Blocked by 3 unresolved runtime dispatches.",
1689
+ "Lowered because this node is near unresolved metaprogramming."
1690
+ ]
1691
+ },
1692
+ {
1693
+ "id": "Necropsy::BoundedCanonicalizer#max_depth",
1694
+ "definition_id": "def:v1:09a697f9396fc8393a80ee75eeb5899cc20edffcdc3675cb606a4db4d97b6f66",
1695
+ "path": "lib/necropsy/bounded_canonicalizer.rb",
1696
+ "line": 45,
1697
+ "end_line": 45,
1698
+ "loc": 1,
1699
+ "state": "blocked",
1700
+ "confidence": "low",
1701
+ "candidate": false,
1702
+ "diagnostic": true,
1703
+ "category": "partial_dispatch",
1704
+ "unknown": true,
1705
+ "rule_hits": [],
1706
+ "risk_flags": [
1707
+ "analysis_incomplete",
1708
+ "generated_method"
1709
+ ],
1710
+ "blocker_kinds": [
1711
+ "partial_dispatch"
1712
+ ],
1713
+ "reasons": [
1714
+ "Blocked by 2 unresolved runtime dispatches.",
1715
+ "Lowered because this node is generated by a Ruby accessor DSL."
1716
+ ]
1717
+ },
1718
+ {
1719
+ "id": "Necropsy::BoundedCanonicalizer#max_items",
1720
+ "definition_id": "def:v1:e69dbb252f11ce6836abfb094b9cddecd076f7bda95fcb01266fb3b1c4fc4413",
1721
+ "path": "lib/necropsy/bounded_canonicalizer.rb",
1722
+ "line": 45,
1723
+ "end_line": 45,
1724
+ "loc": 1,
1725
+ "state": "blocked",
1726
+ "confidence": "low",
1727
+ "candidate": false,
1728
+ "diagnostic": true,
1729
+ "category": "partial_dispatch",
1730
+ "unknown": true,
1731
+ "rule_hits": [],
1732
+ "risk_flags": [
1733
+ "analysis_incomplete",
1734
+ "generated_method"
1735
+ ],
1736
+ "blocker_kinds": [
1737
+ "partial_dispatch"
1738
+ ],
1739
+ "reasons": [
1740
+ "Blocked by 2 unresolved runtime dispatches.",
1741
+ "Lowered because this node is generated by a Ruby accessor DSL."
1742
+ ]
1743
+ },
1744
+ {
1745
+ "id": "Necropsy::BoundedCanonicalizer#max_string_bytes",
1746
+ "definition_id": "def:v1:0ade86865b209686298dde73e58fce75e7c8174661df7d74f358a123f7401ef4",
1747
+ "path": "lib/necropsy/bounded_canonicalizer.rb",
1748
+ "line": 45,
1749
+ "end_line": 45,
1750
+ "loc": 1,
1751
+ "state": "unreachable",
1752
+ "confidence": "low",
1753
+ "candidate": true,
1754
+ "diagnostic": false,
1755
+ "category": "generated_method",
1756
+ "unknown": false,
1757
+ "rule_hits": [],
1758
+ "risk_flags": [
1759
+ "generated_method"
1760
+ ],
1761
+ "blocker_kinds": [],
1762
+ "reasons": [
1763
+ "Lowered because this node is generated by a Ruby accessor DSL."
1764
+ ]
1765
+ },
1766
+ {
1767
+ "id": "Necropsy::BoundedCanonicalizer#max_total_bytes",
1768
+ "definition_id": "def:v1:7e3dfc28e422c97b2868e5cb1e0aed9473963e45cc71f4f08633fd0ef582fe35",
1769
+ "path": "lib/necropsy/bounded_canonicalizer.rb",
1770
+ "line": 45,
1771
+ "end_line": 45,
1772
+ "loc": 1,
1773
+ "state": "blocked",
1774
+ "confidence": "low",
1775
+ "candidate": false,
1776
+ "diagnostic": true,
1777
+ "category": "partial_dispatch",
1778
+ "unknown": true,
1779
+ "rule_hits": [],
1780
+ "risk_flags": [
1781
+ "analysis_incomplete",
1782
+ "generated_method"
1783
+ ],
1784
+ "blocker_kinds": [
1785
+ "partial_dispatch"
1786
+ ],
1787
+ "reasons": [
1788
+ "Blocked by 1 unresolved runtime dispatch.",
1789
+ "Lowered because this node is generated by a Ruby accessor DSL."
1790
+ ]
1791
+ },
1792
+ {
1793
+ "id": "Necropsy::BoundedCanonicalizer#process_array_next",
1794
+ "definition_id": "def:v1:93f8305b9f4266a25d470ee03e73e1b059aed811fc63d8430a88640a5d8fc31e",
1795
+ "path": "lib/necropsy/bounded_canonicalizer.rb",
1796
+ "line": 85,
1797
+ "end_line": 95,
1798
+ "loc": 11,
1799
+ "state": "unreachable",
1800
+ "confidence": "low",
1801
+ "candidate": true,
1802
+ "diagnostic": false,
1803
+ "category": "unreachable",
1804
+ "unknown": false,
1805
+ "rule_hits": [],
1806
+ "risk_flags": [],
1807
+ "blocker_kinds": [],
1808
+ "reasons": [
1809
+ "Lowered because this node is near unresolved metaprogramming."
1810
+ ]
1811
+ },
1812
+ {
1813
+ "id": "Necropsy::BoundedCanonicalizer#process_hash_next",
1814
+ "definition_id": "def:v1:66c6d46d09f575c6d6e863e7ea99744fca862e936a205a07b70ad0b924883ece",
1815
+ "path": "lib/necropsy/bounded_canonicalizer.rb",
1816
+ "line": 102,
1817
+ "end_line": 119,
1818
+ "loc": 18,
1819
+ "state": "unreachable",
1820
+ "confidence": "low",
1821
+ "candidate": true,
1822
+ "diagnostic": false,
1823
+ "category": "unreachable",
1824
+ "unknown": false,
1825
+ "rule_hits": [],
1826
+ "risk_flags": [],
1827
+ "blocker_kinds": [],
1828
+ "reasons": [
1829
+ "Lowered because this node is near unresolved metaprogramming."
1830
+ ]
1831
+ },
1832
+ {
1833
+ "id": "Necropsy::BoundedCanonicalizer#process_hash_pair_complete",
1834
+ "definition_id": "def:v1:1de6212da27516a4977319ea36c8d379e02e4ad432d206db38136f86f723e152",
1835
+ "path": "lib/necropsy/bounded_canonicalizer.rb",
1836
+ "line": 121,
1837
+ "end_line": 124,
1838
+ "loc": 4,
1839
+ "state": "unreachable",
1840
+ "confidence": "low",
1841
+ "candidate": true,
1842
+ "diagnostic": false,
1843
+ "category": "unreachable",
1844
+ "unknown": false,
1845
+ "rule_hits": [],
1846
+ "risk_flags": [],
1847
+ "blocker_kinds": [],
1848
+ "reasons": [
1849
+ "Lowered because this node is near unresolved metaprogramming."
1850
+ ]
1851
+ },
1852
+ {
1853
+ "id": "Necropsy::BoundedCanonicalizer#process_object_complete",
1854
+ "definition_id": "def:v1:2b228c0b059990d69845afbdb750a8e507bb1c9bb87d25c6a47cca092e170ef2",
1855
+ "path": "lib/necropsy/bounded_canonicalizer.rb",
1856
+ "line": 141,
1857
+ "end_line": 144,
1858
+ "loc": 4,
1859
+ "state": "unreachable",
1860
+ "confidence": "medium",
1861
+ "candidate": true,
1862
+ "diagnostic": false,
1863
+ "category": "unreachable",
1864
+ "unknown": false,
1865
+ "rule_hits": [],
1866
+ "risk_flags": [],
1867
+ "blocker_kinds": [],
1868
+ "reasons": []
1869
+ },
1870
+ {
1871
+ "id": "Necropsy::BoundedCanonicalizer#process_raw",
1872
+ "definition_id": "def:v1:55d7395cdfe126022c7239a3c5bd52a623c3f948d3b7c438478b228c42736e0a",
1873
+ "path": "lib/necropsy/bounded_canonicalizer.rb",
1874
+ "line": 146,
1875
+ "end_line": 148,
1876
+ "loc": 3,
1877
+ "state": "unreachable",
1878
+ "confidence": "medium",
1879
+ "candidate": true,
1880
+ "diagnostic": false,
1881
+ "category": "unreachable",
1882
+ "unknown": false,
1883
+ "rule_hits": [],
1884
+ "risk_flags": [],
1885
+ "blocker_kinds": [],
1886
+ "reasons": []
1887
+ },
1888
+ {
1889
+ "id": "Necropsy::BoundedCanonicalizer#process_value",
1890
+ "definition_id": "def:v1:52107371edae3671b0d81c23d96710bf7d3b64ca6158d07302ffd4e86c60abb6",
1891
+ "path": "lib/necropsy/bounded_canonicalizer.rb",
1892
+ "line": 62,
1893
+ "end_line": 77,
1894
+ "loc": 16,
1895
+ "state": "unreachable",
1896
+ "confidence": "medium",
1897
+ "candidate": true,
1898
+ "diagnostic": false,
1899
+ "category": "unreachable",
1900
+ "unknown": false,
1901
+ "rule_hits": [],
1902
+ "risk_flags": [],
1903
+ "blocker_kinds": [],
1904
+ "reasons": []
1905
+ },
1906
+ {
1907
+ "id": "Necropsy::BoundedCanonicalizer#start_array",
1908
+ "definition_id": "def:v1:00765fe57965bfcf55f4d45096c93e403b2805a13f1fe7d742c1e9adf15a6a75",
1909
+ "path": "lib/necropsy/bounded_canonicalizer.rb",
1910
+ "line": 79,
1911
+ "end_line": 83,
1912
+ "loc": 5,
1913
+ "state": "blocked",
1914
+ "confidence": "low",
1915
+ "candidate": false,
1916
+ "diagnostic": true,
1917
+ "category": "partial_dispatch",
1918
+ "unknown": true,
1919
+ "rule_hits": [],
1920
+ "risk_flags": [
1921
+ "analysis_incomplete"
1922
+ ],
1923
+ "blocker_kinds": [
1924
+ "partial_dispatch"
1925
+ ],
1926
+ "reasons": [
1927
+ "Blocked by 1 unresolved runtime dispatch.",
1928
+ "Lowered because this node is near unresolved metaprogramming."
1929
+ ]
1930
+ },
1931
+ {
1932
+ "id": "Necropsy::BoundedCanonicalizer#start_hash",
1933
+ "definition_id": "def:v1:4ad7cb5f0fe43a544530b4722448ea9429bb5cb7932b2320218e9d730e156f54",
1934
+ "path": "lib/necropsy/bounded_canonicalizer.rb",
1935
+ "line": 97,
1936
+ "end_line": 100,
1937
+ "loc": 4,
1938
+ "state": "blocked",
1939
+ "confidence": "low",
1940
+ "candidate": false,
1941
+ "diagnostic": true,
1942
+ "category": "partial_dispatch",
1943
+ "unknown": true,
1944
+ "rule_hits": [],
1945
+ "risk_flags": [
1946
+ "analysis_incomplete"
1947
+ ],
1948
+ "blocker_kinds": [
1949
+ "partial_dispatch"
1950
+ ],
1951
+ "reasons": [
1952
+ "Blocked by 1 unresolved runtime dispatch.",
1953
+ "Lowered because this node is near unresolved metaprogramming."
1954
+ ]
1955
+ },
1956
+ {
1957
+ "id": "Necropsy::BoundedCanonicalizer#start_object",
1958
+ "definition_id": "def:v1:e04777fabe3733cf229c295c3e41d046a35a4712483467777814581e0854b6a9",
1959
+ "path": "lib/necropsy/bounded_canonicalizer.rb",
1960
+ "line": 126,
1961
+ "end_line": 139,
1962
+ "loc": 14,
1963
+ "state": "unreachable",
1964
+ "confidence": "low",
1965
+ "candidate": true,
1966
+ "diagnostic": false,
1967
+ "category": "unreachable",
1968
+ "unknown": false,
1969
+ "rule_hits": [],
1970
+ "risk_flags": [],
1971
+ "blocker_kinds": [],
1972
+ "reasons": [
1973
+ "Lowered because this node is near unresolved metaprogramming."
1974
+ ]
1975
+ },
1976
+ {
1977
+ "id": "Necropsy::CallGraph#dynamic_enabled?",
1978
+ "definition_id": "def:v1:023c2654c0b531772b21eecb19e07fddf1b1f2883e9e7b586da8d90dba4e9827",
1979
+ "path": "lib/necropsy/graph/call_graph.rb",
1980
+ "line": 171,
1981
+ "end_line": 173,
1982
+ "loc": 3,
1983
+ "state": "unreachable",
1984
+ "confidence": "low",
1985
+ "candidate": true,
1986
+ "diagnostic": false,
1987
+ "category": "unreachable",
1988
+ "unknown": false,
1989
+ "rule_hits": [],
1990
+ "risk_flags": [
1991
+ "public_or_protected_visibility"
1992
+ ],
1993
+ "blocker_kinds": [],
1994
+ "reasons": [
1995
+ "Lowered because this node is near unresolved metaprogramming."
1996
+ ]
1997
+ },
1998
+ {
1999
+ "id": "Necropsy::CallGraph#fallback_resolution?",
2000
+ "definition_id": "def:v1:779b22cd29d5bf497d5c86f87776f5353b53104e8505b4b5501a6d9ce70757cc",
2001
+ "path": "lib/necropsy/graph/call_graph.rb",
2002
+ "line": 459,
2003
+ "end_line": 465,
2004
+ "loc": 7,
2005
+ "state": "unreachable",
2006
+ "confidence": "low",
2007
+ "candidate": true,
2008
+ "diagnostic": false,
2009
+ "category": "unreachable",
2010
+ "unknown": false,
2011
+ "rule_hits": [],
2012
+ "risk_flags": [
2013
+ "public_or_protected_visibility"
2014
+ ],
2015
+ "blocker_kinds": [],
2016
+ "reasons": [
2017
+ "Lowered because this node is near unresolved metaprogramming."
2018
+ ]
2019
+ },
2020
+ {
2021
+ "id": "Necropsy::CallGraph#modules_for",
2022
+ "definition_id": "def:v1:b04884facb8e85f99683828556d2058c3bb8a636dc4f1ba117346a439fa8a738",
2023
+ "path": "lib/necropsy/graph/call_graph.rb",
2024
+ "line": 296,
2025
+ "end_line": 301,
2026
+ "loc": 6,
2027
+ "state": "unreachable",
2028
+ "confidence": "low",
2029
+ "candidate": true,
2030
+ "diagnostic": false,
2031
+ "category": "unreachable",
2032
+ "unknown": false,
2033
+ "rule_hits": [],
2034
+ "risk_flags": [
2035
+ "public_or_protected_visibility"
2036
+ ],
2037
+ "blocker_kinds": [],
2038
+ "reasons": [
2039
+ "Lowered because this node is near unresolved metaprogramming."
2040
+ ]
2041
+ },
2042
+ {
2043
+ "id": "Necropsy::CallGraph#runtime_feedback",
2044
+ "definition_id": "def:v1:158684f0a76f7d31fc1ed358f82231de0afe6aa72c75b53da89ee62ac552c67f",
2045
+ "path": "lib/necropsy/graph/call_graph.rb",
2046
+ "line": 175,
2047
+ "end_line": 181,
2048
+ "loc": 7,
2049
+ "state": "unreachable",
2050
+ "confidence": "low",
2051
+ "candidate": true,
2052
+ "diagnostic": false,
2053
+ "category": "unreachable",
2054
+ "unknown": false,
2055
+ "rule_hits": [],
2056
+ "risk_flags": [
2057
+ "public_or_protected_visibility"
2058
+ ],
2059
+ "blocker_kinds": [],
2060
+ "reasons": [
2061
+ "Lowered because this node is near unresolved metaprogramming."
2062
+ ]
2063
+ },
2064
+ {
2065
+ "id": "Necropsy::CallSiteIdentity#derived_id",
2066
+ "definition_id": "def:v1:738560a675fa8201981c3404c8b5c6dce685355c17619742d66c0c02db76531b",
2067
+ "path": "lib/necropsy/call_site_identity.rb",
2068
+ "line": 30,
2069
+ "end_line": 37,
2070
+ "loc": 8,
2071
+ "state": "unreachable",
2072
+ "confidence": "low",
2073
+ "candidate": true,
2074
+ "diagnostic": false,
2075
+ "category": "unreachable",
2076
+ "unknown": false,
2077
+ "rule_hits": [],
2078
+ "risk_flags": [],
2079
+ "blocker_kinds": [],
2080
+ "reasons": [
2081
+ "Lowered because this node is near unresolved metaprogramming."
2082
+ ]
2083
+ },
2084
+ {
2085
+ "id": "Necropsy::CallSiteIdentity#identifier",
2086
+ "definition_id": "def:v1:ba2de419619707559bafa5fd004124599f141442359704790b7fa05a7765c4dd",
2087
+ "path": "lib/necropsy/call_site_identity.rb",
2088
+ "line": 47,
2089
+ "end_line": 49,
2090
+ "loc": 3,
2091
+ "state": "blocked",
2092
+ "confidence": "low",
2093
+ "candidate": false,
2094
+ "diagnostic": true,
2095
+ "category": "partial_dispatch",
2096
+ "unknown": true,
2097
+ "rule_hits": [],
2098
+ "risk_flags": [
2099
+ "analysis_incomplete"
2100
+ ],
2101
+ "blocker_kinds": [
2102
+ "partial_dispatch"
2103
+ ],
2104
+ "reasons": [
2105
+ "Blocked by 11 unresolved runtime dispatches.",
2106
+ "Lowered because this node is near unresolved metaprogramming."
2107
+ ]
2108
+ },
2109
+ {
2110
+ "id": "Necropsy::CallSiteIdentity#legacy_id",
2111
+ "definition_id": "def:v1:13d3a437359541fee89b3537c70adc865b0219cdc4a07dad42f5b85bd2601f5e",
2112
+ "path": "lib/necropsy/call_site_identity.rb",
2113
+ "line": 39,
2114
+ "end_line": 45,
2115
+ "loc": 7,
2116
+ "state": "unreachable",
2117
+ "confidence": "medium",
2118
+ "candidate": true,
2119
+ "diagnostic": false,
2120
+ "category": "unreachable",
2121
+ "unknown": false,
2122
+ "rule_hits": [],
2123
+ "risk_flags": [],
2124
+ "blocker_kinds": [],
2125
+ "reasons": []
2126
+ },
2127
+ {
2128
+ "id": "Necropsy::CallSiteIdentity#source_id",
2129
+ "definition_id": "def:v1:a905746dec724a03abcd55109941e41e51bdd268a99b5ae8ec847898ab3371c9",
2130
+ "path": "lib/necropsy/call_site_identity.rb",
2131
+ "line": 17,
2132
+ "end_line": 28,
2133
+ "loc": 12,
2134
+ "state": "unreachable",
2135
+ "confidence": "low",
2136
+ "candidate": true,
2137
+ "diagnostic": false,
2138
+ "category": "unreachable",
2139
+ "unknown": false,
2140
+ "rule_hits": [],
2141
+ "risk_flags": [],
2142
+ "blocker_kinds": [],
2143
+ "reasons": [
2144
+ "Lowered because this node is near unresolved metaprogramming."
2145
+ ]
2146
+ },
2147
+ {
2148
+ "id": "Necropsy::Configuration#include_paths",
2149
+ "definition_id": "def:v1:1d24927a239a37fd7260adb630556b6863b12e2b4986e83d4dca54c197e57863",
2150
+ "path": "lib/necropsy/configuration.rb",
2151
+ "line": 195,
2152
+ "end_line": 197,
2153
+ "loc": 3,
2154
+ "state": "unreachable",
2155
+ "confidence": "medium",
2156
+ "candidate": true,
2157
+ "diagnostic": false,
2158
+ "category": "unreachable",
2159
+ "unknown": false,
2160
+ "rule_hits": [],
2161
+ "risk_flags": [
2162
+ "public_or_protected_visibility"
2163
+ ],
2164
+ "blocker_kinds": [],
2165
+ "reasons": []
2166
+ },
2167
+ {
2168
+ "id": "Necropsy::Configuration#min_observation_days",
2169
+ "definition_id": "def:v1:edf797eb3d424fc7c7199300f4c6b176faf8ab96a5a9dc4efdf921b8967577b2",
2170
+ "path": "lib/necropsy/configuration.rb",
2171
+ "line": 113,
2172
+ "end_line": 117,
2173
+ "loc": 5,
2174
+ "state": "unreachable",
2175
+ "confidence": "low",
2176
+ "candidate": true,
2177
+ "diagnostic": false,
2178
+ "category": "unreachable",
2179
+ "unknown": false,
2180
+ "rule_hits": [],
2181
+ "risk_flags": [
2182
+ "public_or_protected_visibility"
2183
+ ],
2184
+ "blocker_kinds": [],
2185
+ "reasons": [
2186
+ "Lowered because this node is near unresolved metaprogramming."
2187
+ ]
2188
+ },
2189
+ {
2190
+ "id": "Necropsy::ConventionRules::Rule#initialize",
2191
+ "definition_id": "def:v1:9375e3e5b18274fe196bd330e040edef4712db65542c820101c1a65402f08141",
2192
+ "path": "lib/necropsy/convention_rules.rb",
2193
+ "line": 6,
2194
+ "end_line": 33,
2195
+ "loc": 28,
2196
+ "state": "blocked",
2197
+ "confidence": "low",
2198
+ "candidate": false,
2199
+ "diagnostic": true,
2200
+ "category": "partial_dispatch",
2201
+ "unknown": true,
2202
+ "rule_hits": [],
2203
+ "risk_flags": [
2204
+ "analysis_incomplete",
2205
+ "public_or_protected_visibility"
2206
+ ],
2207
+ "blocker_kinds": [
2208
+ "partial_dispatch",
2209
+ "unknown_dispatch"
2210
+ ],
2211
+ "reasons": [
2212
+ "Blocked by 552 unresolved runtime dispatches.",
2213
+ "Lowered because this node is near unresolved metaprogramming."
2214
+ ]
2215
+ },
2216
+ {
2217
+ "id": "Necropsy::DefinitionIdentity#definition_id",
2218
+ "definition_id": "def:v1:7cbf6e6bbf9354358269ecbbc8d9c2ef898a397e60079401dec436073bb8689a",
2219
+ "path": "lib/necropsy/definition_identity.rb",
2220
+ "line": 17,
2221
+ "end_line": 23,
2222
+ "loc": 7,
2223
+ "state": "blocked",
2224
+ "confidence": "low",
2225
+ "candidate": false,
2226
+ "diagnostic": true,
2227
+ "category": "partial_dispatch",
2228
+ "unknown": true,
2229
+ "rule_hits": [],
2230
+ "risk_flags": [
2231
+ "analysis_incomplete"
2232
+ ],
2233
+ "blocker_kinds": [
2234
+ "partial_dispatch"
2235
+ ],
2236
+ "reasons": [
2237
+ "Blocked by 6 unresolved runtime dispatches.",
2238
+ "Lowered because this node is near unresolved metaprogramming."
2239
+ ]
2240
+ },
2241
+ {
2242
+ "id": "Necropsy::DefinitionIdentity#excluded_key?",
2243
+ "definition_id": "def:v1:e6b0dac2ca82d3774be9ab5b0f8350faeb69cccf4d9b32722976137a22ec371a",
2244
+ "path": "lib/necropsy/definition_identity.rb",
2245
+ "line": 25,
2246
+ "end_line": 28,
2247
+ "loc": 4,
2248
+ "state": "blocked",
2249
+ "confidence": "low",
2250
+ "candidate": false,
2251
+ "diagnostic": true,
2252
+ "category": "partial_dispatch",
2253
+ "unknown": true,
2254
+ "rule_hits": [],
2255
+ "risk_flags": [
2256
+ "analysis_incomplete"
2257
+ ],
2258
+ "blocker_kinds": [
2259
+ "partial_dispatch"
2260
+ ],
2261
+ "reasons": [
2262
+ "Blocked by 1 unresolved runtime dispatch.",
2263
+ "Lowered because this node is near unresolved metaprogramming."
2264
+ ]
2265
+ },
2266
+ {
2267
+ "id": "Necropsy::DefinitionIdentity.excluded_key?",
2268
+ "definition_id": "def:v1:9de917759cf84bed3d3df74f81113da174815ea62d1e654757a8a6353db9eb86",
2269
+ "path": "lib/necropsy/definition_identity.rb",
2270
+ "line": 25,
2271
+ "end_line": 28,
2272
+ "loc": 4,
2273
+ "state": "unreachable",
2274
+ "confidence": "low",
2275
+ "candidate": true,
2276
+ "diagnostic": false,
2277
+ "category": "generated_method",
2278
+ "unknown": false,
2279
+ "rule_hits": [],
2280
+ "risk_flags": [
2281
+ "generated_method"
2282
+ ],
2283
+ "blocker_kinds": [],
2284
+ "reasons": [
2285
+ "Lowered because this node is near unresolved metaprogramming."
2286
+ ]
2287
+ },
2288
+ {
2289
+ "id": "Necropsy::DefinitionIdentity::CanonicalDigest#active_containers",
2290
+ "definition_id": "def:v1:cf913853f7bb4f408c009f597903121d3077ed111701304c0a4e35794c6e74ba",
2291
+ "path": "lib/necropsy/definition_identity/canonical_digest.rb",
2292
+ "line": 49,
2293
+ "end_line": 49,
2294
+ "loc": 1,
2295
+ "state": "blocked",
2296
+ "confidence": "low",
2297
+ "candidate": false,
2298
+ "diagnostic": true,
2299
+ "category": "partial_dispatch",
2300
+ "unknown": true,
2301
+ "rule_hits": [],
2302
+ "risk_flags": [
2303
+ "analysis_incomplete",
2304
+ "generated_method"
2305
+ ],
2306
+ "blocker_kinds": [
2307
+ "partial_dispatch"
2308
+ ],
2309
+ "reasons": [
2310
+ "Blocked by 3 unresolved runtime dispatches.",
2311
+ "Lowered because this node is generated by a Ruby accessor DSL."
2312
+ ]
2313
+ },
2314
+ {
2315
+ "id": "Necropsy::DefinitionIdentity::CanonicalDigest#check_depth!",
2316
+ "definition_id": "def:v1:1253af15fc79840d080b60693b82920ecce9f335ab286708104d0508f8cc8772",
2317
+ "path": "lib/necropsy/definition_identity/canonical_digest.rb",
2318
+ "line": 215,
2319
+ "end_line": 219,
2320
+ "loc": 5,
2321
+ "state": "blocked",
2322
+ "confidence": "low",
2323
+ "candidate": false,
2324
+ "diagnostic": true,
2325
+ "category": "partial_dispatch",
2326
+ "unknown": true,
2327
+ "rule_hits": [],
2328
+ "risk_flags": [
2329
+ "analysis_incomplete"
2330
+ ],
2331
+ "blocker_kinds": [
2332
+ "partial_dispatch"
2333
+ ],
2334
+ "reasons": [
2335
+ "Blocked by 1 unresolved runtime dispatch.",
2336
+ "Lowered because this node is near unresolved metaprogramming."
2337
+ ]
2338
+ },
2339
+ {
2340
+ "id": "Necropsy::DefinitionIdentity::CanonicalDigest#enter_container!",
2341
+ "definition_id": "def:v1:c02828002f340ddc9520eb6539cbb4e334d9fccfd5d5e7c9662bda59ebad8b91",
2342
+ "path": "lib/necropsy/definition_identity/canonical_digest.rb",
2343
+ "line": 204,
2344
+ "end_line": 209,
2345
+ "loc": 6,
2346
+ "state": "blocked",
2347
+ "confidence": "low",
2348
+ "candidate": false,
2349
+ "diagnostic": true,
2350
+ "category": "partial_dispatch",
2351
+ "unknown": true,
2352
+ "rule_hits": [],
2353
+ "risk_flags": [
2354
+ "analysis_incomplete"
2355
+ ],
2356
+ "blocker_kinds": [
2357
+ "partial_dispatch"
2358
+ ],
2359
+ "reasons": [
2360
+ "Blocked by 3 unresolved runtime dispatches.",
2361
+ "Lowered because this node is near unresolved metaprogramming."
2362
+ ]
2363
+ },
2364
+ {
2365
+ "id": "Necropsy::DefinitionIdentity::CanonicalDigest#json_string",
2366
+ "definition_id": "def:v1:dcb39e614767c9d0f18481458f11453bfc389be7e1de633d53efa0cc02d50ec0",
2367
+ "path": "lib/necropsy/definition_identity/canonical_digest.rb",
2368
+ "line": 194,
2369
+ "end_line": 196,
2370
+ "loc": 3,
2371
+ "state": "blocked",
2372
+ "confidence": "low",
2373
+ "candidate": false,
2374
+ "diagnostic": true,
2375
+ "category": "partial_dispatch",
2376
+ "unknown": true,
2377
+ "rule_hits": [],
2378
+ "risk_flags": [
2379
+ "analysis_incomplete"
2380
+ ],
2381
+ "blocker_kinds": [
2382
+ "partial_dispatch"
2383
+ ],
2384
+ "reasons": [
2385
+ "Blocked by 5 unresolved runtime dispatches.",
2386
+ "Lowered because this node is near unresolved metaprogramming."
2387
+ ]
2388
+ },
2389
+ {
2390
+ "id": "Necropsy::DefinitionIdentity::CanonicalDigest#leave_container",
2391
+ "definition_id": "def:v1:85a556c25377489ed61bf8fcbeb731848733289741397beffc4558a600e284e9",
2392
+ "path": "lib/necropsy/definition_identity/canonical_digest.rb",
2393
+ "line": 211,
2394
+ "end_line": 213,
2395
+ "loc": 3,
2396
+ "state": "blocked",
2397
+ "confidence": "low",
2398
+ "candidate": false,
2399
+ "diagnostic": true,
2400
+ "category": "partial_dispatch",
2401
+ "unknown": true,
2402
+ "rule_hits": [],
2403
+ "risk_flags": [
2404
+ "analysis_incomplete"
2405
+ ],
2406
+ "blocker_kinds": [
2407
+ "partial_dispatch"
2408
+ ],
2409
+ "reasons": [
2410
+ "Blocked by 4 unresolved runtime dispatches.",
2411
+ "Lowered because this node is near unresolved metaprogramming."
2412
+ ]
2413
+ },
2414
+ {
2415
+ "id": "Necropsy::DefinitionIdentity::CanonicalDigest#max_depth",
2416
+ "definition_id": "def:v1:022e9b6b8011fdb86aabdba85f905578458c72acbba12aa5e52f541da6ac1fea",
2417
+ "path": "lib/necropsy/definition_identity/canonical_digest.rb",
2418
+ "line": 49,
2419
+ "end_line": 49,
2420
+ "loc": 1,
2421
+ "state": "blocked",
2422
+ "confidence": "low",
2423
+ "candidate": false,
2424
+ "diagnostic": true,
2425
+ "category": "partial_dispatch",
2426
+ "unknown": true,
2427
+ "rule_hits": [],
2428
+ "risk_flags": [
2429
+ "analysis_incomplete",
2430
+ "generated_method"
2431
+ ],
2432
+ "blocker_kinds": [
2433
+ "partial_dispatch"
2434
+ ],
2435
+ "reasons": [
2436
+ "Blocked by 2 unresolved runtime dispatches.",
2437
+ "Lowered because this node is generated by a Ruby accessor DSL."
2438
+ ]
2439
+ },
2440
+ {
2441
+ "id": "Necropsy::DefinitionIdentity::CanonicalDigest#process_array_next",
2442
+ "definition_id": "def:v1:a2f53d68d409094d9ab194208294e615672e8f0a855289ef053aaf61ec545148",
2443
+ "path": "lib/necropsy/definition_identity/canonical_digest.rb",
2444
+ "line": 124,
2445
+ "end_line": 134,
2446
+ "loc": 11,
2447
+ "state": "unreachable",
2448
+ "confidence": "low",
2449
+ "candidate": true,
2450
+ "diagnostic": false,
2451
+ "category": "unreachable",
2452
+ "unknown": false,
2453
+ "rule_hits": [],
2454
+ "risk_flags": [],
2455
+ "blocker_kinds": [],
2456
+ "reasons": [
2457
+ "Lowered because this node is near unresolved metaprogramming."
2458
+ ]
2459
+ },
2460
+ {
2461
+ "id": "Necropsy::DefinitionIdentity::CanonicalDigest#process_hash_next",
2462
+ "definition_id": "def:v1:8f584502a13a09678ca62ef079b96a64c8c383e25a94122f16e3d027056d8133",
2463
+ "path": "lib/necropsy/definition_identity/canonical_digest.rb",
2464
+ "line": 141,
2465
+ "end_line": 158,
2466
+ "loc": 18,
2467
+ "state": "unreachable",
2468
+ "confidence": "low",
2469
+ "candidate": true,
2470
+ "diagnostic": false,
2471
+ "category": "unreachable",
2472
+ "unknown": false,
2473
+ "rule_hits": [],
2474
+ "risk_flags": [],
2475
+ "blocker_kinds": [],
2476
+ "reasons": [
2477
+ "Lowered because this node is near unresolved metaprogramming."
2478
+ ]
2479
+ },
2480
+ {
2481
+ "id": "Necropsy::DefinitionIdentity::CanonicalDigest#process_hash_pair_complete",
2482
+ "definition_id": "def:v1:d46972fc392b61f39f5a7a38438171cf13ec958537bd66d2dea6d56321055137",
2483
+ "path": "lib/necropsy/definition_identity/canonical_digest.rb",
2484
+ "line": 160,
2485
+ "end_line": 163,
2486
+ "loc": 4,
2487
+ "state": "unreachable",
2488
+ "confidence": "low",
2489
+ "candidate": true,
2490
+ "diagnostic": false,
2491
+ "category": "unreachable",
2492
+ "unknown": false,
2493
+ "rule_hits": [],
2494
+ "risk_flags": [],
2495
+ "blocker_kinds": [],
2496
+ "reasons": [
2497
+ "Lowered because this node is near unresolved metaprogramming."
2498
+ ]
2499
+ },
2500
+ {
2501
+ "id": "Necropsy::DefinitionIdentity::CanonicalDigest#process_node_field",
2502
+ "definition_id": "def:v1:b592b4654a23e191f81e6acdf4f7437352ff5fae2d4f89b48cdc76f6b28e2316",
2503
+ "path": "lib/necropsy/definition_identity/canonical_digest.rb",
2504
+ "line": 99,
2505
+ "end_line": 111,
2506
+ "loc": 13,
2507
+ "state": "unreachable",
2508
+ "confidence": "low",
2509
+ "candidate": true,
2510
+ "diagnostic": false,
2511
+ "category": "unreachable",
2512
+ "unknown": false,
2513
+ "rule_hits": [],
2514
+ "risk_flags": [],
2515
+ "blocker_kinds": [],
2516
+ "reasons": [
2517
+ "Lowered because this node is near unresolved metaprogramming."
2518
+ ]
2519
+ },
2520
+ {
2521
+ "id": "Necropsy::DefinitionIdentity::CanonicalDigest#process_node_field_complete",
2522
+ "definition_id": "def:v1:7513417ff7d35ba021b87e484426c6f888646af3fe6f9b952384ef5ebd8b0918",
2523
+ "path": "lib/necropsy/definition_identity/canonical_digest.rb",
2524
+ "line": 113,
2525
+ "end_line": 116,
2526
+ "loc": 4,
2527
+ "state": "unreachable",
2528
+ "confidence": "low",
2529
+ "candidate": true,
2530
+ "diagnostic": false,
2531
+ "category": "unreachable",
2532
+ "unknown": false,
2533
+ "rule_hits": [],
2534
+ "risk_flags": [],
2535
+ "blocker_kinds": [],
2536
+ "reasons": [
2537
+ "Lowered because this node is near unresolved metaprogramming."
2538
+ ]
2539
+ },
2540
+ {
2541
+ "id": "Necropsy::DefinitionIdentity::CanonicalDigest#process_raw",
2542
+ "definition_id": "def:v1:0078b981958bdb63f41913029c0cd72397214b0b6d396e04b6f1adea319def14",
2543
+ "path": "lib/necropsy/definition_identity/canonical_digest.rb",
2544
+ "line": 165,
2545
+ "end_line": 167,
2546
+ "loc": 3,
2547
+ "state": "unreachable",
2548
+ "confidence": "low",
2549
+ "candidate": true,
2550
+ "diagnostic": false,
2551
+ "category": "unreachable",
2552
+ "unknown": false,
2553
+ "rule_hits": [],
2554
+ "risk_flags": [],
2555
+ "blocker_kinds": [],
2556
+ "reasons": [
2557
+ "Lowered because this node is near unresolved metaprogramming."
2558
+ ]
2559
+ },
2560
+ {
2561
+ "id": "Necropsy::DefinitionIdentity::CanonicalDigest#process_value",
2562
+ "definition_id": "def:v1:1dc38d16e50ab81feb2dc7305292f159c1cdbe1b6d1b46c90df5d67c16de77f2",
2563
+ "path": "lib/necropsy/definition_identity/canonical_digest.rb",
2564
+ "line": 70,
2565
+ "end_line": 86,
2566
+ "loc": 17,
2567
+ "state": "unreachable",
2568
+ "confidence": "low",
2569
+ "candidate": true,
2570
+ "diagnostic": false,
2571
+ "category": "unreachable",
2572
+ "unknown": false,
2573
+ "rule_hits": [],
2574
+ "risk_flags": [],
2575
+ "blocker_kinds": [],
2576
+ "reasons": [
2577
+ "Lowered because this node is near unresolved metaprogramming."
2578
+ ]
2579
+ },
2580
+ {
2581
+ "id": "Necropsy::DefinitionIdentity::CanonicalDigest#start_array",
2582
+ "definition_id": "def:v1:e8bbb200a7b0093669928f0529327df469904cc7dd519acb87a3b0e344d6d2b9",
2583
+ "path": "lib/necropsy/definition_identity/canonical_digest.rb",
2584
+ "line": 118,
2585
+ "end_line": 122,
2586
+ "loc": 5,
2587
+ "state": "blocked",
2588
+ "confidence": "low",
2589
+ "candidate": false,
2590
+ "diagnostic": true,
2591
+ "category": "partial_dispatch",
2592
+ "unknown": true,
2593
+ "rule_hits": [],
2594
+ "risk_flags": [
2595
+ "analysis_incomplete"
2596
+ ],
2597
+ "blocker_kinds": [
2598
+ "partial_dispatch"
2599
+ ],
2600
+ "reasons": [
2601
+ "Blocked by 1 unresolved runtime dispatch.",
2602
+ "Lowered because this node is near unresolved metaprogramming."
2603
+ ]
2604
+ },
2605
+ {
2606
+ "id": "Necropsy::DefinitionIdentity::CanonicalDigest#start_hash",
2607
+ "definition_id": "def:v1:f83e82d3cf23b5bedb0b3588d7906faf48fdbe6eb33570be8a1f9e8cb532807c",
2608
+ "path": "lib/necropsy/definition_identity/canonical_digest.rb",
2609
+ "line": 136,
2610
+ "end_line": 139,
2611
+ "loc": 4,
2612
+ "state": "blocked",
2613
+ "confidence": "low",
2614
+ "candidate": false,
2615
+ "diagnostic": true,
2616
+ "category": "partial_dispatch",
2617
+ "unknown": true,
2618
+ "rule_hits": [],
2619
+ "risk_flags": [
2620
+ "analysis_incomplete"
2621
+ ],
2622
+ "blocker_kinds": [
2623
+ "partial_dispatch"
2624
+ ],
2625
+ "reasons": [
2626
+ "Blocked by 1 unresolved runtime dispatch.",
2627
+ "Lowered because this node is near unresolved metaprogramming."
2628
+ ]
2629
+ },
2630
+ {
2631
+ "id": "Necropsy::DefinitionIdentity::CanonicalDigest#start_node",
2632
+ "definition_id": "def:v1:55ebf5b6a8e261ad45e5b42993e1a4d942f7f0f6ddc533139e5bb0bdf4f536f2",
2633
+ "path": "lib/necropsy/definition_identity/canonical_digest.rb",
2634
+ "line": 88,
2635
+ "end_line": 97,
2636
+ "loc": 10,
2637
+ "state": "unreachable",
2638
+ "confidence": "low",
2639
+ "candidate": true,
2640
+ "diagnostic": false,
2641
+ "category": "unreachable",
2642
+ "unknown": false,
2643
+ "rule_hits": [],
2644
+ "risk_flags": [],
2645
+ "blocker_kinds": [],
2646
+ "reasons": [
2647
+ "Lowered because this node is near unresolved metaprogramming."
2648
+ ]
2649
+ },
2650
+ {
2651
+ "id": "Necropsy::DefinitionIdentity::CanonicalDigest#tagged_scalar",
2652
+ "definition_id": "def:v1:4592c7633f291d4bfc384b5cbadb4f1ec60febe5d170e60d613494f1d7d56366",
2653
+ "path": "lib/necropsy/definition_identity/canonical_digest.rb",
2654
+ "line": 169,
2655
+ "end_line": 171,
2656
+ "loc": 3,
2657
+ "state": "unreachable",
2658
+ "confidence": "low",
2659
+ "candidate": true,
2660
+ "diagnostic": false,
2661
+ "category": "unreachable",
2662
+ "unknown": false,
2663
+ "rule_hits": [],
2664
+ "risk_flags": [],
2665
+ "blocker_kinds": [],
2666
+ "reasons": [
2667
+ "Lowered because this node is near unresolved metaprogramming."
2668
+ ]
2669
+ },
2670
+ {
2671
+ "id": "Necropsy::DefinitionIdentity::CanonicalDigest#write_float",
2672
+ "definition_id": "def:v1:5140fbaf5e7d3e6e2d995334c396d1dea3943f608571643a0fbf26788659cf0a",
2673
+ "path": "lib/necropsy/definition_identity/canonical_digest.rb",
2674
+ "line": 173,
2675
+ "end_line": 177,
2676
+ "loc": 5,
2677
+ "state": "unreachable",
2678
+ "confidence": "low",
2679
+ "candidate": true,
2680
+ "diagnostic": false,
2681
+ "category": "unreachable",
2682
+ "unknown": false,
2683
+ "rule_hits": [],
2684
+ "risk_flags": [],
2685
+ "blocker_kinds": [],
2686
+ "reasons": [
2687
+ "Lowered because this node is near unresolved metaprogramming."
2688
+ ]
2689
+ },
2690
+ {
2691
+ "id": "Necropsy::DefinitionIdentity::CanonicalDigest::StringOutput#initialize",
2692
+ "definition_id": "def:v1:c695c90f3af534eeb0f47e1a19b654abd138a1938493aab8c95597db93d6bcc7",
2693
+ "path": "lib/necropsy/definition_identity/canonical_digest.rb",
2694
+ "line": 250,
2695
+ "end_line": 253,
2696
+ "loc": 4,
2697
+ "state": "blocked",
2698
+ "confidence": "low",
2699
+ "candidate": false,
2700
+ "diagnostic": true,
2701
+ "category": "unknown_dispatch",
2702
+ "unknown": true,
2703
+ "rule_hits": [],
2704
+ "risk_flags": [
2705
+ "analysis_incomplete",
2706
+ "public_or_protected_visibility"
2707
+ ],
2708
+ "blocker_kinds": [
2709
+ "partial_dispatch",
2710
+ "unknown_dispatch"
2711
+ ],
2712
+ "reasons": [
2713
+ "Blocked by 552 unresolved runtime dispatches.",
2714
+ "Lowered because this node is near unresolved metaprogramming."
2715
+ ]
2716
+ },
2717
+ {
2718
+ "id": "Necropsy::DefinitionIndex::AmbiguousDefinitionError#initialize",
2719
+ "definition_id": "def:v1:9309d856a92158f435084e3eb1ba68eb2170b868da2df3431c7ae809ca10d9c7",
2720
+ "path": "lib/necropsy/graph/definition_index.rb",
2721
+ "line": 32,
2722
+ "end_line": 35,
2723
+ "loc": 4,
2724
+ "state": "blocked",
2725
+ "confidence": "low",
2726
+ "candidate": false,
2727
+ "diagnostic": true,
2728
+ "category": "partial_dispatch",
2729
+ "unknown": true,
2730
+ "rule_hits": [],
2731
+ "risk_flags": [
2732
+ "analysis_incomplete",
2733
+ "public_or_protected_visibility"
2734
+ ],
2735
+ "blocker_kinds": [
2736
+ "partial_dispatch",
2737
+ "unknown_dispatch"
2738
+ ],
2739
+ "reasons": [
2740
+ "Blocked by 555 unresolved runtime dispatches.",
2741
+ "Lowered because this node is near unresolved metaprogramming."
2742
+ ]
2743
+ },
2744
+ {
2745
+ "id": "Necropsy::EntryPoints::Rails#helper_referenced?",
2746
+ "definition_id": "def:v1:4c1d5f1fb513a949de15428bb0f1785473b061fe301d322f4d4fcd3b178441c7",
2747
+ "path": "lib/necropsy/entry_points/rails.rb",
2748
+ "line": 399,
2749
+ "end_line": 401,
2750
+ "loc": 3,
2751
+ "state": "unreachable",
2752
+ "confidence": "medium",
2753
+ "candidate": true,
2754
+ "diagnostic": false,
2755
+ "category": "unreachable",
2756
+ "unknown": false,
2757
+ "rule_hits": [],
2758
+ "risk_flags": [],
2759
+ "blocker_kinds": [],
2760
+ "reasons": []
2761
+ },
2762
+ {
2763
+ "id": "Necropsy::EntryPoints::Rails::RouteContext#controller=",
2764
+ "definition_id": "def:v1:086f891a79af5d878ad3f580dbea367763cf0e99defa77a9699ac6eea10b1fe1",
2765
+ "path": "lib/necropsy/entry_points/rails.rb",
2766
+ "line": 12,
2767
+ "end_line": 12,
2768
+ "loc": 1,
2769
+ "state": "unreachable",
2770
+ "confidence": "low",
2771
+ "candidate": true,
2772
+ "diagnostic": false,
2773
+ "category": "generated_method",
2774
+ "unknown": false,
2775
+ "rule_hits": [],
2776
+ "risk_flags": [
2777
+ "generated_method",
2778
+ "public_or_protected_visibility"
2779
+ ],
2780
+ "blocker_kinds": [],
2781
+ "reasons": [
2782
+ "Lowered because this node is generated by a Ruby accessor DSL."
2783
+ ]
2784
+ },
2785
+ {
2786
+ "id": "Necropsy::EntryPoints::Rails::RouteContext#modules=",
2787
+ "definition_id": "def:v1:30c0c19ac4cb3be46bf457ee5eae28d8f20eaf99a007e86090494648b7bf6004",
2788
+ "path": "lib/necropsy/entry_points/rails.rb",
2789
+ "line": 12,
2790
+ "end_line": 12,
2791
+ "loc": 1,
2792
+ "state": "unreachable",
2793
+ "confidence": "low",
2794
+ "candidate": true,
2795
+ "diagnostic": false,
2796
+ "category": "generated_method",
2797
+ "unknown": false,
2798
+ "rule_hits": [],
2799
+ "risk_flags": [
2800
+ "generated_method",
2801
+ "public_or_protected_visibility"
2802
+ ],
2803
+ "blocker_kinds": [],
2804
+ "reasons": [
2805
+ "Lowered because this node is generated by a Ruby accessor DSL."
2806
+ ]
2807
+ },
2808
+ {
2809
+ "id": "Necropsy::EntryPoints::Rails::RouteContext#resource=",
2810
+ "definition_id": "def:v1:b21d475b4325e308bf2a94b7cbca69cbd9e98cdfdd841fc4d49a9895b1ba2a85",
2811
+ "path": "lib/necropsy/entry_points/rails.rb",
2812
+ "line": 12,
2813
+ "end_line": 12,
2814
+ "loc": 1,
2815
+ "state": "unreachable",
2816
+ "confidence": "low",
2817
+ "candidate": true,
2818
+ "diagnostic": false,
2819
+ "category": "generated_method",
2820
+ "unknown": false,
2821
+ "rule_hits": [],
2822
+ "risk_flags": [
2823
+ "generated_method",
2824
+ "public_or_protected_visibility"
2825
+ ],
2826
+ "blocker_kinds": [],
2827
+ "reasons": [
2828
+ "Lowered because this node is generated by a Ruby accessor DSL."
2829
+ ]
2830
+ },
2831
+ {
2832
+ "id": "Necropsy::EvidenceCollection#collect",
2833
+ "definition_id": "def:v1:e25f3f0513a55e2facf1354ced7bf6d45e926bed6bab2f7385d5f0c31f9ce3be",
2834
+ "path": "lib/necropsy/analyzer.rb",
2835
+ "line": 44,
2836
+ "end_line": 49,
2837
+ "loc": 6,
2838
+ "state": "unreachable",
2839
+ "confidence": "low",
2840
+ "candidate": true,
2841
+ "diagnostic": false,
2842
+ "category": "unreachable",
2843
+ "unknown": false,
2844
+ "rule_hits": [],
2845
+ "risk_flags": [],
2846
+ "blocker_kinds": [],
2847
+ "reasons": [
2848
+ "Lowered because this node is near unresolved metaprogramming."
2849
+ ]
2850
+ },
2851
+ {
2852
+ "id": "Necropsy::EvidenceCollection#identity",
2853
+ "definition_id": "def:v1:f1d6c7d143c388cfec1ff9cdfab3ca0977c431d17074dd156ed812b7315ab761",
2854
+ "path": "lib/necropsy/analyzer.rb",
2855
+ "line": 56,
2856
+ "end_line": 62,
2857
+ "loc": 7,
2858
+ "state": "blocked",
2859
+ "confidence": "low",
2860
+ "candidate": false,
2861
+ "diagnostic": true,
2862
+ "category": "partial_dispatch",
2863
+ "unknown": true,
2864
+ "rule_hits": [],
2865
+ "risk_flags": [
2866
+ "analysis_incomplete"
2867
+ ],
2868
+ "blocker_kinds": [
2869
+ "partial_dispatch"
2870
+ ],
2871
+ "reasons": [
2872
+ "Blocked by 2 unresolved runtime dispatches.",
2873
+ "Lowered because this node is near unresolved metaprogramming."
2874
+ ]
2875
+ },
2876
+ {
2877
+ "id": "Necropsy::EvidenceCollection#unwrap",
2878
+ "definition_id": "def:v1:d18cecb1af3178eefdb31aa238e7a9e5b0bc81365d11601111745e1609bc71da",
2879
+ "path": "lib/necropsy/analyzer.rb",
2880
+ "line": 51,
2881
+ "end_line": 53,
2882
+ "loc": 3,
2883
+ "state": "blocked",
2884
+ "confidence": "low",
2885
+ "candidate": false,
2886
+ "diagnostic": true,
2887
+ "category": "partial_dispatch",
2888
+ "unknown": true,
2889
+ "rule_hits": [],
2890
+ "risk_flags": [
2891
+ "analysis_incomplete"
2892
+ ],
2893
+ "blocker_kinds": [
2894
+ "partial_dispatch"
2895
+ ],
2896
+ "reasons": [
2897
+ "Blocked by 1 unresolved runtime dispatch.",
2898
+ "Lowered because this node is near unresolved metaprogramming."
2899
+ ]
2900
+ },
2901
+ {
2902
+ "id": "Necropsy::EvidenceIdentity#fast_payload",
2903
+ "definition_id": "def:v1:7b2b7d17e2d92ffb4130dd3a14ee7cb23d61b0861d06e1bc99c5bc7a1ab9ec07",
2904
+ "path": "lib/necropsy/analyzer.rb",
2905
+ "line": 25,
2906
+ "end_line": 36,
2907
+ "loc": 12,
2908
+ "state": "blocked",
2909
+ "confidence": "low",
2910
+ "candidate": false,
2911
+ "diagnostic": true,
2912
+ "category": "partial_dispatch",
2913
+ "unknown": true,
2914
+ "rule_hits": [],
2915
+ "risk_flags": [
2916
+ "analysis_incomplete"
2917
+ ],
2918
+ "blocker_kinds": [
2919
+ "partial_dispatch"
2920
+ ],
2921
+ "reasons": [
2922
+ "Blocked by 4 unresolved runtime dispatches.",
2923
+ "Lowered because this node is near unresolved metaprogramming."
2924
+ ]
2925
+ },
2926
+ {
2927
+ "id": "Necropsy::EvidenceIdentity#generate_fast",
2928
+ "definition_id": "def:v1:72a582833ed5c08d3b08a5153586b380e9cd2811379fd508a4df312b2f2155b8",
2929
+ "path": "lib/necropsy/analyzer.rb",
2930
+ "line": 19,
2931
+ "end_line": 23,
2932
+ "loc": 5,
2933
+ "state": "unreachable",
2934
+ "confidence": "low",
2935
+ "candidate": true,
2936
+ "diagnostic": false,
2937
+ "category": "unreachable",
2938
+ "unknown": false,
2939
+ "rule_hits": [],
2940
+ "risk_flags": [],
2941
+ "blocker_kinds": [],
2942
+ "reasons": [
2943
+ "Lowered because this node is near unresolved metaprogramming."
2944
+ ]
2945
+ },
2946
+ {
2947
+ "id": "Necropsy::Guardrail::Baseline::Comparison#new_findings",
2948
+ "definition_id": "def:v1:dc12c094f2d8b3f9fb38522fd0845e0bbb8569bf85e408138e3e1dfe5234c131",
2949
+ "path": "lib/necropsy/guardrail/baseline.rb",
2950
+ "line": 12,
2951
+ "end_line": 16,
2952
+ "loc": 5,
2953
+ "state": "unreachable",
2954
+ "confidence": "low",
2955
+ "candidate": true,
2956
+ "diagnostic": false,
2957
+ "category": "generated_method",
2958
+ "unknown": false,
2959
+ "rule_hits": [],
2960
+ "risk_flags": [
2961
+ "generated_method",
2962
+ "public_or_protected_visibility"
2963
+ ],
2964
+ "blocker_kinds": [],
2965
+ "reasons": [
2966
+ "Lowered because this node is generated by a Ruby accessor DSL."
2967
+ ]
2968
+ },
2969
+ {
2970
+ "id": "Necropsy::MethodLookup#partial?",
2971
+ "definition_id": "def:v1:88e123ba38babd0af1116d2fa2cb344194029f51a0ceee14c758d94d7553db60",
2972
+ "path": "lib/necropsy/models.rb",
2973
+ "line": 373,
2974
+ "end_line": 375,
2975
+ "loc": 3,
2976
+ "state": "unreachable",
2977
+ "confidence": "low",
2978
+ "candidate": true,
2979
+ "diagnostic": false,
2980
+ "category": "unreachable",
2981
+ "unknown": false,
2982
+ "rule_hits": [],
2983
+ "risk_flags": [
2984
+ "public_or_protected_visibility"
2985
+ ],
2986
+ "blocker_kinds": [],
2987
+ "reasons": [
2988
+ "Lowered because this node is near unresolved metaprogramming."
2989
+ ]
2990
+ },
2991
+ {
2992
+ "id": "Necropsy::ModelNormalization#attributes",
2993
+ "definition_id": "def:v1:535cc32a87e6b242f2cc904425690c186d1617183fb13bcdd13056d86ac8c1e5",
2994
+ "path": "lib/necropsy/models.rb",
2995
+ "line": 24,
2996
+ "end_line": 28,
2997
+ "loc": 5,
2998
+ "state": "unreachable",
2999
+ "confidence": "low",
3000
+ "candidate": true,
3001
+ "diagnostic": false,
3002
+ "category": "unreachable",
3003
+ "unknown": false,
3004
+ "rule_hits": [],
3005
+ "risk_flags": [],
3006
+ "blocker_kinds": [],
3007
+ "reasons": [
3008
+ "Lowered because this node is near unresolved metaprogramming."
3009
+ ]
3010
+ },
3011
+ {
3012
+ "id": "Necropsy::ModelNormalization#canonical",
3013
+ "definition_id": "def:v1:4b2a32cf62215c6049aaddc51da7b39d727ab68f91c964afdbe655b0757c3507",
3014
+ "path": "lib/necropsy/models.rb",
3015
+ "line": 58,
3016
+ "end_line": 78,
3017
+ "loc": 21,
3018
+ "state": "blocked",
3019
+ "confidence": "low",
3020
+ "candidate": false,
3021
+ "diagnostic": true,
3022
+ "category": "partial_dispatch",
3023
+ "unknown": true,
3024
+ "rule_hits": [],
3025
+ "risk_flags": [
3026
+ "analysis_incomplete"
3027
+ ],
3028
+ "blocker_kinds": [
3029
+ "partial_dispatch"
3030
+ ],
3031
+ "reasons": [
3032
+ "Blocked by 4 unresolved runtime dispatches.",
3033
+ "Lowered because this node is near unresolved metaprogramming."
3034
+ ]
3035
+ },
3036
+ {
3037
+ "id": "Necropsy::ModelNormalization#canonical_string",
3038
+ "definition_id": "def:v1:2108c12647457263fb6b7930be06584b95140f5703f57da71cf026fdbb22baf4",
3039
+ "path": "lib/necropsy/models.rb",
3040
+ "line": 80,
3041
+ "end_line": 83,
3042
+ "loc": 4,
3043
+ "state": "blocked",
3044
+ "confidence": "low",
3045
+ "candidate": false,
3046
+ "diagnostic": true,
3047
+ "category": "partial_dispatch",
3048
+ "unknown": true,
3049
+ "rule_hits": [],
3050
+ "risk_flags": [
3051
+ "analysis_incomplete"
3052
+ ],
3053
+ "blocker_kinds": [
3054
+ "partial_dispatch"
3055
+ ],
3056
+ "reasons": [
3057
+ "Blocked by 5 unresolved runtime dispatches.",
3058
+ "Lowered because this node is near unresolved metaprogramming."
3059
+ ]
3060
+ },
3061
+ {
3062
+ "id": "Necropsy::PerformanceProfiler#phases",
3063
+ "definition_id": "def:v1:9ed74d5e8d7eae67d040b0ae7082026275e449eeb58438468f9e71dff6f5c0de",
3064
+ "path": "lib/necropsy/performance_profiler.rb",
3065
+ "line": 19,
3066
+ "end_line": 19,
3067
+ "loc": 1,
3068
+ "state": "unreachable",
3069
+ "confidence": "low",
3070
+ "candidate": true,
3071
+ "diagnostic": false,
3072
+ "category": "generated_method",
3073
+ "unknown": false,
3074
+ "rule_hits": [],
3075
+ "risk_flags": [
3076
+ "generated_method",
3077
+ "public_or_protected_visibility"
3078
+ ],
3079
+ "blocker_kinds": [],
3080
+ "reasons": [
3081
+ "Lowered because this node is generated by a Ruby accessor DSL."
3082
+ ]
3083
+ },
3084
+ {
3085
+ "id": "Necropsy::Report#diagnostic_findings",
3086
+ "definition_id": "def:v1:2f01d45b435f7a47181c66a604fa260338bf155fe561cf56bccb664b97459360",
3087
+ "path": "lib/necropsy/report.rb",
3088
+ "line": 46,
3089
+ "end_line": 48,
3090
+ "loc": 3,
3091
+ "state": "blocked",
3092
+ "confidence": "low",
3093
+ "candidate": false,
3094
+ "diagnostic": true,
3095
+ "category": "partial_dispatch",
3096
+ "unknown": true,
3097
+ "rule_hits": [],
3098
+ "risk_flags": [
3099
+ "analysis_incomplete",
3100
+ "public_or_protected_visibility"
3101
+ ],
3102
+ "blocker_kinds": [
3103
+ "partial_dispatch"
3104
+ ],
3105
+ "reasons": [
3106
+ "Blocked by 2 unresolved runtime dispatches.",
3107
+ "Lowered because this node is near unresolved metaprogramming."
3108
+ ]
3109
+ },
3110
+ {
3111
+ "id": "Necropsy::Report#project",
3112
+ "definition_id": "def:v1:fab02095bf1575383419e7b49d091e3fd9f962990aa936568cbd7a9f96421d48",
3113
+ "path": "lib/necropsy/report.rb",
3114
+ "line": 15,
3115
+ "end_line": 15,
3116
+ "loc": 1,
3117
+ "state": "blocked",
3118
+ "confidence": "low",
3119
+ "candidate": false,
3120
+ "diagnostic": true,
3121
+ "category": "partial_dispatch",
3122
+ "unknown": true,
3123
+ "rule_hits": [],
3124
+ "risk_flags": [
3125
+ "analysis_incomplete",
3126
+ "generated_method",
3127
+ "public_or_protected_visibility"
3128
+ ],
3129
+ "blocker_kinds": [
3130
+ "partial_dispatch"
3131
+ ],
3132
+ "reasons": [
3133
+ "Blocked by 27 unresolved runtime dispatches.",
3134
+ "Lowered because this node is generated by a Ruby accessor DSL."
3135
+ ]
3136
+ },
3137
+ {
3138
+ "id": "Necropsy::Root#external?",
3139
+ "definition_id": "def:v1:cc9038caeac5f4834f9b57e9934508cc4c7c18387ff090318607e2ebb3b2c78a",
3140
+ "path": "lib/necropsy/models.rb",
3141
+ "line": 530,
3142
+ "end_line": 532,
3143
+ "loc": 3,
3144
+ "state": "unreachable",
3145
+ "confidence": "low",
3146
+ "candidate": true,
3147
+ "diagnostic": false,
3148
+ "category": "unreachable",
3149
+ "unknown": false,
3150
+ "rule_hits": [],
3151
+ "risk_flags": [
3152
+ "public_or_protected_visibility"
3153
+ ],
3154
+ "blocker_kinds": [],
3155
+ "reasons": [
3156
+ "Lowered because this node is near unresolved metaprogramming."
3157
+ ]
3158
+ },
3159
+ {
3160
+ "id": "Necropsy::Root#runtime?",
3161
+ "definition_id": "def:v1:d5ef3f7ead0103b5aa1bbe1fa7fc2bfffa01bfe0bb06740ce0654d96ab5625de",
3162
+ "path": "lib/necropsy/models.rb",
3163
+ "line": 526,
3164
+ "end_line": 528,
3165
+ "loc": 3,
3166
+ "state": "unreachable",
3167
+ "confidence": "low",
3168
+ "candidate": true,
3169
+ "diagnostic": false,
3170
+ "category": "unreachable",
3171
+ "unknown": false,
3172
+ "rule_hits": [],
3173
+ "risk_flags": [
3174
+ "public_or_protected_visibility"
3175
+ ],
3176
+ "blocker_kinds": [],
3177
+ "reasons": [
3178
+ "Lowered because this node is near unresolved metaprogramming."
3179
+ ]
3180
+ },
3181
+ {
3182
+ "id": "Necropsy::Root#test?",
3183
+ "definition_id": "def:v1:9d3f32ea6e7b850a8d7a328e5cae7be42cb8a5bd3d72b38515d5e4b34dcd2d93",
3184
+ "path": "lib/necropsy/models.rb",
3185
+ "line": 522,
3186
+ "end_line": 524,
3187
+ "loc": 3,
3188
+ "state": "unreachable",
3189
+ "confidence": "low",
3190
+ "candidate": true,
3191
+ "diagnostic": false,
3192
+ "category": "unreachable",
3193
+ "unknown": false,
3194
+ "rule_hits": [],
3195
+ "risk_flags": [
3196
+ "public_or_protected_visibility"
3197
+ ],
3198
+ "blocker_kinds": [],
3199
+ "reasons": [
3200
+ "Lowered because this node is near unresolved metaprogramming."
3201
+ ]
3202
+ },
3203
+ {
3204
+ "id": "Necropsy::RuntimeFeedback#initialize",
3205
+ "definition_id": "def:v1:6b73a9016a2a4c26be6aa32c4c0112cf03896c74b3a8cf31766a4a3744d34afd",
3206
+ "path": "lib/necropsy/runtime_feedback.rb",
3207
+ "line": 16,
3208
+ "end_line": 25,
3209
+ "loc": 10,
3210
+ "state": "blocked",
3211
+ "confidence": "low",
3212
+ "candidate": false,
3213
+ "diagnostic": true,
3214
+ "category": "unknown_dispatch",
3215
+ "unknown": true,
3216
+ "rule_hits": [],
3217
+ "risk_flags": [
3218
+ "analysis_incomplete",
3219
+ "public_or_protected_visibility"
3220
+ ],
3221
+ "blocker_kinds": [
3222
+ "partial_dispatch",
3223
+ "unknown_dispatch"
3224
+ ],
3225
+ "reasons": [
3226
+ "Blocked by 552 unresolved runtime dispatches.",
3227
+ "Lowered because this node is near unresolved metaprogramming."
3228
+ ]
3229
+ },
3230
+ {
3231
+ "id": "Necropsy::RuntimeFeedback#normalize_observed_targets",
3232
+ "definition_id": "def:v1:78143a18058e181c3b34b631a9cf76126224ccbcc26bf6c07906210358ccfc40",
3233
+ "path": "lib/necropsy/runtime_feedback.rb",
3234
+ "line": 96,
3235
+ "end_line": 114,
3236
+ "loc": 19,
3237
+ "state": "unreachable",
3238
+ "confidence": "low",
3239
+ "candidate": true,
3240
+ "diagnostic": false,
3241
+ "category": "unreachable",
3242
+ "unknown": false,
3243
+ "rule_hits": [],
3244
+ "risk_flags": [],
3245
+ "blocker_kinds": [],
3246
+ "reasons": [
3247
+ "Lowered because this node is near unresolved metaprogramming."
3248
+ ]
3249
+ },
3250
+ {
3251
+ "id": "Necropsy::RuntimeFeedback#normalize_static_targets",
3252
+ "definition_id": "def:v1:38320ddb02a163313daf80913fd24a8bd3828878357bd1809495fc9c2974a4dd",
3253
+ "path": "lib/necropsy/runtime_feedback.rb",
3254
+ "line": 87,
3255
+ "end_line": 94,
3256
+ "loc": 8,
3257
+ "state": "unreachable",
3258
+ "confidence": "low",
3259
+ "candidate": true,
3260
+ "diagnostic": false,
3261
+ "category": "unreachable",
3262
+ "unknown": false,
3263
+ "rule_hits": [],
3264
+ "risk_flags": [],
3265
+ "blocker_kinds": [],
3266
+ "reasons": [
3267
+ "Lowered because this node is near unresolved metaprogramming."
3268
+ ]
3269
+ },
3270
+ {
3271
+ "id": "Necropsy::RuntimeFeedback#write_fixture_candidates",
3272
+ "definition_id": "def:v1:286e280032f755311dde413a08b4abd085146ad2225acd2d507550580bcefb2e",
3273
+ "path": "lib/necropsy/runtime_feedback.rb",
3274
+ "line": 63,
3275
+ "end_line": 76,
3276
+ "loc": 14,
3277
+ "state": "unreachable",
3278
+ "confidence": "low",
3279
+ "candidate": true,
3280
+ "diagnostic": false,
3281
+ "category": "unreachable",
3282
+ "unknown": false,
3283
+ "rule_hits": [],
3284
+ "risk_flags": [
3285
+ "public_or_protected_visibility"
3286
+ ],
3287
+ "blocker_kinds": [],
3288
+ "reasons": [
3289
+ "Lowered because this node is near unresolved metaprogramming."
3290
+ ]
3291
+ },
3292
+ {
3293
+ "id": "Necropsy::RuntimeFeedback.from_graph",
3294
+ "definition_id": "def:v1:28981e0e40f334eee85704d453a01195cac99d3ef242d75737742ce1a4ac02d2",
3295
+ "path": "lib/necropsy/runtime_feedback.rb",
3296
+ "line": 78,
3297
+ "end_line": 83,
3298
+ "loc": 6,
3299
+ "state": "unreachable",
3300
+ "confidence": "low",
3301
+ "candidate": true,
3302
+ "diagnostic": false,
3303
+ "category": "unreachable",
3304
+ "unknown": false,
3305
+ "rule_hits": [],
3306
+ "risk_flags": [
3307
+ "public_or_protected_visibility"
3308
+ ],
3309
+ "blocker_kinds": [],
3310
+ "reasons": [
3311
+ "Lowered because this node is near unresolved metaprogramming."
3312
+ ]
3313
+ },
3314
+ {
3315
+ "id": "Necropsy::TypeFact#initialize",
3316
+ "definition_id": "def:v1:4edbf266d47d1f2f7d74f0dab60c05534bceeed8d64868e0bdd18b92dc7efdb8",
3317
+ "path": "lib/necropsy/type_facts.rb",
3318
+ "line": 7,
3319
+ "end_line": 21,
3320
+ "loc": 15,
3321
+ "state": "blocked",
3322
+ "confidence": "low",
3323
+ "candidate": false,
3324
+ "diagnostic": true,
3325
+ "category": "partial_dispatch",
3326
+ "unknown": true,
3327
+ "rule_hits": [],
3328
+ "risk_flags": [
3329
+ "analysis_incomplete",
3330
+ "public_or_protected_visibility"
3331
+ ],
3332
+ "blocker_kinds": [
3333
+ "partial_dispatch",
3334
+ "unknown_dispatch"
3335
+ ],
3336
+ "reasons": [
3337
+ "Blocked by 555 unresolved runtime dispatches.",
3338
+ "Lowered because this node is near unresolved metaprogramming."
3339
+ ]
3340
+ },
3341
+ {
3342
+ "id": "Necropsy::TypeFact#safe_for_resolution?",
3343
+ "definition_id": "def:v1:6b233f4e09c92e4bf945c9e7e080a3737178ab6b68a81805fe8b08cd310d4255",
3344
+ "path": "lib/necropsy/type_facts.rb",
3345
+ "line": 23,
3346
+ "end_line": 25,
3347
+ "loc": 3,
3348
+ "state": "unreachable",
3349
+ "confidence": "low",
3350
+ "candidate": true,
3351
+ "diagnostic": false,
3352
+ "category": "unreachable",
3353
+ "unknown": false,
3354
+ "rule_hits": [],
3355
+ "risk_flags": [
3356
+ "public_or_protected_visibility"
3357
+ ],
3358
+ "blocker_kinds": [],
3359
+ "reasons": [
3360
+ "Lowered because this node is near unresolved metaprogramming."
3361
+ ]
3362
+ },
3363
+ {
3364
+ "id": "Necropsy::TypeProvider#facts",
3365
+ "definition_id": "def:v1:fedd149b6904c477e7c9d2a10652c631e159df73a5375efbc185c1c864921a89",
3366
+ "path": "lib/necropsy/type_facts.rb",
3367
+ "line": 49,
3368
+ "end_line": 51,
3369
+ "loc": 3,
3370
+ "state": "unreachable",
3371
+ "confidence": "medium",
3372
+ "candidate": true,
3373
+ "diagnostic": false,
3374
+ "category": "unreachable",
3375
+ "unknown": false,
3376
+ "rule_hits": [],
3377
+ "risk_flags": [],
3378
+ "blocker_kinds": [],
3379
+ "reasons": []
3380
+ },
3381
+ {
3382
+ "id": "Necropsy::TypeProvider#profile",
3383
+ "definition_id": "def:v1:856489d262780973bde387933a7a93317d0f64ca2848d845aba5c5382c6ffb08",
3384
+ "path": "lib/necropsy/type_facts.rb",
3385
+ "line": 41,
3386
+ "end_line": 47,
3387
+ "loc": 7,
3388
+ "state": "blocked",
3389
+ "confidence": "low",
3390
+ "candidate": false,
3391
+ "diagnostic": true,
3392
+ "category": "partial_dispatch",
3393
+ "unknown": true,
3394
+ "rule_hits": [],
3395
+ "risk_flags": [
3396
+ "analysis_incomplete"
3397
+ ],
3398
+ "blocker_kinds": [
3399
+ "partial_dispatch"
3400
+ ],
3401
+ "reasons": [
3402
+ "Blocked by 15 unresolved runtime dispatches."
3403
+ ]
3404
+ },
3405
+ {
3406
+ "id": "Necropsy::TypeProvider.facts",
3407
+ "definition_id": "def:v1:8a68d5f5c61c896f15f91fc16b88c2d7cdf8a75bb9a50f802d2d6fff5c89115a",
3408
+ "path": "lib/necropsy/type_facts.rb",
3409
+ "line": 49,
3410
+ "end_line": 51,
3411
+ "loc": 3,
3412
+ "state": "unreachable",
3413
+ "confidence": "medium",
3414
+ "candidate": true,
3415
+ "diagnostic": false,
3416
+ "category": "generated_method",
3417
+ "unknown": false,
3418
+ "rule_hits": [],
3419
+ "risk_flags": [
3420
+ "generated_method",
3421
+ "public_or_protected_visibility"
3422
+ ],
3423
+ "blocker_kinds": [],
3424
+ "reasons": []
3425
+ },
3426
+ {
3427
+ "id": "Necropsy::ValueFact#exact_instance_types?",
3428
+ "definition_id": "def:v1:f35c24ea8e4253b0fe2dfe6b63ed456b3ce53490e0194e5ae880245711f2a67f",
3429
+ "path": "lib/necropsy/models.rb",
3430
+ "line": 715,
3431
+ "end_line": 717,
3432
+ "loc": 3,
3433
+ "state": "unreachable",
3434
+ "confidence": "low",
3435
+ "candidate": true,
3436
+ "diagnostic": false,
3437
+ "category": "unreachable",
3438
+ "unknown": false,
3439
+ "rule_hits": [],
3440
+ "risk_flags": [
3441
+ "public_or_protected_visibility"
3442
+ ],
3443
+ "blocker_kinds": [],
3444
+ "reasons": [
3445
+ "Lowered because this node is near unresolved metaprogramming."
3446
+ ]
3447
+ }
3448
+ ]
3449
+ }