Вхід Реєстрація
Реклама
Ваше рекламне місце
Забронюйте цей слот без конкуренції на обраний період.
Купити рекламу →
Логотип телеграм спільноти - BW Swift
Додано 06 січ 2025

BW Swift

@bwswift
Кількість підписників: 1 747
Фото: 1,710
Відео: 176
Посилання: 1,590
Опис:
Канал створений для навчання програмування на swift та розробці програм під iOS. Мета проекту - допомогти студентам пройти шлях від розробника-початківця до оплачуваного фахівця. Тут я публікую актуальні та цікаві статті щодо iOS розробки. Адмін: @bws2007
Джерело

BW Swift | Ось таку багу зловив та зарепортив. Swift компілятор не справляється з...

Логотип телеграм спільноти - BW Swift BW Swift @bwswift
1 120 Охват/переглядів 2025-07-21 04:16 Повідомлення №1912
🐞 Ось таку багу зловив та зарепортив. Swift компілятор не справляється з generic KeyPath.https://github.com/swiftlang/swift/issues/83197Цілью було отримати компайл тайм сейфті, групування по категоріям та автокомпліт.Навіть в простому варіанті падаєenum Resources { enum Category { }}struct Utils { static func resource<ResourceCategory>(_ type: KeyPath<Resources.Type, ResourceCategory.Type>) -> ResourceCategory.Type { Resources.self[keyPath: type] }}func testResourceGetter() { // 👇 This line crashes the compiler. let resource = Utils.resource(\.Category)} Робочій код був (мав бути) такийstruct Resource { let name: String}enum Resources { enum Category { static let nestedResource = Resource(name: "test") }}struct Utils { static func resource<ResourceCategory>( _ type: KeyPath<Resources.Type, ResourceCategory.Type>, resource: KeyPath<ResourceCategory.Type, Resource> ) -> Resource { ResourceCategory.self[keyPath: resource] }}func testResourceGetter() { // 👇 This line crashes the compiler. let resource = Utils.resource(\.Category, resource: \.nestedResource)}