# Каталог правил Swift Analyzer

Snapshot: 4558458d. 138 RuleID, 141 условий; 33 bounded условий принято, 108 требуют подтверждения.

Accepted subset не означает полную зрелость правила. При неполных фактах результат остаётся unknown.

- [repository-unused@1.0.0 — Неиспользуемая декларация или группа деклараций](https://docs.swift-analyzer.com/catalog/repository-unused/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/repository-unused/index.md)
- [architecture.production-used-only-by-tests@1.0.0 — Production-код используется только тестами](https://docs.swift-analyzer.com/catalog/architecture.production-used-only-by-tests/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/architecture.production-used-only-by-tests/index.md)
- [architecture.forbidden-dependency@1.0.0 — Запрещённая зависимость или обход слоя](https://docs.swift-analyzer.com/catalog/architecture.forbidden-dependency/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/architecture.forbidden-dependency/index.md)
- [api.access-narrowing@1.0.0 — Избыточная доступность API](https://docs.swift-analyzer.com/catalog/api.access-narrowing/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/api.access-narrowing/index.md)
- [architecture.unused-product-dependency@1.0.0 — Лишняя product dependency](https://docs.swift-analyzer.com/catalog/architecture.unused-product-dependency/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/architecture.unused-product-dependency/index.md)
- [architecture.undeclared-direct-provider@1.0.0 — Необъявленный прямой provider](https://docs.swift-analyzer.com/catalog/architecture.undeclared-direct-provider/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/architecture.undeclared-direct-provider/index.md)
- [architecture.dependency-cycle@1.0.0 — Недопустимый цикл компонентов](https://docs.swift-analyzer.com/catalog/architecture.dependency-cycle/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/architecture.dependency-cycle/index.md)
- [api.implementation-type-leakage@1.0.0 — Утечка implementation type через API](https://docs.swift-analyzer.com/catalog/api.implementation-type-leakage/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/api.implementation-type-leakage/index.md)
- [architecture.registration-contract-mismatch@1.0.0 — Несовместимая регистрация или entry point](https://docs.swift-analyzer.com/catalog/architecture.registration-contract-mismatch/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/architecture.registration-contract-mismatch/index.md)
- [portfolio.arch.10@1.0.0 — Отсутствующий обязательный ресурс в shipping-варианте](https://docs.swift-analyzer.com/catalog/portfolio.arch.10/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.arch.10/index.md)
- [portfolio.arch.11@1.0.0 — Неиспользуемый параметр во всём dispatch family](https://docs.swift-analyzer.com/catalog/portfolio.arch.11/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.arch.11/index.md)
- [portfolio.arch.12@1.0.0 — Свойство только записывается и не наблюдается](https://docs.swift-analyzer.com/catalog/portfolio.arch.12/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.arch.12/index.md)
- [portfolio.arch.13@1.0.0 — Избыточный протокол или conformance](https://docs.swift-analyzer.com/catalog/portfolio.arch.13/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.arch.13/index.md)
- [portfolio.arch.14@1.0.0 — Семантически лишний import](https://docs.swift-analyzer.com/catalog/portfolio.arch.14/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.arch.14/index.md)
- [concurrency.incompatible-isolation@1.0.0 — Вызов через несовместимую изоляцию](https://docs.swift-analyzer.com/catalog/concurrency.incompatible-isolation/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/concurrency.incompatible-isolation/index.md)
- [concurrency.unproven-mainactor-entry@1.0.0 — Вход в MainActor без доказанного контекста](https://docs.swift-analyzer.com/catalog/concurrency.unproven-mainactor-entry/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/concurrency.unproven-mainactor-entry/index.md)
- [concurrency.detached-task-context-loss@1.0.0 — Потеря требуемого контекста при detachment](https://docs.swift-analyzer.com/catalog/concurrency.detached-task-context-loss/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/concurrency.detached-task-context-loss/index.md)
- [concurrency.dispatch-isolation-mismatch@1.0.0 — Callback выполняется в несовместимом scheduler-контексте](https://docs.swift-analyzer.com/catalog/concurrency.dispatch-isolation-mismatch/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/concurrency.dispatch-isolation-mismatch/index.md)
- [portfolio.exec.05@1.0.0 — Недопустимое предположение об изоляции](https://docs.swift-analyzer.com/catalog/portfolio.exec.05/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.exec.05/index.md)
- [portfolio.exec.06@1.0.0 — Ресурс используется вне своего execution domain](https://docs.swift-analyzer.com/catalog/portfolio.exec.06/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.exec.06/index.md)
- [portfolio.exec.07@1.0.0 — Thread-affine значение переживает suspension](https://docs.swift-analyzer.com/catalog/portfolio.exec.07/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.exec.07/index.md)
- [portfolio.exec.08@1.0.0 — Потеря требуемого task-local или executor preference](https://docs.swift-analyzer.com/catalog/portfolio.exec.08/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.exec.08/index.md)
- [concurrency.main-actor-blocking@1.0.0 — Blocking-вызов на критическом executor](https://docs.swift-analyzer.com/catalog/concurrency.main-actor-blocking/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/concurrency.main-actor-blocking/index.md)
- [portfolio.exec.10@1.0.0 — Дорогая вычислительная работа на критическом executor](https://docs.swift-analyzer.com/catalog/portfolio.exec.10/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.exec.10/index.md)
- [portfolio.exec.11@1.0.0 — Устранимая scheduling boundary](https://docs.swift-analyzer.com/catalog/portfolio.exec.11/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.exec.11/index.md)
- [portfolio.exec.12@1.0.0 — Усиление стоимости из-за actor crossings](https://docs.swift-analyzer.com/catalog/portfolio.exec.12/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.exec.12/index.md)
- [portfolio.exec.13@1.0.0 — Непреднамеренная сериализация независимой работы](https://docs.swift-analyzer.com/catalog/portfolio.exec.13/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.exec.13/index.md)
- [portfolio.exec.14@1.0.0 — Нарушена сериализация custom SerialExecutor](https://docs.swift-analyzer.com/catalog/portfolio.exec.14/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.exec.14/index.md)
- [concurrency.state-freshness-across-suspension@1.0.0 — Проверка состояния устарела после await](https://docs.swift-analyzer.com/catalog/concurrency.state-freshness-across-suspension/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/concurrency.state-freshness-across-suspension/index.md)
- [concurrency.actor-invariant-exposure@1.0.0 — Нарушенный инвариант виден во время suspension](https://docs.swift-analyzer.com/catalog/concurrency.actor-invariant-exposure/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/concurrency.actor-invariant-exposure/index.md)
- [concurrency.obsolete-generation-commit@1.0.0 — Устаревший результат перезаписывает новое поколение](https://docs.swift-analyzer.com/catalog/concurrency.obsolete-generation-commit/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/concurrency.obsolete-generation-commit/index.md)
- [portfolio.async.04@1.0.0 — Повторный запуск операции, требующей single-flight](https://docs.swift-analyzer.com/catalog/portfolio.async.04/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.async.04/index.md)
- [portfolio.async.05@1.0.0 — Зависимость от негарантированного порядка actor tasks](https://docs.swift-analyzer.com/catalog/portfolio.async.05/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.async.05/index.md)
- [concurrency.lost-continuation-resume@1.0.0 — Continuation остаётся без resume](https://docs.swift-analyzer.com/catalog/concurrency.lost-continuation-resume/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/concurrency.lost-continuation-resume/index.md)
- [concurrency.double-continuation-resume@1.0.0 — Continuation возобновляется повторно](https://docs.swift-analyzer.com/catalog/concurrency.double-continuation-resume/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/concurrency.double-continuation-resume/index.md)
- [concurrency.cancel-register-start-race@1.0.0 — Cancellation теряется между registration и start](https://docs.swift-analyzer.com/catalog/concurrency.cancel-register-start-race/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/concurrency.cancel-register-start-race/index.md)
- [concurrency.cancelled-forbidden-effect@1.0.0 — Запрещённый commit после отмены или отказа](https://docs.swift-analyzer.com/catalog/concurrency.cancelled-forbidden-effect/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/concurrency.cancelled-forbidden-effect/index.md)
- [concurrency.unresponsive-cancellation-work@1.0.0 — Работа не соблюдает cancellation contract](https://docs.swift-analyzer.com/catalog/concurrency.unresponsive-cancellation-work/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/concurrency.unresponsive-cancellation-work/index.md)
- [concurrency.timeout-sibling-outlives-race@1.0.0 — Timeout или first-result не завершает scope по контракту](https://docs.swift-analyzer.com/catalog/concurrency.timeout-sibling-outlives-race/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/concurrency.timeout-sibling-outlives-race/index.md)
- [concurrency.task-outlives-scope@1.0.0 — Task переживает обязательный lifecycle scope](https://docs.swift-analyzer.com/catalog/concurrency.task-outlives-scope/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/concurrency.task-outlives-scope/index.md)
- [portfolio.async.13@1.0.0 — Теряется обязательный результат или ошибка задачи](https://docs.swift-analyzer.com/catalog/portfolio.async.13/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.async.13/index.md)
- [concurrency.guard-held-across-suspension@1.0.0 — Guard удерживается через недопустимый await](https://docs.swift-analyzer.com/catalog/concurrency.guard-held-across-suspension/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/concurrency.guard-held-across-suspension/index.md)
- [concurrency.sole-producer-self-block@1.0.0 — Цикл ожиданий блокирует обязательных producers](https://docs.swift-analyzer.com/catalog/concurrency.sole-producer-self-block/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/concurrency.sole-producer-self-block/index.md)
- [portfolio.async.16@1.0.0 — Истощение cooperative pool синхронными ожиданиями](https://docs.swift-analyzer.com/catalog/portfolio.async.16/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.async.16/index.md)
- [portfolio.async.17@1.0.0 — Priority inversion через непрозрачное ожидание](https://docs.swift-analyzer.com/catalog/portfolio.async.17/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.async.17/index.md)
- [portfolio.async.18@1.0.0 — Гонка на общей памяти за unsafe/legacy boundary](https://docs.swift-analyzer.com/catalog/portfolio.async.18/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.async.18/index.md)
- [portfolio.async.19@1.0.0 — Синхронный callback повторно входит в незавершённый протокол](https://docs.swift-analyzer.com/catalog/portfolio.async.19/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.async.19/index.md)
- [portfolio.async.20@1.0.0 — Custom executor теряет или повторяет job](https://docs.swift-analyzer.com/catalog/portfolio.async.20/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.async.20/index.md)
- [lifetime.escaping-value@1.0.0 — Borrowed pointer или view выходит за lifetime](https://docs.swift-analyzer.com/catalog/lifetime.escaping-value/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/lifetime.escaping-value/index.md)
- [portfolio.life.02@1.0.0 — Использование освобождённой памяти](https://docs.swift-analyzer.com/catalog/portfolio.life.02/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.life.02/index.md)
- [portfolio.life.03@1.0.0 — Повторное или несовместимое освобождение](https://docs.swift-analyzer.com/catalog/portfolio.life.03/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.life.03/index.md)
- [portfolio.life.04@1.0.0 — Unowned-доступ после смерти owner](https://docs.swift-analyzer.com/catalog/portfolio.life.04/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.life.04/index.md)
- [lifetime.unmanaged-ownership-balance@1.0.0 — Нарушение Unmanaged ownership balance](https://docs.swift-analyzer.com/catalog/lifetime.unmanaged-ownership-balance/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/lifetime.unmanaged-ownership-balance/index.md)
- [lifetime.ownership-cycle@1.0.0 — Strong ownership cycle без допустимого завершения](https://docs.swift-analyzer.com/catalog/lifetime.ownership-cycle/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/lifetime.ownership-cycle/index.md)
- [portfolio.life.07@1.0.0 — Преждевременная потеря обязательного weak consumer](https://docs.swift-analyzer.com/catalog/portfolio.life.07/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.life.07/index.md)
- [lifetime.registration-outlives-scope@1.0.0 — Registration переживает допустимую область](https://docs.swift-analyzer.com/catalog/lifetime.registration-outlives-scope/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/lifetime.registration-outlives-scope/index.md)
- [lifetime.undischarged-resource-obligation@1.0.0 — Не выполнена cleanup obligation](https://docs.swift-analyzer.com/catalog/lifetime.undischarged-resource-obligation/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/lifetime.undischarged-resource-obligation/index.md)
- [portfolio.life.10@1.0.0 — Использование закрытого или переданного ресурса](https://docs.swift-analyzer.com/catalog/portfolio.life.10/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.life.10/index.md)
- [portfolio.life.11@1.0.0 — Чтение неинициализированной области buffer](https://docs.swift-analyzer.com/catalog/portfolio.life.11/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.life.11/index.md)
- [correctness.pointer-count-initialization@1.0.0 — Pointer/count выходит за допустимую область](https://docs.swift-analyzer.com/catalog/correctness.pointer-count-initialization/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/correctness.pointer-count-initialization/index.md)
- [performance.repeated-linear-traversal@1.0.0 — Повторный линейный проход / Повторно вычисляется lazy pipeline](https://docs.swift-analyzer.com/catalog/performance.repeated-linear-traversal/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/performance.repeated-linear-traversal/index.md)
- [performance.repeated-sorting@1.0.0 — Повторная инвариантная сортировка](https://docs.swift-analyzer.com/catalog/performance.repeated-sorting/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/performance.repeated-sorting/index.md)
- [performance.repeated-consumed-materialization@1.0.0 — Повторная потребляемая materialization / Материализация растущего префикса](https://docs.swift-analyzer.com/catalog/performance.repeated-consumed-materialization/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/performance.repeated-consumed-materialization/index.md)
- [performance.array-fifo-shifts@1.0.0 — Array используется как растущая FIFO со сдвигами](https://docs.swift-analyzer.com/catalog/performance.array-fifo-shifts/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/performance.array-fifo-shifts/index.md)
- [portfolio.perf.06@1.0.0 — Полная сортировка для extremum или top-k](https://docs.swift-analyzer.com/catalog/portfolio.perf.06/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.perf.06/index.md)
- [performance.comparator-projection-amplification@1.0.0 — Дорогая проекция повторяется в comparator](https://docs.swift-analyzer.com/catalog/performance.comparator-projection-amplification/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/performance.comparator-projection-amplification/index.md)
- [portfolio.perf.08@1.0.0 — Eager materialization перед коротким consumer](https://docs.swift-analyzer.com/catalog/portfolio.perf.08/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.perf.08/index.md)
- [portfolio.perf.09@1.0.0 — Повторный физический CoW detach](https://docs.swift-analyzer.com/catalog/portfolio.perf.09/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.perf.09/index.md)
- [portfolio.perf.10@1.0.0 — Get-copy-modify-set усиливает стоимость](https://docs.swift-analyzer.com/catalog/portfolio.perf.10/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.perf.10/index.md)
- [portfolio.perf.12@1.0.0 — Capacity policy нарушает амортизированную границу](https://docs.swift-analyzer.com/catalog/portfolio.perf.12/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.perf.12/index.md)
- [portfolio.perf.13@1.0.0 — Повторное поэлементное bridging](https://docs.swift-analyzer.com/catalog/portfolio.perf.13/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.perf.13/index.md)
- [portfolio.perf.14@1.0.0 — Повторная дорогая hash/equality работа](https://docs.swift-analyzer.com/catalog/portfolio.perf.14/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.perf.14/index.md)
- [portfolio.perf.15@1.0.0 — Маленький slice удерживает большую storage](https://docs.swift-analyzer.com/catalog/portfolio.perf.15/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.perf.15/index.md)
- [portfolio.perf.16@1.0.0 — Слишком мелкие задачи усиливают scheduling work](https://docs.swift-analyzer.com/catalog/portfolio.perf.16/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.perf.16/index.md)
- [portfolio.perf.17@1.0.0 — Fanout удерживает чрезмерный объём одновременно живых данных](https://docs.swift-analyzer.com/catalog/portfolio.perf.17/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.perf.17/index.md)
- [security.sensitive-data-flow@1.0.0 — Чувствительные данные попадают в логи / Чувствительные данные достигают запрещённого получателя](https://docs.swift-analyzer.com/catalog/security.sensitive-data-flow/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/security.sensitive-data-flow/index.md)
- [security.sql-structure-injection@1.0.0 — SQL injection](https://docs.swift-analyzer.com/catalog/security.sql-structure-injection/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/security.sql-structure-injection/index.md)
- [security.shell-command-injection@1.0.0 — Shell injection](https://docs.swift-analyzer.com/catalog/security.shell-command-injection/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/security.shell-command-injection/index.md)
- [security.format-position-injection@1.0.0 — Format-string injection](https://docs.swift-analyzer.com/catalog/security.format-position-injection/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/security.format-position-injection/index.md)
- [security.path-traversal@1.0.0 — Path traversal / выход из extraction root](https://docs.swift-analyzer.com/catalog/security.path-traversal/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/security.path-traversal/index.md)
- [security.javascript-code-injection@1.0.0 — JS/HTML context injection](https://docs.swift-analyzer.com/catalog/security.javascript-code-injection/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/security.javascript-code-injection/index.md)
- [security.privileged-url-input@1.0.0 — Непривилегированный ввод управляет privileged URL sink](https://docs.swift-analyzer.com/catalog/security.privileged-url-input/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/security.privileged-url-input/index.md)
- [portfolio.sec.09@1.0.0 — Predicate injection](https://docs.swift-analyzer.com/catalog/portfolio.sec.09/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.sec.09/index.md)
- [portfolio.sec.10@1.0.0 — Regex injection](https://docs.swift-analyzer.com/catalog/portfolio.sec.10/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.sec.10/index.md)
- [portfolio.sec.11@1.0.0 — Алгоритмический DoS через regex](https://docs.swift-analyzer.com/catalog/portfolio.sec.11/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.sec.11/index.md)
- [portfolio.sec.12@1.0.0 — External-entity expansion из недоверенного XML](https://docs.swift-analyzer.com/catalog/portfolio.sec.12/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.sec.12/index.md)
- [portfolio.sec.13@1.0.0 — Проверка TLS trust фактически отключена](https://docs.swift-analyzer.com/catalog/portfolio.sec.13/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.sec.13/index.md)
- [portfolio.sec.14@1.0.0 — Неподходящая криптография для заявленного свойства](https://docs.swift-analyzer.com/catalog/portfolio.sec.14/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.sec.14/index.md)
- [portfolio.sec.15@1.0.0 — Повтор ключевого nonce/IV в недопустимом режиме](https://docs.swift-analyzer.com/catalog/portfolio.sec.15/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.sec.15/index.md)
- [portfolio.sec.16@1.0.0 — Небезопасный password derivation contract](https://docs.swift-analyzer.com/catalog/portfolio.sec.16/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.sec.16/index.md)
- [portfolio.sec.17@1.0.0 — Предсказуемая случайность в security-sensitive значении](https://docs.swift-analyzer.com/catalog/portfolio.sec.17/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.sec.17/index.md)
- [portfolio.sec.18@1.0.0 — Недоверенная десериализация нарушает allowed-type boundary](https://docs.swift-analyzer.com/catalog/portfolio.sec.18/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.sec.18/index.md)
- [portfolio.sec.19@1.0.0 — Привилегированный effect обходится без обязательной authorization](https://docs.swift-analyzer.com/catalog/portfolio.sec.19/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.sec.19/index.md)
- [portfolio.sec.20@1.0.0 — Обход security validator или sanitizer](https://docs.swift-analyzer.com/catalog/portfolio.sec.20/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.sec.20/index.md)
- [portfolio.sec.21@1.0.0 — Встроенный секрет достигает security use](https://docs.swift-analyzer.com/catalog/portfolio.sec.21/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.sec.21/index.md)
- [portfolio.sec.22@1.0.0 — WebView получает запрещённые возможности](https://docs.swift-analyzer.com/catalog/portfolio.sec.22/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.sec.22/index.md)
- [portfolio.sec.23@1.0.0 — Недостаточная стойкость криптографического ключа](https://docs.swift-analyzer.com/catalog/portfolio.sec.23/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.sec.23/index.md)
- [portfolio.sec.24@1.0.0 — Dependency загружается по недоверенному каналу](https://docs.swift-analyzer.com/catalog/portfolio.sec.24/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.sec.24/index.md)
- [portfolio.sec.25@1.0.0 — Невоспроизводимый dependency resolution нарушает policy](https://docs.swift-analyzer.com/catalog/portfolio.sec.25/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.sec.25/index.md)
- [portfolio.sec.26@1.0.0 — Отладочная возможность доступна в shipping product](https://docs.swift-analyzer.com/catalog/portfolio.sec.26/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.sec.26/index.md)
- [correctness.equality-hash-contract@1.0.0 — Equality и hashing противоречат друг другу](https://docs.swift-analyzer.com/catalog/correctness.equality-hash-contract/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/correctness.equality-hash-contract/index.md)
- [correctness.persisted-process-hash@1.0.0 — Process-local hash используется как стабильная identity](https://docs.swift-analyzer.com/catalog/correctness.persisted-process-hash/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/correctness.persisted-process-hash/index.md)
- [correctness.regex-range-units@1.0.0 — Несовместимые единицы длины или индекса](https://docs.swift-analyzer.com/catalog/correctness.regex-range-units/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/correctness.regex-range-units/index.md)
- [correctness.invalidated-collection-index@1.0.0 — Используется инвалидированный collection index](https://docs.swift-analyzer.com/catalog/correctness.invalidated-collection-index/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/correctness.invalidated-collection-index/index.md)
- [correctness.mutable-collection-key@1.0.0 — Ключ меняет equality/hash во время membership](https://docs.swift-analyzer.com/catalog/correctness.mutable-collection-key/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/correctness.mutable-collection-key/index.md)
- [correctness.bounded-ordering-law@1.0.0 — Нарушены законы ordering](https://docs.swift-analyzer.com/catalog/correctness.bounded-ordering-law/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/correctness.bounded-ordering-law/index.md)
- [correctness.canonical-output-nondeterminism@1.0.0 — Нестабильный порядок попадает в canonical output](https://docs.swift-analyzer.com/catalog/correctness.canonical-output-nondeterminism/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/correctness.canonical-output-nondeterminism/index.md)
- [portfolio.cor.08@1.0.0 — Размер/число выходит за допустимый числовой диапазон](https://docs.swift-analyzer.com/catalog/portfolio.cor.08/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.cor.08/index.md)
- [portfolio.cor.09@1.0.0 — Non-finite значение достигает finite-only consumer](https://docs.swift-analyzer.com/catalog/portfolio.cor.09/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.cor.09/index.md)
- [portfolio.cor.10@1.0.0 — Межпроцедурный путь приводит к invalid force operation](https://docs.swift-analyzer.com/catalog/portfolio.cor.10/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.cor.10/index.md)
- [portfolio.cor.11@1.0.0 — Повторно потребляется single-pass sequence](https://docs.swift-analyzer.com/catalog/portfolio.cor.11/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.cor.11/index.md)
- [portfolio.cor.12@1.0.0 — Копия нарушает контракт независимости состояния](https://docs.swift-analyzer.com/catalog/portfolio.cor.12/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.cor.12/index.md)
- [portfolio.cor.13@1.0.0 — Разная канонизация identity между producer и consumer](https://docs.swift-analyzer.com/catalog/portfolio.cor.13/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.cor.13/index.md)
- [portfolio.cor.14@1.0.0 — Записанное значение теряется до наблюдения](https://docs.swift-analyzer.com/catalog/portfolio.cor.14/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.cor.14/index.md)
- [portfolio.cor.15@1.0.0 — Предикат не различает допустимые состояния](https://docs.swift-analyzer.com/catalog/portfolio.cor.15/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.cor.15/index.md)
- [portfolio.cor.16@1.0.0 — Ветви условного результата семантически совпадают](https://docs.swift-analyzer.com/catalog/portfolio.cor.16/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.cor.16/index.md)
- [portfolio.cor.17@1.0.0 — Участок управления недостижим](https://docs.swift-analyzer.com/catalog/portfolio.cor.17/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.cor.17/index.md)
- [portfolio.cor.18@1.0.0 — Результат вычисления потерян без полезного эффекта](https://docs.swift-analyzer.com/catalog/portfolio.cor.18/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.cor.18/index.md)
- [portfolio.cor.19@1.0.0 — Сравнение нарушает численный контракт точности](https://docs.swift-analyzer.com/catalog/portfolio.cor.19/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.cor.19/index.md)
- [portfolio.stream.01@1.0.0 — Буфер или накопитель не имеет требуемой границы](https://docs.swift-analyzer.com/catalog/portfolio.stream.01/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.stream.01/index.md)
- [portfolio.stream.02@1.0.0 — Drop-policy нарушает доставку обязательных событий](https://docs.swift-analyzer.com/catalog/portfolio.stream.02/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.stream.02/index.md)
- [portfolio.stream.03@1.0.0 — Конкурентный next у single-consumer iterator](https://docs.swift-analyzer.com/catalog/portfolio.stream.03/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.stream.03/index.md)
- [portfolio.stream.04@1.0.0 — Поток не завершён на обязательном terminal path](https://docs.swift-analyzer.com/catalog/portfolio.stream.04/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.stream.04/index.md)
- [portfolio.stream.05@1.0.0 — Retry/refresh образует цикл без progress/budget](https://docs.swift-analyzer.com/catalog/portfolio.stream.05/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.stream.05/index.md)
- [portfolio.stream.06@1.0.0 — Повтор non-idempotent операции дублирует effect](https://docs.swift-analyzer.com/catalog/portfolio.stream.06/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.stream.06/index.md)
- [portfolio.stream.07@1.0.0 — Связанные изменения выходят из обязательной transaction](https://docs.swift-analyzer.com/catalog/portfolio.stream.07/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.stream.07/index.md)
- [portfolio.ui.01@1.0.0 — Identity элемента нестабильна между обновлениями](https://docs.swift-analyzer.com/catalog/portfolio.ui.01/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.ui.01/index.md)
- [portfolio.ui.02@1.0.0 — Разные элементы получают одну identity](https://docs.swift-analyzer.com/catalog/portfolio.ui.02/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.ui.02/index.md)
- [portfolio.ui.03@1.0.0 — Вычисление представления вызывает цикл state updates](https://docs.swift-analyzer.com/catalog/portfolio.ui.03/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.ui.03/index.md)
- [portfolio.ui.04@1.0.0 — Однократное состояние не обновляется с обязательным input](https://docs.swift-analyzer.com/catalog/portfolio.ui.04/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.ui.04/index.md)
- [portfolio.change.01@1.0.0 — Source API change ломает допустимого consumer](https://docs.swift-analyzer.com/catalog/portfolio.change.01/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.change.01/index.md)
- [portfolio.change.02@1.0.0 — ABI change нарушает binary compatibility](https://docs.swift-analyzer.com/catalog/portfolio.change.02/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.change.02/index.md)
- [portfolio.change.03@1.0.0 — Прежняя сигнатура получила несовместимое поведение](https://docs.swift-analyzer.com/catalog/portfolio.change.03/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.change.03/index.md)
- [portfolio.change.04@1.0.0 — Consumer незаметно привязался к другому символу](https://docs.swift-analyzer.com/catalog/portfolio.change.04/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.change.04/index.md)
- [portfolio.change.05@1.0.0 — Version range допускает несовместимый provider](https://docs.swift-analyzer.com/catalog/portfolio.change.05/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.change.05/index.md)
- [portfolio.change.06@1.0.0 — Изменение обходит обязательный consumer review](https://docs.swift-analyzer.com/catalog/portfolio.change.06/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.change.06/index.md)
- [portfolio.change.07@1.0.0 — Ухудшилась сопоставимая граница ресурса](https://docs.swift-analyzer.com/catalog/portfolio.change.07/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.change.07/index.md)
- [portfolio.change.08@1.0.0 — Cache key или invalidation не учитывает зависимость результата](https://docs.swift-analyzer.com/catalog/portfolio.change.08/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/catalog/portfolio.change.08/index.md)

---
Language: ru
Canonical: https://docs.swift-analyzer.com/catalog
Source revision: 4558458d
