Iniciar sesión Registro
Anuncios
Tu espacio publicitario
Reserva este slot exclusivo para el periodo elegido.
Comprar publicidad →
Logotipo de la comunidad de telegram - BW Swift
Añadido 06 ene. 2025

BW Swift

@bwswift
Número de suscriptores: 1 742
Fotos: 1,710
Videos: 176
Enlaces: 1,590
Descripción:
Канал створений для навчання програмування на swift та розробці програм під iOS. Мета проекту - допомогти студентам пройти шлях від розробника-початківця до оплачуваного фахівця. Тут я публікую актуальні та цікаві статті щодо iOS розробки. Адмін: @bws2007
Fuente

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

Logotipo de la comunidad de telegram - BW Swift BW Swift @bwswift
1 120 Vistas/Alcance 2025-07-21 04:16 Mensaje №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)}