Побочный, но крупный результат разбора зеркальных списков.
Package.swift называл BR-OUTPUT/HotkeyAnalytics.swift — файл, удалённый коммитом 939028c91 «remove 16 non-whitelisted BR-OUTPUT prototypes». SwiftPM на это не падает: он печатает Invalid Source ...: File not found. предупреждением и собирает дальше. Плюс список расходился с build.sh на 46 путей, из-за чего сборка вставала на cannot find type SessionGuard in scope.
Итог: набор tests/TriOSKitTests никогда не компилировался целиком, а потолок XCTEST_ERROR_CEILING был выставлен ровно в 2 — число ошибок, которые давали эти обломки. Зелёный потолок мерил обломки.
Отдельная жертва: HotkeyAnalyticsEncryptionTests.swift утверждает, что аналитика горячих клавиш шифруется на диске. Его предмет удалён, и всё это время он не утверждал ничего.
Настоящее число
23 различные ошибки компиляции в 4 файлах из 42; в библиотеке — ни одной.
ChatFailureTests.swift — 9: изоляция MainActor; три Mock-типа перестали соответствовать протоколам, которые подменяют; у ModelHealthResult нет члена unavailable
LocalAuthProviderTests.swift — 7: изоляция, потерянный try, неразрешённые token/accessToken, аргумент proactiveRefreshMaxAge, которого в API больше нет
LogsTabViewTests.swift — 6: изоляция, синтаксис литерала, лишний аргумент, Set<LogRotationPolicy> требует Hashable
HotkeyAnalyticsEncryptionTests.swift — 1: предмет удалён, в самом тесте неисправимо
Это набор, отставший от Swift 6 и от изменений API, пока он молча не собирался.
Что уже сделано
Package.swift приведён к тому, что печатает build.sh; призрак убран.
make sources-drift (0,1 с) падает, если списки разошлись, если запись называет несуществующий файл, если объявленное исключение протухло или если любой список пуст. Входит в check, есть самопроверка на пяти заготовках.
- Потолок 2 -> 23, и число теперь сопровождается словами «набор скомпилирован, значит это весь счёт».
Что нужно
Разобрать 23 ошибки. Двадцать две — дрейф тестов за кодом; двадцать третья требует решить судьбу теста, чей предмет удалён.
Побочный, но крупный результат разбора зеркальных списков.
Package.swiftназывалBR-OUTPUT/HotkeyAnalytics.swift— файл, удалённый коммитом 939028c91 «remove 16 non-whitelisted BR-OUTPUT prototypes». SwiftPM на это не падает: он печатаетInvalid Source ...: File not found.предупреждением и собирает дальше. Плюс список расходился сbuild.shна 46 путей, из-за чего сборка вставала наcannot find type SessionGuard in scope.Итог: набор
tests/TriOSKitTestsникогда не компилировался целиком, а потолокXCTEST_ERROR_CEILINGбыл выставлен ровно в 2 — число ошибок, которые давали эти обломки. Зелёный потолок мерил обломки.Отдельная жертва:
HotkeyAnalyticsEncryptionTests.swiftутверждает, что аналитика горячих клавиш шифруется на диске. Его предмет удалён, и всё это время он не утверждал ничего.Настоящее число
23 различные ошибки компиляции в 4 файлах из 42; в библиотеке — ни одной.
ChatFailureTests.swift— 9: изоляция MainActor; три Mock-типа перестали соответствовать протоколам, которые подменяют; уModelHealthResultнет членаunavailableLocalAuthProviderTests.swift— 7: изоляция, потерянныйtry, неразрешённыеtoken/accessToken, аргументproactiveRefreshMaxAge, которого в API больше нетLogsTabViewTests.swift— 6: изоляция, синтаксис литерала, лишний аргумент,Set<LogRotationPolicy>требует HashableHotkeyAnalyticsEncryptionTests.swift— 1: предмет удалён, в самом тесте неисправимоЭто набор, отставший от Swift 6 и от изменений API, пока он молча не собирался.
Что уже сделано
Package.swiftприведён к тому, что печатаетbuild.sh; призрак убран.make sources-drift(0,1 с) падает, если списки разошлись, если запись называет несуществующий файл, если объявленное исключение протухло или если любой список пуст. Входит вcheck, есть самопроверка на пяти заготовках.Что нужно
Разобрать 23 ошибки. Двадцать две — дрейф тестов за кодом; двадцать третья требует решить судьбу теста, чей предмет удалён.