Sortie de Swift 5.2 qui apporte une nouvelle architecture de diagnostic

Par:
fredericmazue

lun, 10/02/2020 - 17:16

Le langage Swift vient de sortir en version 5.2. Cette mouture apporte une nouvelle architecture de diagnostic qui clarifie les messages d'erreurs. (Ce qui dans certains cas n'est pas du luxe).

Les diagnostics jouent un rôle très important dans une expérience de langage de programmation. Il est vital pour la productivité des développeurs que le compilateur puisse produire des conseils appropriés dans n'importe quelle situation, en particulier le code incomplet ou invalide souligne un billet du blog de Swift qui donne explication très détaillée de cette nouvelle architecture.

Au quotidien, l'expérience de développement devrait être meilleure, notamment au cours du travail avec SwiftUI. Soit cet exemple de code, pris sur www.hackingwithswift.com.

struct ContentView: View {
    @State private var name = 0

    var body: some View {
       VStack {
            Text("What is your name?")
            TextField("Name", text: $name)
                .frame(maxWidth: 300)
        }
    }
}

Ce code tente de lier un TextField d'une vue à une propriété @State qui est une valeur entière, ce qui n'est pas valide. Dans Swift 5.1, ça provoque une erreur pour le modificateur frame() disant que 'Int' is not convertible to 'CGFloat?'. Mais à partir de Swift 5.2, l'erreur est correctement identifiée comme étant due à la liaison avec $name : Cannot convert value of type 'Binding' to expected argument type 'Binding'.