{"schemaVersion":"2.0.0","locale":"en","title":"Coverage and unknown","description":"Unknown means the required facts do not justify the requested conclusion. It preserves uncertainty instead of turning missing information into a clean result.","htmlUrl":"https://docs.swift-analyzer.com/concepts/coverage/","markdownUrl":"https://docs.swift-analyzer.com/concepts/coverage/index.md","productRevision":"524fa07e0ae4153c84ac12ae9eb6559df89ec2be","catalogRevision":"4558458d","docsRevision":"1f17ba58ab08627e0de898f1442067b09e960b48cd5605d6529e9275f8930d68","channel":"pre-prod","maturity":"experimental","access":"owner-provided-checkout","markdown":"# Coverage and unknown\n\nUnknown means the required facts do not justify the requested conclusion. It preserves uncertainty instead of turning missing information into a clean result.\n\nAn **admitted** input has passed the snapshot checks required for that analysis. A **build world** is the selected source revision, compiler/SDK, build settings, dependencies and generated inputs. Admission of that world does not establish support for every possible rule.\n\n## Three different questions\n\n| Question | Relevant evidence |\n| --- | --- |\n| Was a condition selected? | Invocation and requestedConditions |\n| Did it run on supported observations? | Executed state, coverage and observation counts |\n| What conclusion is justified? | Observation decisions, assumptions, completeness and source evidence |\n\nThe catalog answers the first question for a documented workflow. A specific report answers the next two. Historical acceptance is a fourth, separate record of what was tested at an earlier revision.\n\n## Negative evidence needs a complete world\n\nA positive witness can establish a specific problematic path under its premises. A negative conclusion, such as the absence of every relevant caller, requires the relevant world to be complete. Missing generated code, dynamic registrations, build variants, foreign effects or consumers can invalidate that premise.\n\nAn accepted subset is limited to its source forms, profile and evidence. Do not extend it to all similar-looking programs or every build configuration. If required facts are incomplete, retain unknown.\n\n## Report vocabulary\n\n`unavailable` is a report-level failure to admit the requested operation. `degraded` means useful work may coexist with limitations. At condition level, `not-run`, `no-observations`, `degraded` and `completed` describe different coverage states. A not-applicable observation is not the same as a no-observations row.\n\n## Read the control carefully\n\nThe tutorial's control has zero findings and still returns degraded, exit 3. It does not establish a clean whole-program result. Replacing a supported source form with an unsupported one can also remove a finding, which is why coverage must accompany the before/after comparison.\n","anchors":["coverage-and-unknown","three-different-questions","negative-evidence-needs-a-complete-world","report-vocabulary","read-the-control-carefully"]}
