{"schemaVersion":"2.0.0","channel":"pre-prod","maturity":"experimental","access":"owner-provided-checkout","productRevision":"524fa07e0ae4153c84ac12ae9eb6559df89ec2be","catalogRevision":"4558458d","docsRevision":"1f17ba58ab08627e0de898f1442067b09e960b48cd5605d6529e9275f8930d68","verifiedAt":"2026-09-11","profile":{"os":"macOS 26","architecture":"arm64","swift":"Apple Swift 6.3.3","profileID":"apple-swift-6.3.3-macos-arm64"},"historicalEvidence":{"revision":"4558458d","acceptedConditions":33,"totalConditions":141,"relationship":"Historical bounded evidence only; not requalified or inherited by the product snapshot."},"counts":{"rules":138,"conditions":141,"default":9,"optIn":2,"unavailable":130},"examples":[{"id":"positive","status":"degraded","exitCode":3,"admittedSourceCount":2,"findingCount":2,"unknownObservationCount":2,"reportSHA256":"25ecd3c558e91083b95a9b7087f4a08d4bb15bd41599258734801444346603cb","sourceUrl":"https://docs.swift-analyzer.com/examples/positive/","reportUrl":"https://docs.swift-analyzer.com/examples/positive/observed.json"},{"id":"control","status":"degraded","exitCode":3,"admittedSourceCount":2,"findingCount":0,"unknownObservationCount":3,"reportSHA256":"00b0067920bef49eef5ba1147afcc123d07b595122bea22de80d6e8d0870077e","sourceUrl":"https://docs.swift-analyzer.com/examples/control/","reportUrl":"https://docs.swift-analyzer.com/examples/control/observed.json"},{"id":"incomplete","status":"unavailable","exitCode":3,"admittedSourceCount":0,"findingCount":0,"unknownObservationCount":0,"reportSHA256":"32c30da5ed250ab138e3f5f16d1f2d2ad8737a0b21414d3320b9372f5f5dd4ce","sourceUrl":"https://docs.swift-analyzer.com/examples/incomplete/","reportUrl":"https://docs.swift-analyzer.com/examples/incomplete/observed.json"}],"commands":[{"name":"doctor","help":"OVERVIEW: Validate whether an analysis snapshot is trustworthy.\n\nUSAGE: swift-analyzer doctor [--manifest <manifest> ...] [--format <format> ...]\n\nOPTIONS:\n  --manifest <manifest>   Path to the analysis manifest.\n  --format <format>       Report format: human or json. (values: human, json)\n  -h, --help              Show help information.\n\n"},{"name":"stats","help":"OVERVIEW: Inspect manifest-admitted immutable fact statistics.\n\nUSAGE: swift-analyzer stats [--manifest <manifest> ...] [--format <format> ...]\n\nOPTIONS:\n  --manifest <manifest>   Path to the analysis manifest.\n  --format <format>       Report format: human or json. (values: human, json)\n  -h, --help              Show help information.\n\n"},{"name":"scan","help":"OVERVIEW: Analyze an immutable snapshot and optionally evaluate the findings\ngate.\n\nUSAGE: swift-analyzer scan [--manifest <manifest> ...] [--format <format> ...] [--execution-evidence-bundle <execution-evidence-bundle> ...] [--rule <rule> ...] [--gate ...] [--baseline <baseline> ...] [--dispositions <dispositions> ...] [--workflow-instant <workflow-instant> ...]\n\nOPTIONS:\n  --manifest <manifest>   Path to the analysis manifest.\n  --format <format>       Report format: human or json. (values: human, json)\n  --execution-evidence-bundle <execution-evidence-bundle>\n                          Path to an immutable Phase 12 execution-evidence\n                          bundle.\n  --rule <rule>           Request an opt-in semantic rule.\n  --gate                  Evaluate the findings gate.\n  --baseline <baseline>   Path to an immutable scan baseline.\n  --dispositions <dispositions>\n                          Path to an immutable disposition set.\n  --workflow-instant <workflow-instant>\n                          Explicit canonical UTC instant used by workflow\n                          evaluation.\n  -h, --help              Show help information.\n\n"},{"name":"why","help":"OVERVIEW: Explain one exact reachability subject in an immutable manifest\nsnapshot.\n\nUSAGE: swift-analyzer why [--manifest <manifest> ...] [--scope <scope> ...] [--subject <subject> ...] [--dimension <dimension> ...] [--format <format> ...] [--max-paths <max-paths> ...] [--max-path-length <max-path-length> ...] [--max-evidence-nodes <max-evidence-nodes> ...] [--max-evidence-depth <max-evidence-depth> ...] [--evidence-continuation <evidence-continuation> ...]\n\nOPTIONS:\n  --manifest <manifest>   Path to the analysis manifest.\n  --scope <scope>         Reachability scope: shipping or repository. (values:\n                          shipping, repository)\n  --subject <subject>     Exact canonical declaration or SCC identity.\n  --dimension <dimension> Liveness dimension: code, api, abi, or runtime.\n                          (values: code, api, abi, runtime)\n  --format <format>       Report format: human or json. (values: human, json)\n  --max-paths <max-paths> Maximum number of proof paths.\n  --max-path-length <max-path-length>\n                          Maximum edges in a proof path.\n  --max-evidence-nodes <max-evidence-nodes>\n                          Maximum evidence nodes per page.\n  --max-evidence-depth <max-evidence-depth>\n                          Maximum evidence traversal depth.\n  --evidence-continuation <evidence-continuation>\n                          Opaque evidence continuation token.\n  -h, --help              Show help information.\n\n"},{"name":"experimental-scan","help":"OVERVIEW: Preview experimental local source rules without a build or index.\n\nUSAGE: swift-analyzer experimental-scan [<path>] [--format <format>] [--rule <rule> ...] [--list-rules]\n\nARGUMENTS:\n  <path>                  Swift source file or directory.\n\nOPTIONS:\n  --format <format>       Report format: human or json. (values: human, json;\n                          default: human)\n  --rule <rule>           Enable only this rule; repeat to select multiple\n                          rules.\n  --list-rules            List implemented preview rules.\n  -h, --help              Show help information.\n\n"},{"name":"source-scan","help":"OVERVIEW: Opt-in compiler-backed execution/guard analysis of a SwiftPM product.\n\nUSAGE: swift-analyzer source-scan --package-path <package-path> --product <product> [--allow-build] [--include-stdio-rules] [--format <format>]\n\nOPTIONS:\n  --package-path <package-path>\n                          SwiftPM package directory.\n  --product <product>     Library or executable product; bounded Swift targets\n                          and filesystem or locked Git dependencies.\n  --allow-build           Authorize evaluating Package.swift, fetching locked\n                          Git dependencies and a managed indexed build;\n                          analyzed bodies/tests are not run.\n  --include-stdio-rules   Also execute the bounded stdio resource conditions\n                          LIFE-09/10 (eleven conditions total).\n  --format <format>       Report format: human or json. (values: human, json;\n                          default: human)\n  -h, --help              Show help information.\n\n"}],"capabilities":[{"conditionId":"V-ARCH-01","ruleId":"repository-unused@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ARCH-02","ruleId":"architecture.production-used-only-by-tests@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ARCH-03","ruleId":"architecture.forbidden-dependency@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ARCH-04","ruleId":"api.access-narrowing@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ARCH-05","ruleId":"architecture.unused-product-dependency@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ARCH-06","ruleId":"architecture.undeclared-direct-provider@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ARCH-07","ruleId":"architecture.dependency-cycle@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ARCH-08","ruleId":"api.implementation-type-leakage@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ARCH-09","ruleId":"architecture.registration-contract-mismatch@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ARCH-10","ruleId":"portfolio.arch.10@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ARCH-11","ruleId":"portfolio.arch.11@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ARCH-12","ruleId":"portfolio.arch.12@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ARCH-13","ruleId":"portfolio.arch.13@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ARCH-14","ruleId":"portfolio.arch.14@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-EXEC-01","ruleId":"concurrency.incompatible-isolation@1.0.0","workflow":"source-scan","availability":"default","experimental":null},{"conditionId":"V-EXEC-02","ruleId":"concurrency.unproven-mainactor-entry@1.0.0","workflow":"source-scan","availability":"default","experimental":null},{"conditionId":"V-EXEC-03","ruleId":"concurrency.detached-task-context-loss@1.0.0","workflow":"source-scan","availability":"default","experimental":null},{"conditionId":"V-EXEC-04","ruleId":"concurrency.dispatch-isolation-mismatch@1.0.0","workflow":"source-scan","availability":"default","experimental":null},{"conditionId":"V-EXEC-05","ruleId":"portfolio.exec.05@1.0.0","workflow":"source-scan","availability":"default","experimental":null},{"conditionId":"V-EXEC-06","ruleId":"portfolio.exec.06@1.0.0","workflow":"source-scan","availability":"default","experimental":null},{"conditionId":"V-EXEC-07","ruleId":"portfolio.exec.07@1.0.0","workflow":"source-scan","availability":"default","experimental":null},{"conditionId":"V-EXEC-08","ruleId":"portfolio.exec.08@1.0.0","workflow":"source-scan","availability":"default","experimental":null},{"conditionId":"V-EXEC-09","ruleId":"concurrency.main-actor-blocking@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":{"rule":"execution.blocking-in-concurrency-context","condition":"V-EXEC-09","description":"Blocking call in an explicit concurrency context"}},{"conditionId":"V-EXEC-10","ruleId":"portfolio.exec.10@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-EXEC-11","ruleId":"portfolio.exec.11@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-EXEC-12","ruleId":"portfolio.exec.12@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-EXEC-13","ruleId":"portfolio.exec.13@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-EXEC-14","ruleId":"portfolio.exec.14@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ASYNC-01","ruleId":"concurrency.state-freshness-across-suspension@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":{"rule":"async.actor-state-check-before-await","condition":"V-ASYNC-01","description":"Actor state check may be stale after suspension"}},{"conditionId":"V-ASYNC-02","ruleId":"concurrency.actor-invariant-exposure@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ASYNC-03","ruleId":"concurrency.obsolete-generation-commit@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ASYNC-04","ruleId":"portfolio.async.04@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ASYNC-05","ruleId":"portfolio.async.05@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ASYNC-06","ruleId":"concurrency.lost-continuation-resume@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ASYNC-07","ruleId":"concurrency.double-continuation-resume@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":{"rule":"async.continuation-double-resume","condition":"V-ASYNC-07","description":"Continuation may be resumed twice"}},{"conditionId":"V-ASYNC-08","ruleId":"concurrency.cancel-register-start-race@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ASYNC-09","ruleId":"concurrency.cancelled-forbidden-effect@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ASYNC-10","ruleId":"concurrency.unresponsive-cancellation-work@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":{"rule":"async.swallowed-task-sleep-cancellation-loop","condition":"V-ASYNC-10","description":"Cancellation from Task.sleep is swallowed in an unconditional loop"}},{"conditionId":"V-ASYNC-11","ruleId":"concurrency.timeout-sibling-outlives-race@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ASYNC-12","ruleId":"concurrency.task-outlives-scope@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ASYNC-13","ruleId":"portfolio.async.13@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ASYNC-14","ruleId":"concurrency.guard-held-across-suspension@1.0.0","workflow":"source-scan","availability":"default","experimental":null},{"conditionId":"V-ASYNC-15","ruleId":"concurrency.sole-producer-self-block@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ASYNC-16","ruleId":"portfolio.async.16@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ASYNC-17","ruleId":"portfolio.async.17@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ASYNC-18","ruleId":"portfolio.async.18@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ASYNC-19","ruleId":"portfolio.async.19@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-ASYNC-20","ruleId":"portfolio.async.20@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-LIFE-01","ruleId":"lifetime.escaping-value@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":{"rule":"lifetime.borrowed-pointer-escape","condition":"V-LIFE-01","description":"Borrowed buffer base address returned from its access closure"}},{"conditionId":"V-LIFE-02","ruleId":"portfolio.life.02@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-LIFE-03","ruleId":"portfolio.life.03@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-LIFE-04","ruleId":"portfolio.life.04@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-LIFE-05","ruleId":"lifetime.unmanaged-ownership-balance@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-LIFE-06","ruleId":"lifetime.ownership-cycle@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":{"rule":"lifetime.stored-closure-self-cycle","condition":"V-LIFE-06","description":"Stored closure strongly captures its owner"}},{"conditionId":"V-LIFE-07","ruleId":"portfolio.life.07@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-LIFE-08","ruleId":"lifetime.registration-outlives-scope@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-LIFE-09","ruleId":"lifetime.undischarged-resource-obligation@1.0.0","workflow":"source-scan","availability":"opt-in","experimental":null},{"conditionId":"V-LIFE-10","ruleId":"portfolio.life.10@1.0.0","workflow":"source-scan","availability":"opt-in","experimental":null},{"conditionId":"V-LIFE-11","ruleId":"portfolio.life.11@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-LIFE-12","ruleId":"correctness.pointer-count-initialization@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-PERF-01","ruleId":"performance.repeated-linear-traversal@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":{"rule":"performance.repeated-linear-traversal","condition":"V-PERF-01","description":"Repeated linear traversal"}},{"conditionId":"V-PERF-05","ruleId":"performance.repeated-linear-traversal@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":{"rule":"performance.repeated-lazy-consumption","condition":"V-PERF-05","description":"Repeated lazy pipeline consumption"}},{"conditionId":"V-PERF-02","ruleId":"performance.repeated-sorting@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":{"rule":"performance.repeated-sorting","condition":"V-PERF-02","description":"Repeated invariant sorting"}},{"conditionId":"V-PERF-03","ruleId":"performance.repeated-consumed-materialization@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":{"rule":"performance.repeated-consumed-materialization","condition":"V-PERF-03","description":"Repeated consumed materialization"}},{"conditionId":"V-PERF-11","ruleId":"performance.repeated-consumed-materialization@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-PERF-04","ruleId":"performance.array-fifo-shifts@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":{"rule":"performance.array-fifo-shifts","condition":"V-PERF-04","description":"Array used as a repeated FIFO"}},{"conditionId":"V-PERF-06","ruleId":"portfolio.perf.06@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-PERF-07","ruleId":"performance.comparator-projection-amplification@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-PERF-08","ruleId":"portfolio.perf.08@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-PERF-09","ruleId":"portfolio.perf.09@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-PERF-10","ruleId":"portfolio.perf.10@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-PERF-12","ruleId":"portfolio.perf.12@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-PERF-13","ruleId":"portfolio.perf.13@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-PERF-14","ruleId":"portfolio.perf.14@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-PERF-15","ruleId":"portfolio.perf.15@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-PERF-16","ruleId":"portfolio.perf.16@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-PERF-17","ruleId":"portfolio.perf.17@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-SEC-01","ruleId":"security.sensitive-data-flow@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-SEC-02","ruleId":"security.sensitive-data-flow@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-SEC-03","ruleId":"security.sql-structure-injection@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-SEC-04","ruleId":"security.shell-command-injection@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-SEC-05","ruleId":"security.format-position-injection@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-SEC-06","ruleId":"security.path-traversal@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-SEC-07","ruleId":"security.javascript-code-injection@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-SEC-08","ruleId":"security.privileged-url-input@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-SEC-09","ruleId":"portfolio.sec.09@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-SEC-10","ruleId":"portfolio.sec.10@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-SEC-11","ruleId":"portfolio.sec.11@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-SEC-12","ruleId":"portfolio.sec.12@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-SEC-13","ruleId":"portfolio.sec.13@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-SEC-14","ruleId":"portfolio.sec.14@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-SEC-15","ruleId":"portfolio.sec.15@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-SEC-16","ruleId":"portfolio.sec.16@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-SEC-17","ruleId":"portfolio.sec.17@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-SEC-18","ruleId":"portfolio.sec.18@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-SEC-19","ruleId":"portfolio.sec.19@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-SEC-20","ruleId":"portfolio.sec.20@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-SEC-21","ruleId":"portfolio.sec.21@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-SEC-22","ruleId":"portfolio.sec.22@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-SEC-23","ruleId":"portfolio.sec.23@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-SEC-24","ruleId":"portfolio.sec.24@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-SEC-25","ruleId":"portfolio.sec.25@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-SEC-26","ruleId":"portfolio.sec.26@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-COR-01","ruleId":"correctness.equality-hash-contract@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-COR-02","ruleId":"correctness.persisted-process-hash@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":{"rule":"correctness.persisted-process-hash","condition":"V-COR-02","description":"Process-randomized hash reaches persistent preferences"}},{"conditionId":"V-COR-03","ruleId":"correctness.regex-range-units@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":{"rule":"correctness.regex-range-units","condition":"V-COR-03","description":"Grapheme count supplies a regex UTF-16 range"}},{"conditionId":"V-COR-04","ruleId":"correctness.invalidated-collection-index@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-COR-05","ruleId":"correctness.mutable-collection-key@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-COR-06","ruleId":"correctness.bounded-ordering-law@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-COR-07","ruleId":"correctness.canonical-output-nondeterminism@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-COR-08","ruleId":"portfolio.cor.08@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-COR-09","ruleId":"portfolio.cor.09@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-COR-10","ruleId":"portfolio.cor.10@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-COR-11","ruleId":"portfolio.cor.11@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-COR-12","ruleId":"portfolio.cor.12@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-COR-13","ruleId":"portfolio.cor.13@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-COR-14","ruleId":"portfolio.cor.14@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-COR-15","ruleId":"portfolio.cor.15@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-COR-16","ruleId":"portfolio.cor.16@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-COR-17","ruleId":"portfolio.cor.17@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-COR-18","ruleId":"portfolio.cor.18@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-COR-19","ruleId":"portfolio.cor.19@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-STREAM-01","ruleId":"portfolio.stream.01@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-STREAM-02","ruleId":"portfolio.stream.02@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-STREAM-03","ruleId":"portfolio.stream.03@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-STREAM-04","ruleId":"portfolio.stream.04@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-STREAM-05","ruleId":"portfolio.stream.05@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-STREAM-06","ruleId":"portfolio.stream.06@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-STREAM-07","ruleId":"portfolio.stream.07@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-UI-01","ruleId":"portfolio.ui.01@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-UI-02","ruleId":"portfolio.ui.02@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-UI-03","ruleId":"portfolio.ui.03@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-UI-04","ruleId":"portfolio.ui.04@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-CHANGE-01","ruleId":"portfolio.change.01@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-CHANGE-02","ruleId":"portfolio.change.02@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-CHANGE-03","ruleId":"portfolio.change.03@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-CHANGE-04","ruleId":"portfolio.change.04@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-CHANGE-05","ruleId":"portfolio.change.05@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-CHANGE-06","ruleId":"portfolio.change.06@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-CHANGE-07","ruleId":"portfolio.change.07@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null},{"conditionId":"V-CHANGE-08","ruleId":"portfolio.change.08@1.0.0","workflow":"source-scan","availability":"unavailable","experimental":null}],"pages":[{"path":"/","title":"Overview","markdownUrl":"https://docs.swift-analyzer.com/index.md","jsonUrl":"https://docs.swift-analyzer.com/index.json"},{"path":"/get-started/installation/","title":"Installation","markdownUrl":"https://docs.swift-analyzer.com/get-started/installation/index.md","jsonUrl":"https://docs.swift-analyzer.com/get-started/installation/index.json"},{"path":"/get-started/first-analysis/","title":"First analysis","markdownUrl":"https://docs.swift-analyzer.com/get-started/first-analysis/index.md","jsonUrl":"https://docs.swift-analyzer.com/get-started/first-analysis/index.json"},{"path":"/guides/swiftpm/","title":"Analyze a SwiftPM project","markdownUrl":"https://docs.swift-analyzer.com/guides/swiftpm/index.md","jsonUrl":"https://docs.swift-analyzer.com/guides/swiftpm/index.json"},{"path":"/guides/manifest/","title":"Work with an existing snapshot","markdownUrl":"https://docs.swift-analyzer.com/guides/manifest/index.md","jsonUrl":"https://docs.swift-analyzer.com/guides/manifest/index.json"},{"path":"/guides/experimental/","title":"Experimental source preview","markdownUrl":"https://docs.swift-analyzer.com/guides/experimental/index.md","jsonUrl":"https://docs.swift-analyzer.com/guides/experimental/index.json"},{"path":"/guides/results/","title":"Understand results","markdownUrl":"https://docs.swift-analyzer.com/guides/results/index.md","jsonUrl":"https://docs.swift-analyzer.com/guides/results/index.json"},{"path":"/guides/ci/","title":"Advisory CI","markdownUrl":"https://docs.swift-analyzer.com/guides/ci/index.md","jsonUrl":"https://docs.swift-analyzer.com/guides/ci/index.json"},{"path":"/guides/troubleshooting/","title":"Troubleshooting","markdownUrl":"https://docs.swift-analyzer.com/guides/troubleshooting/index.md","jsonUrl":"https://docs.swift-analyzer.com/guides/troubleshooting/index.json"},{"path":"/reference/cli/","title":"CLI reference","markdownUrl":"https://docs.swift-analyzer.com/reference/cli/index.md","jsonUrl":"https://docs.swift-analyzer.com/reference/cli/index.json"},{"path":"/reference/inputs/","title":"Configuration and inputs","markdownUrl":"https://docs.swift-analyzer.com/reference/inputs/index.md","jsonUrl":"https://docs.swift-analyzer.com/reference/inputs/index.json"},{"path":"/reference/output/","title":"JSON and exit codes","markdownUrl":"https://docs.swift-analyzer.com/reference/output/index.md","jsonUrl":"https://docs.swift-analyzer.com/reference/output/index.json"},{"path":"/catalog/","title":"Rules","markdownUrl":"https://docs.swift-analyzer.com/catalog/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/index.json"},{"path":"/reference/environments/","title":"Supported environments","markdownUrl":"https://docs.swift-analyzer.com/reference/environments/index.md","jsonUrl":"https://docs.swift-analyzer.com/reference/environments/index.json"},{"path":"/concepts/foundations/","title":"Foundations of analysis","markdownUrl":"https://docs.swift-analyzer.com/concepts/foundations/index.md","jsonUrl":"https://docs.swift-analyzer.com/concepts/foundations/index.json"},{"path":"/concepts/coverage/","title":"Coverage and unknown","markdownUrl":"https://docs.swift-analyzer.com/concepts/coverage/index.md","jsonUrl":"https://docs.swift-analyzer.com/concepts/coverage/index.json"},{"path":"/concepts/evidence/","title":"Evidence and findings","markdownUrl":"https://docs.swift-analyzer.com/concepts/evidence/index.md","jsonUrl":"https://docs.swift-analyzer.com/concepts/evidence/index.json"},{"path":"/concepts/validation/","title":"How we validate checks","markdownUrl":"https://docs.swift-analyzer.com/concepts/validation/index.md","jsonUrl":"https://docs.swift-analyzer.com/concepts/validation/index.json"},{"path":"/project/status/","title":"Capabilities and limitations","markdownUrl":"https://docs.swift-analyzer.com/project/status/index.md","jsonUrl":"https://docs.swift-analyzer.com/project/status/index.json"},{"path":"/project/changes/","title":"Changes","markdownUrl":"https://docs.swift-analyzer.com/project/changes/index.md","jsonUrl":"https://docs.swift-analyzer.com/project/changes/index.json"},{"path":"/project/roadmap/","title":"Roadmap","markdownUrl":"https://docs.swift-analyzer.com/project/roadmap/index.md","jsonUrl":"https://docs.swift-analyzer.com/project/roadmap/index.json"},{"path":"/project/contributing/","title":"Contributing","markdownUrl":"https://docs.swift-analyzer.com/project/contributing/index.md","jsonUrl":"https://docs.swift-analyzer.com/project/contributing/index.json"},{"path":"/search/","title":"Search documentation","markdownUrl":"https://docs.swift-analyzer.com/search/index.md","jsonUrl":"https://docs.swift-analyzer.com/search/index.json"},{"path":"/catalog/repository-unused/","title":"Unused declaration or declaration group","markdownUrl":"https://docs.swift-analyzer.com/catalog/repository-unused/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/repository-unused/index.json"},{"path":"/catalog/architecture.production-used-only-by-tests/","title":"Production code used only by tests","markdownUrl":"https://docs.swift-analyzer.com/catalog/architecture.production-used-only-by-tests/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/architecture.production-used-only-by-tests/index.json"},{"path":"/catalog/architecture.forbidden-dependency/","title":"Forbidden dependency or layer bypass","markdownUrl":"https://docs.swift-analyzer.com/catalog/architecture.forbidden-dependency/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/architecture.forbidden-dependency/index.json"},{"path":"/catalog/api.access-narrowing/","title":"Excessive API visibility","markdownUrl":"https://docs.swift-analyzer.com/catalog/api.access-narrowing/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/api.access-narrowing/index.json"},{"path":"/catalog/architecture.unused-product-dependency/","title":"Unused product dependency","markdownUrl":"https://docs.swift-analyzer.com/catalog/architecture.unused-product-dependency/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/architecture.unused-product-dependency/index.json"},{"path":"/catalog/architecture.undeclared-direct-provider/","title":"Undeclared direct provider","markdownUrl":"https://docs.swift-analyzer.com/catalog/architecture.undeclared-direct-provider/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/architecture.undeclared-direct-provider/index.json"},{"path":"/catalog/architecture.dependency-cycle/","title":"Disallowed component cycle","markdownUrl":"https://docs.swift-analyzer.com/catalog/architecture.dependency-cycle/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/architecture.dependency-cycle/index.json"},{"path":"/catalog/api.implementation-type-leakage/","title":"Implementation type exposed through an API","markdownUrl":"https://docs.swift-analyzer.com/catalog/api.implementation-type-leakage/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/api.implementation-type-leakage/index.json"},{"path":"/catalog/architecture.registration-contract-mismatch/","title":"Incompatible registration or entry point","markdownUrl":"https://docs.swift-analyzer.com/catalog/architecture.registration-contract-mismatch/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/architecture.registration-contract-mismatch/index.json"},{"path":"/catalog/portfolio.arch.10/","title":"Required resource missing from a shipping variant","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.arch.10/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.arch.10/index.json"},{"path":"/catalog/portfolio.arch.11/","title":"Parameter unused across its dispatch family","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.arch.11/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.arch.11/index.json"},{"path":"/catalog/portfolio.arch.12/","title":"Property is written but never observed","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.arch.12/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.arch.12/index.json"},{"path":"/catalog/portfolio.arch.13/","title":"Redundant protocol or conformance","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.arch.13/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.arch.13/index.json"},{"path":"/catalog/portfolio.arch.14/","title":"Semantically redundant import","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.arch.14/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.arch.14/index.json"},{"path":"/catalog/concurrency.incompatible-isolation/","title":"Call crosses incompatible isolation","markdownUrl":"https://docs.swift-analyzer.com/catalog/concurrency.incompatible-isolation/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/concurrency.incompatible-isolation/index.json"},{"path":"/catalog/concurrency.unproven-mainactor-entry/","title":"MainActor entry without a proven context","markdownUrl":"https://docs.swift-analyzer.com/catalog/concurrency.unproven-mainactor-entry/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/concurrency.unproven-mainactor-entry/index.json"},{"path":"/catalog/concurrency.detached-task-context-loss/","title":"Required context lost through detachment","markdownUrl":"https://docs.swift-analyzer.com/catalog/concurrency.detached-task-context-loss/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/concurrency.detached-task-context-loss/index.json"},{"path":"/catalog/concurrency.dispatch-isolation-mismatch/","title":"Callback runs in an incompatible scheduler context","markdownUrl":"https://docs.swift-analyzer.com/catalog/concurrency.dispatch-isolation-mismatch/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/concurrency.dispatch-isolation-mismatch/index.json"},{"path":"/catalog/portfolio.exec.05/","title":"Invalid isolation assumption","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.exec.05/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.exec.05/index.json"},{"path":"/catalog/portfolio.exec.06/","title":"Resource used outside its execution domain","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.exec.06/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.exec.06/index.json"},{"path":"/catalog/portfolio.exec.07/","title":"Thread-affine value survives a suspension","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.exec.07/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.exec.07/index.json"},{"path":"/catalog/portfolio.exec.08/","title":"Required task-local value or executor preference is lost","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.exec.08/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.exec.08/index.json"},{"path":"/catalog/concurrency.main-actor-blocking/","title":"Blocking call on a critical executor","markdownUrl":"https://docs.swift-analyzer.com/catalog/concurrency.main-actor-blocking/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/concurrency.main-actor-blocking/index.json"},{"path":"/catalog/portfolio.exec.10/","title":"Expensive computation on a critical executor","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.exec.10/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.exec.10/index.json"},{"path":"/catalog/portfolio.exec.11/","title":"Removable scheduling boundary","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.exec.11/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.exec.11/index.json"},{"path":"/catalog/portfolio.exec.12/","title":"Cost amplified by actor crossings","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.exec.12/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.exec.12/index.json"},{"path":"/catalog/portfolio.exec.13/","title":"Independent work is unintentionally serialized","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.exec.13/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.exec.13/index.json"},{"path":"/catalog/portfolio.exec.14/","title":"Custom SerialExecutor violates serialization","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.exec.14/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.exec.14/index.json"},{"path":"/catalog/concurrency.state-freshness-across-suspension/","title":"State check becomes stale across await","markdownUrl":"https://docs.swift-analyzer.com/catalog/concurrency.state-freshness-across-suspension/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/concurrency.state-freshness-across-suspension/index.json"},{"path":"/catalog/concurrency.actor-invariant-exposure/","title":"Broken invariant is observable during suspension","markdownUrl":"https://docs.swift-analyzer.com/catalog/concurrency.actor-invariant-exposure/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/concurrency.actor-invariant-exposure/index.json"},{"path":"/catalog/concurrency.obsolete-generation-commit/","title":"Stale result overwrites a newer generation","markdownUrl":"https://docs.swift-analyzer.com/catalog/concurrency.obsolete-generation-commit/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/concurrency.obsolete-generation-commit/index.json"},{"path":"/catalog/portfolio.async.04/","title":"Operation requiring single-flight starts more than once","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.async.04/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.async.04/index.json"},{"path":"/catalog/portfolio.async.05/","title":"Code depends on an unspecified actor-task order","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.async.05/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.async.05/index.json"},{"path":"/catalog/concurrency.lost-continuation-resume/","title":"Continuation can finish without resume","markdownUrl":"https://docs.swift-analyzer.com/catalog/concurrency.lost-continuation-resume/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/concurrency.lost-continuation-resume/index.json"},{"path":"/catalog/concurrency.double-continuation-resume/","title":"Continuation can resume more than once","markdownUrl":"https://docs.swift-analyzer.com/catalog/concurrency.double-continuation-resume/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/concurrency.double-continuation-resume/index.json"},{"path":"/catalog/concurrency.cancel-register-start-race/","title":"Cancellation is lost between registration and start","markdownUrl":"https://docs.swift-analyzer.com/catalog/concurrency.cancel-register-start-race/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/concurrency.cancel-register-start-race/index.json"},{"path":"/catalog/concurrency.cancelled-forbidden-effect/","title":"Forbidden commit after cancellation or rejection","markdownUrl":"https://docs.swift-analyzer.com/catalog/concurrency.cancelled-forbidden-effect/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/concurrency.cancelled-forbidden-effect/index.json"},{"path":"/catalog/concurrency.unresponsive-cancellation-work/","title":"Work does not honor its cancellation contract","markdownUrl":"https://docs.swift-analyzer.com/catalog/concurrency.unresponsive-cancellation-work/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/concurrency.unresponsive-cancellation-work/index.json"},{"path":"/catalog/concurrency.timeout-sibling-outlives-race/","title":"Timeout or first result does not finish its scope","markdownUrl":"https://docs.swift-analyzer.com/catalog/concurrency.timeout-sibling-outlives-race/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/concurrency.timeout-sibling-outlives-race/index.json"},{"path":"/catalog/concurrency.task-outlives-scope/","title":"Task outlives its required lifecycle scope","markdownUrl":"https://docs.swift-analyzer.com/catalog/concurrency.task-outlives-scope/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/concurrency.task-outlives-scope/index.json"},{"path":"/catalog/portfolio.async.13/","title":"Required task result or error is lost","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.async.13/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.async.13/index.json"},{"path":"/catalog/concurrency.guard-held-across-suspension/","title":"Guard is held across a disallowed await","markdownUrl":"https://docs.swift-analyzer.com/catalog/concurrency.guard-held-across-suspension/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/concurrency.guard-held-across-suspension/index.json"},{"path":"/catalog/concurrency.sole-producer-self-block/","title":"Wait cycle blocks required producers","markdownUrl":"https://docs.swift-analyzer.com/catalog/concurrency.sole-producer-self-block/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/concurrency.sole-producer-self-block/index.json"},{"path":"/catalog/portfolio.async.16/","title":"Synchronous waits exhaust the cooperative pool","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.async.16/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.async.16/index.json"},{"path":"/catalog/portfolio.async.17/","title":"Priority inversion through opaque waiting","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.async.17/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.async.17/index.json"},{"path":"/catalog/portfolio.async.18/","title":"Shared-memory race across an unsafe or legacy boundary","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.async.18/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.async.18/index.json"},{"path":"/catalog/portfolio.async.19/","title":"Synchronous callback re-enters an unfinished protocol","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.async.19/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.async.19/index.json"},{"path":"/catalog/portfolio.async.20/","title":"Custom executor loses or repeats a job","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.async.20/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.async.20/index.json"},{"path":"/catalog/lifetime.escaping-value/","title":"Borrowed pointer or view escapes its lifetime","markdownUrl":"https://docs.swift-analyzer.com/catalog/lifetime.escaping-value/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/lifetime.escaping-value/index.json"},{"path":"/catalog/portfolio.life.02/","title":"Use after free","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.life.02/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.life.02/index.json"},{"path":"/catalog/portfolio.life.03/","title":"Repeated or incompatible deallocation","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.life.03/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.life.03/index.json"},{"path":"/catalog/portfolio.life.04/","title":"Unowned access after owner deallocation","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.life.04/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.life.04/index.json"},{"path":"/catalog/lifetime.unmanaged-ownership-balance/","title":"Unmanaged ownership imbalance","markdownUrl":"https://docs.swift-analyzer.com/catalog/lifetime.unmanaged-ownership-balance/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/lifetime.unmanaged-ownership-balance/index.json"},{"path":"/catalog/lifetime.ownership-cycle/","title":"Strong ownership cycle without a valid termination","markdownUrl":"https://docs.swift-analyzer.com/catalog/lifetime.ownership-cycle/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/lifetime.ownership-cycle/index.json"},{"path":"/catalog/portfolio.life.07/","title":"Required weak consumer is released too early","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.life.07/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.life.07/index.json"},{"path":"/catalog/lifetime.registration-outlives-scope/","title":"Registration outlives its allowed scope","markdownUrl":"https://docs.swift-analyzer.com/catalog/lifetime.registration-outlives-scope/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/lifetime.registration-outlives-scope/index.json"},{"path":"/catalog/lifetime.undischarged-resource-obligation/","title":"Cleanup obligation is not discharged","markdownUrl":"https://docs.swift-analyzer.com/catalog/lifetime.undischarged-resource-obligation/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/lifetime.undischarged-resource-obligation/index.json"},{"path":"/catalog/portfolio.life.10/","title":"Closed or transferred resource is still used","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.life.10/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.life.10/index.json"},{"path":"/catalog/portfolio.life.11/","title":"Read from an uninitialized buffer region","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.life.11/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.life.11/index.json"},{"path":"/catalog/correctness.pointer-count-initialization/","title":"Pointer or count exceeds its valid extent","markdownUrl":"https://docs.swift-analyzer.com/catalog/correctness.pointer-count-initialization/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/correctness.pointer-count-initialization/index.json"},{"path":"/catalog/performance.repeated-linear-traversal/","title":"Repeated linear traversal / Lazy pipeline is recomputed","markdownUrl":"https://docs.swift-analyzer.com/catalog/performance.repeated-linear-traversal/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/performance.repeated-linear-traversal/index.json"},{"path":"/catalog/performance.repeated-sorting/","title":"Repeated invariant sorting","markdownUrl":"https://docs.swift-analyzer.com/catalog/performance.repeated-sorting/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/performance.repeated-sorting/index.json"},{"path":"/catalog/performance.repeated-consumed-materialization/","title":"Repeated consumed materialization / Growing prefix is repeatedly materialized","markdownUrl":"https://docs.swift-analyzer.com/catalog/performance.repeated-consumed-materialization/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/performance.repeated-consumed-materialization/index.json"},{"path":"/catalog/performance.array-fifo-shifts/","title":"Array used as a growing shifting FIFO","markdownUrl":"https://docs.swift-analyzer.com/catalog/performance.array-fifo-shifts/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/performance.array-fifo-shifts/index.json"},{"path":"/catalog/portfolio.perf.06/","title":"Full sort used for an extremum or top-k result","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.perf.06/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.perf.06/index.json"},{"path":"/catalog/performance.comparator-projection-amplification/","title":"Expensive projection repeated by a comparator","markdownUrl":"https://docs.swift-analyzer.com/catalog/performance.comparator-projection-amplification/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/performance.comparator-projection-amplification/index.json"},{"path":"/catalog/portfolio.perf.08/","title":"Eager materialization before a short consumer","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.perf.08/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.perf.08/index.json"},{"path":"/catalog/portfolio.perf.09/","title":"Repeated physical copy-on-write detach","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.perf.09/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.perf.09/index.json"},{"path":"/catalog/portfolio.perf.10/","title":"Get-copy-modify-set amplifies cost","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.perf.10/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.perf.10/index.json"},{"path":"/catalog/portfolio.perf.12/","title":"Capacity policy violates the amortized bound","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.perf.12/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.perf.12/index.json"},{"path":"/catalog/portfolio.perf.13/","title":"Repeated element-by-element bridging","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.perf.13/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.perf.13/index.json"},{"path":"/catalog/portfolio.perf.14/","title":"Repeated expensive hashing or equality work","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.perf.14/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.perf.14/index.json"},{"path":"/catalog/portfolio.perf.15/","title":"Small slice retains large storage","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.perf.15/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.perf.15/index.json"},{"path":"/catalog/portfolio.perf.16/","title":"Fine-grained tasks amplify scheduling work","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.perf.16/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.perf.16/index.json"},{"path":"/catalog/portfolio.perf.17/","title":"Fanout retains excessive live data","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.perf.17/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.perf.17/index.json"},{"path":"/catalog/security.sensitive-data-flow/","title":"Sensitive data reaches logs / Sensitive data reaches a forbidden destination","markdownUrl":"https://docs.swift-analyzer.com/catalog/security.sensitive-data-flow/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/security.sensitive-data-flow/index.json"},{"path":"/catalog/security.sql-structure-injection/","title":"SQL injection","markdownUrl":"https://docs.swift-analyzer.com/catalog/security.sql-structure-injection/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/security.sql-structure-injection/index.json"},{"path":"/catalog/security.shell-command-injection/","title":"Shell injection","markdownUrl":"https://docs.swift-analyzer.com/catalog/security.shell-command-injection/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/security.shell-command-injection/index.json"},{"path":"/catalog/security.format-position-injection/","title":"Format-string injection","markdownUrl":"https://docs.swift-analyzer.com/catalog/security.format-position-injection/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/security.format-position-injection/index.json"},{"path":"/catalog/security.path-traversal/","title":"Path traversal outside the extraction root","markdownUrl":"https://docs.swift-analyzer.com/catalog/security.path-traversal/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/security.path-traversal/index.json"},{"path":"/catalog/security.javascript-code-injection/","title":"JavaScript or HTML context injection","markdownUrl":"https://docs.swift-analyzer.com/catalog/security.javascript-code-injection/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/security.javascript-code-injection/index.json"},{"path":"/catalog/security.privileged-url-input/","title":"Unprivileged input controls a privileged URL sink","markdownUrl":"https://docs.swift-analyzer.com/catalog/security.privileged-url-input/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/security.privileged-url-input/index.json"},{"path":"/catalog/portfolio.sec.09/","title":"Predicate injection","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.09/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.09/index.json"},{"path":"/catalog/portfolio.sec.10/","title":"Regular-expression injection","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.10/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.10/index.json"},{"path":"/catalog/portfolio.sec.11/","title":"Algorithmic denial of service through a regular expression","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.11/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.11/index.json"},{"path":"/catalog/portfolio.sec.12/","title":"External-entity expansion from untrusted XML","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.12/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.12/index.json"},{"path":"/catalog/portfolio.sec.13/","title":"TLS trust evaluation is effectively disabled","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.13/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.13/index.json"},{"path":"/catalog/portfolio.sec.14/","title":"Cryptography does not provide the claimed property","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.14/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.14/index.json"},{"path":"/catalog/portfolio.sec.15/","title":"Keyed nonce or IV is reused in an unsafe mode","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.15/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.15/index.json"},{"path":"/catalog/portfolio.sec.16/","title":"Unsafe password-derivation contract","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.16/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.16/index.json"},{"path":"/catalog/portfolio.sec.17/","title":"Predictable randomness in a security-sensitive value","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.17/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.17/index.json"},{"path":"/catalog/portfolio.sec.18/","title":"Untrusted deserialization crosses the allowed-type boundary","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.18/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.18/index.json"},{"path":"/catalog/portfolio.sec.19/","title":"Privileged effect bypasses required authorization","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.19/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.19/index.json"},{"path":"/catalog/portfolio.sec.20/","title":"Security validator or sanitizer is bypassed","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.20/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.20/index.json"},{"path":"/catalog/portfolio.sec.21/","title":"Embedded secret reaches a security-sensitive use","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.21/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.21/index.json"},{"path":"/catalog/portfolio.sec.22/","title":"WebView receives forbidden capabilities","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.22/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.22/index.json"},{"path":"/catalog/portfolio.sec.23/","title":"Cryptographic key has insufficient strength","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.23/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.23/index.json"},{"path":"/catalog/portfolio.sec.24/","title":"Dependency is fetched over an untrusted channel","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.24/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.24/index.json"},{"path":"/catalog/portfolio.sec.25/","title":"Non-reproducible dependency resolution violates policy","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.25/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.25/index.json"},{"path":"/catalog/portfolio.sec.26/","title":"Debug capability is exposed in a shipping product","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.26/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.sec.26/index.json"},{"path":"/catalog/correctness.equality-hash-contract/","title":"Equality and hashing disagree","markdownUrl":"https://docs.swift-analyzer.com/catalog/correctness.equality-hash-contract/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/correctness.equality-hash-contract/index.json"},{"path":"/catalog/correctness.persisted-process-hash/","title":"Process-local hash is used as a stable identity","markdownUrl":"https://docs.swift-analyzer.com/catalog/correctness.persisted-process-hash/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/correctness.persisted-process-hash/index.json"},{"path":"/catalog/correctness.regex-range-units/","title":"Incompatible length or index units","markdownUrl":"https://docs.swift-analyzer.com/catalog/correctness.regex-range-units/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/correctness.regex-range-units/index.json"},{"path":"/catalog/correctness.invalidated-collection-index/","title":"Invalidated collection index is used","markdownUrl":"https://docs.swift-analyzer.com/catalog/correctness.invalidated-collection-index/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/correctness.invalidated-collection-index/index.json"},{"path":"/catalog/correctness.mutable-collection-key/","title":"Key changes equality or hash while in a collection","markdownUrl":"https://docs.swift-analyzer.com/catalog/correctness.mutable-collection-key/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/correctness.mutable-collection-key/index.json"},{"path":"/catalog/correctness.bounded-ordering-law/","title":"Ordering laws are violated","markdownUrl":"https://docs.swift-analyzer.com/catalog/correctness.bounded-ordering-law/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/correctness.bounded-ordering-law/index.json"},{"path":"/catalog/correctness.canonical-output-nondeterminism/","title":"Unstable ordering reaches canonical output","markdownUrl":"https://docs.swift-analyzer.com/catalog/correctness.canonical-output-nondeterminism/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/correctness.canonical-output-nondeterminism/index.json"},{"path":"/catalog/portfolio.cor.08/","title":"Size or count exceeds its numeric range","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.cor.08/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.cor.08/index.json"},{"path":"/catalog/portfolio.cor.09/","title":"Non-finite value reaches a finite-only consumer","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.cor.09/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.cor.09/index.json"},{"path":"/catalog/portfolio.cor.10/","title":"Interprocedural path reaches an invalid force operation","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.cor.10/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.cor.10/index.json"},{"path":"/catalog/portfolio.cor.11/","title":"Single-pass sequence is consumed more than once","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.cor.11/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.cor.11/index.json"},{"path":"/catalog/portfolio.cor.12/","title":"Copy violates the state-independence contract","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.cor.12/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.cor.12/index.json"},{"path":"/catalog/portfolio.cor.13/","title":"Producer and consumer canonicalize identity differently","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.cor.13/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.cor.13/index.json"},{"path":"/catalog/portfolio.cor.14/","title":"Written value is lost before observation","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.cor.14/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.cor.14/index.json"},{"path":"/catalog/portfolio.cor.15/","title":"Predicate does not distinguish valid states","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.cor.15/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.cor.15/index.json"},{"path":"/catalog/portfolio.cor.16/","title":"Conditional-result branches are semantically identical","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.cor.16/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.cor.16/index.json"},{"path":"/catalog/portfolio.cor.17/","title":"Control-flow region is unreachable","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.cor.17/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.cor.17/index.json"},{"path":"/catalog/portfolio.cor.18/","title":"Computed result is discarded without a useful effect","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.cor.18/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.cor.18/index.json"},{"path":"/catalog/portfolio.cor.19/","title":"Comparison violates its numeric precision contract","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.cor.19/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.cor.19/index.json"},{"path":"/catalog/portfolio.stream.01/","title":"Buffer or accumulator lacks a required bound","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.stream.01/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.stream.01/index.json"},{"path":"/catalog/portfolio.stream.02/","title":"Drop policy violates required event delivery","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.stream.02/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.stream.02/index.json"},{"path":"/catalog/portfolio.stream.03/","title":"Concurrent next calls on a single-consumer iterator","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.stream.03/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.stream.03/index.json"},{"path":"/catalog/portfolio.stream.04/","title":"Stream is not finished on a required terminal path","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.stream.04/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.stream.04/index.json"},{"path":"/catalog/portfolio.stream.05/","title":"Retry or refresh forms a loop without progress or budget","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.stream.05/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.stream.05/index.json"},{"path":"/catalog/portfolio.stream.06/","title":"Retry duplicates a non-idempotent effect","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.stream.06/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.stream.06/index.json"},{"path":"/catalog/portfolio.stream.07/","title":"Related changes escape a required transaction","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.stream.07/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.stream.07/index.json"},{"path":"/catalog/portfolio.ui.01/","title":"Element identity is unstable across updates","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.ui.01/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.ui.01/index.json"},{"path":"/catalog/portfolio.ui.02/","title":"Distinct elements share one identity","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.ui.02/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.ui.02/index.json"},{"path":"/catalog/portfolio.ui.03/","title":"View computation causes a state-update cycle","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.ui.03/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.ui.03/index.json"},{"path":"/catalog/portfolio.ui.04/","title":"One-time state does not update with required input","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.ui.04/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.ui.04/index.json"},{"path":"/catalog/portfolio.change.01/","title":"Source API change breaks an admitted consumer","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.change.01/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.change.01/index.json"},{"path":"/catalog/portfolio.change.02/","title":"ABI change breaks binary compatibility","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.change.02/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.change.02/index.json"},{"path":"/catalog/portfolio.change.03/","title":"Existing signature gains incompatible behavior","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.change.03/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.change.03/index.json"},{"path":"/catalog/portfolio.change.04/","title":"Consumer silently binds to a different symbol","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.change.04/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.change.04/index.json"},{"path":"/catalog/portfolio.change.05/","title":"Version range admits an incompatible provider","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.change.05/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.change.05/index.json"},{"path":"/catalog/portfolio.change.06/","title":"Change bypasses required consumer review","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.change.06/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.change.06/index.json"},{"path":"/catalog/portfolio.change.07/","title":"Comparable resource bound regresses","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.change.07/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.change.07/index.json"},{"path":"/catalog/portfolio.change.08/","title":"Cache key or invalidation omits a result dependency","markdownUrl":"https://docs.swift-analyzer.com/catalog/portfolio.change.08/index.md","jsonUrl":"https://docs.swift-analyzer.com/catalog/portfolio.change.08/index.json"}]}
