Kotlin 2.3.0 is now generally available, with the language update offering capabilities such as an unused return value checker and support for Java 25. The release has a variety of experimental-stage features including the value checker, Swift interoperability, and a new syntax for explicit backing fields.
JetBrains released the language update on December 16. Installation instructions can be found at blog.jetbrains.com. This general release of the Java rival follows a release candidate introduced November 18.
With Kotlin 2.3.0, a new checker for unused values helps prevent ignored results. It warns whenever an expression returns a value other than Unit or Nothing and is not passed to a function, checked in a condition, or otherwise used. The checker helps catch bugs where a function call produces a meaningful result that was silently dropped, which can lead to unexpected behavior or hard-to-trace issues. This feature is currently experimental.
Another experimental capability in Kotlin 2.3.0 improves Kotlin’s interoperability with Swift through Swift export, adding support for native enum classes and variadic function parameters. Previously, Kotlin enums were exported as ordinary Swift classes. With mapping now direct, developers can use regular native Swift enums.
Other features in Kotlin 2.3.0 include the following:
return statements in expression bodies with explicit return types is now enabled by default.wasmWasitarget. It also introduces compact storage for Latin-1 characters. Also, the new WebAssembly exception handling proposal is enabled by default for the wasmWasitarget, ensuring better compatibility with modern WebAssembly runtimes.@JsExport annotation, and the BigInt64Array type now can be used to represent Kotlin’sLongArray type. These are both experimental features. .