Обновить

Комментарии 2

ЗакрепленныеЗакреплённые комментарии

Немного углубимся в настройки.

Вы немного не те настройки показываете. Swift 6.0 основные настройки вот эти, которые появились в Xcode 16.2 когда вышел Swift 6.0

Default Actor Isolation появилось только в Swift 6.2 (Xcode 26)

Поэтому переход на Swift 6 рекомендуют делать так (а не всё разом включать):

  1. Оставляем Swift 5

  2. В Swift Compiler - Upcoming Features включаем одну из фич Swift 6 (напимер Isolated Global Variables выставляем в Yes)

  3. В Swift 5 режиме новая фича Swift 6 будет подсвечена варнингом если найдется для нее проблема. Фиксим ее

  4. Включаем следующую фичу Swift 6 и фиксим проблемы

  5. Когда включили все флаги и пофиксили проблемы, то можно включать Swift 6

Похоже, вы правы, спасибо, что обратили внимание! Я руководствовался исключительно личными экспериментами, стоило изучить тему дополнительно.

Когда переводишь на Swift 6 (в Swift Compiler - Language), все правила с пометкой в (SWIFT_UPCOMING_FEATURE_6_0) сразу включаются. На примере мини приложения ошибок возникло немного и решать их было несложно, при работе с коммерческим проектом или пакетом корректно будет включать правила по одному и только потом менять версию языка.

Еще раз спасибо!

Немного углубимся в настройки.

Вы немного не те настройки показываете. Swift 6.0 основные настройки вот эти, которые появились в Xcode 16.2 когда вышел Swift 6.0

Default Actor Isolation появилось только в Swift 6.2 (Xcode 26)

Поэтому переход на Swift 6 рекомендуют делать так (а не всё разом включать):

  1. Оставляем Swift 5

  2. В Swift Compiler - Upcoming Features включаем одну из фич Swift 6 (напимер Isolated Global Variables выставляем в Yes)

  3. В Swift 5 режиме новая фича Swift 6 будет подсвечена варнингом если найдется для нее проблема. Фиксим ее

  4. Включаем следующую фичу Swift 6 и фиксим проблемы

  5. Когда включили все флаги и пофиксили проблемы, то можно включать Swift 6

Похоже, вы правы, спасибо, что обратили внимание! Я руководствовался исключительно личными экспериментами, стоило изучить тему дополнительно.

Когда переводишь на Swift 6 (в Swift Compiler - Language), все правила с пометкой в (SWIFT_UPCOMING_FEATURE_6_0) сразу включаются. На примере мини приложения ошибок возникло немного и решать их было несложно, при работе с коммерческим проектом или пакетом корректно будет включать правила по одному и только потом менять версию языка.

Еще раз спасибо!

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации