# Coverage and unknown

Unknown means the required facts do not justify the requested conclusion. It preserves uncertainty instead of turning missing information into a clean result.

An **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.

## Three different questions

| Question | Relevant evidence |
| --- | --- |
| Was a condition selected? | Invocation and requestedConditions |
| Did it run on supported observations? | Executed state, coverage and observation counts |
| What conclusion is justified? | Observation decisions, assumptions, completeness and source evidence |

The 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.

## Negative evidence needs a complete world

A 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.

An 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.

## Report vocabulary

`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.

## Read the control carefully

The 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.


---

Language: en
Canonical: https://docs.swift-analyzer.com/concepts/coverage/
Product revision: 524fa07e0ae4153c84ac12ae9eb6559df89ec2be
Catalog revision: 4558458d
Documentation digest: 1f17ba58ab08627e0de898f1442067b09e960b48cd5605d6529e9275f8930d68
Channel: pre-prod; maturity: experimental; access: owner-provided checkout.
