En passant à la version 1.5.0, la dernière itération du langage statiquement typé de JetBrains, Kotlin est désormais disponible pour la production. Elle comprend plusieurs points forts dont le support stable des enregistrements JVM. Il s’agit de classes qui agissent comme des supports transparents pour des données immuables, les enregistrements sont comme des tuples nominaux. A noter que les enregistrements JVM de Kotlin 1.5.0 sont interopérables avec la dernière fonctionnalité d’enregistrement Java.

Autre point, le support des interfaces scellées avec l’introduction du modificateur « sealed ». Il fonctionne sur les interfaces de la même manière que sur les classes, avec toutes les implémentations d’une interface scellée connue au moment de la compilation. Avec Kotlin 1.5.0, les sous-classes des classes scellées peuvent être situées dans n’importe quel fichier de la même unité de compilation et du même paquet. Auparavant, toutes les sous-classes devaient se trouver dans le même fichier que les classes scellées.

Autres évolutions

Kotlin 1.5.0 apporte d’autres évolutions et perfectionnement :

- les classes en ligne, qui sont un sous-ensemble de classes basées sur des valeurs ne contenant que des valeurs, peuvent être utilisées comme enveloppes pour une valeur d'un certain type sans la surcharge supplémentaire qui provient de l'utilisation d'allocations de mémoire.

- des API stables sont proposées pour les types d'entiers non signés, les plages et les progressions de types d'entiers non signés et les fonctions qui fonctionnent avec des types d'entiers non signés.

- le compilateur JVM IR, annoncé dans Kotlin 1.4.0, est stable et constitue la valeur par défaut.

- Kotlin dispose désormais d'un moyen d'utiliser l'IO moderne non bloquant de Java dans un style Kotlin-idiomatique via des fonctions d'extension pour java.nio.file.Path.

- une API locale est proposée pour changer la casse des chaînes de caractères et des caractères.

- un ensemble de fonctions est proposé pour la conversion entre les caractères et leurs codes entiers et valeurs numériques.

- pour la bibliothèque de test, une seule dépendance kotlin-test est proposée pour les projets multiplateformes. De plus, les développeurs ont un choix automatique d'un cadre de test pour les ensembles de sources Kotlin/JVM. Il y a également des mises à jour de la fonction d'assertion.

- les constructeurs de Kotlin continuent d'étendre la partie multiplateforme de la bibliothèque standard afin de fournir toutes les capacités au projet multiplateforme. Maintenant, ils ont rendu un certain nombre de fonctions Char disponibles sur plusieurs plateformes.