Pour sa mise à jour du langage Kotlin, JetBrains a ajouté le support préliminaire de la bibliothèque Java Lombok, conçue pour faciliter la programmation, ainsi que des capacités null pour Java JSpecify. Publiée le 23 juin, la version 1.5.20 de Kotlin offre un support expérimental pour l'appel des méthodes générées par Lombok. L'ajout du plug-in de compilation Lombok permet la génération de déclarations Lombok en Java par du code Kotlin dans le même module mixte Java/Kotlin. Cette bibilothéque se connecte à un éditeur et à des outils build et évite l’écriture de code boilerplate, c’est-à-dire du code réutilisé à de multiples reprises, grâce à des fonctionnalités comme l'automatisation des variables de journalisation.

Kotlin 1.5.20 offre également un support expérimental pour JSpecify, lequel fournit des annotations Java standard pour l'analyse statique. JSpecify présente un ensemble unifié d'annotations de nullité Java, ce qui permet de disposer de plus d'informations sur la nullité pour aider Kotlin à maintenir la sécurité null lors de l'interopérabilité avec Java.

Les autres apports de Kotlin 1.5.20

Parmi les autres fonctionnalités ajoutées à Kotlin 1.5.20, on peut citer :

- Concernant Gradle : l'exécution parallèle des tâches Kotlin est désormais entièrement contrôlée par le mécanisme d'exécution parallèle de Gradle tandis que la propriété kotlin.parallel.tasks.in.project a été dépréciée. Toujours à propos de Gradle, Kotlin 1.5.20 implémente la mise en cache expérimentale des classloaders des processeurs d'annotation dans kapt, afin d'accélérer kapt et d’effectuer des exécutions consécutives de Gradle dans certains cas.

- Concernant le compilateur Kotlin/Native : il peut désormais exporter les commentaires de documentation du code Kotlin vers les frameworks Objective-C. Ce support expérimental fonctionne également pour le langage Swift.

- Le travail se poursuit pour stabiliser le back-end de Kotlin/JS IR. Un guide de migration est proposé pour aider à la migration vers le nouveau back-end JavaScript.

- Concernant la bibliothèque standard : isLowerCase() et isUpperCase() délivrent désormais le même résultat sur toutes les plateformes en vérifiant tous les caractères, et pas seulement les lettres. De même, digitToInt() prend désormais en charge tous les caractères numériques Unicode pour toutes les plateformes Kotlin, y compris la JVM, le natif et JavaScript.

Les instructions d'installation de Kotlin 1.5.20 sont disponibles sur le site blog.jetbrains.com.