COR / Корректность значений
Используется инвалидированный collection index
correctness.invalidated-collection-index@1.0.0V-COR-04 · Дефект
Используется инвалидированный collection index
Индекс связан с состоянием коллекции. Изменение структуры может сделать сохранённый индекс недействительным.
Пример проблемы и направление исправления
Учебные сокращённые фрагменты Swift или схемы протокола. Вспомогательные API условны. Это не тестовые oracle и не обещание, что текущий subset выдаст диагностику именно на этот код.
Проблемный сценарий
var values = [10, 20]
let index = values.index(before: values.endIndex)
values.removeAll()
print(values[index])
Возможное исправление
values.removeAll()
if let first = values.first { print(first) }
Что изменить и что сохранить
После инвалидирующей мутации получай новый индекс или заново проверяй нужный элемент. Сохраняй идентичность элемента отдельно от позиции.
Что нужно доказать
Index generation переживает точную invalidating mutation
Требуемые факты по контракту: alias/membership generation и finite-domain law witness
Безопасные случаи и границы
Recomputed index и non-invalidating mutation
Если необходимые факты не получены, результат — unknown, а не «ошибки нет». Для review-сигнала также нужен наблюдаемый риск; нехватки данных недостаточно.
Что подтверждено сейчас
Принят bounded source subset по контракту задачи. Подтверждение распространяется только на допущенные source forms, профиль сборки, positive/negative и unknown-границы из приёмки. Пример выше и весь класс похожих программ автоматически принятыми не становятся.
Контракты и происхождение
Страница объединяет утверждённый реестр и редакционные объяснения из Git-среза 4558458d. Raw engineering contracts не входят в public artifact; точные пути остаются во внутреннем manifest.
- Целевой каталог:
docs/product/final-rule-catalog.md - Реестр RuleID:
docs/evidence/matrices/022-complete-rule-portfolio.md - Матрица условий:
openspec/specs/022-complete-rule-portfolio/coverage-matrix.md - Срез приёмки:
openspec/specs/022-complete-rule-portfolio/reports/source-authority-recovery.md - Приёмка: t008-t009-source-batch:
openspec/specs/022-complete-rule-portfolio/reports/t008-t009-source-batch.md - Приёмка: t012-t015-source-batch:
openspec/specs/022-complete-rule-portfolio/reports/t012-t015-source-batch.md - Приёмка: t011-delivery:
openspec/specs/022-complete-rule-portfolio/reports/t011-delivery.md - Приёмка: t014-delivery:
openspec/specs/022-complete-rule-portfolio/reports/t014-delivery.md
Изменение статуса требует обновления подтверждённого среза и проверки каталога. Количество страниц не является количеством полностью квалифицированных правил.