Наконец-то в одном месте появилось детальное объяснение не только существующих проблем, но и вообще того, как устроен тайп-чекер.
📖 В официальной документации появился огромный пост (за авторством Славы Пестова) о том, что проводится уже сейчас для улучшения проверки типов выражений в компиляторе.
Сюда входят изменения, которые уже были реализованы в Swift 6.2, изменения, которые находятся в мэйн-ветке, изменения, над которыми планируется работать в следующем, а также предварительные долгосрочные планы.
Речь о том самом:
the compiler is unable to type-check this expression in reasonable time (тут можно чекнуть пару подходов).Слава прошёлся и разложил по полочкам несколько важных разделов:
➡️ Про перегрузку (какие вообще варики допускает Swift)
➡️ Решение ограничений (как вообще это реализуется компилятором)
➡️ Алгоритмическая сложность
➡️ Что вообще значит reasonable time
➡️ Недопустимые выражения, режим восстановления и диагностика
➡️ Цели (и не только они)
➡️ Что уже улучшили в Swift 6.2
➡️ А что планируется в Swift 6.3
➡️ Будущие улучшения (про оптимизацию биндингов, удаление хаков производительности и многое другое)
➡️ Планы на будущее
😃 iOS Dev