概要

JetBrainsは2026年4月22日、ドイツ・ミュンヘンで5月20〜22日に開催されるKotlinConf 2026に合わせてKotlin 2.4.0-Beta2をリリースした。今回のベータ版では、これまで実験的だった複数の言語機能が安定版に昇格するとともに、コレクションリテラル構文など新たな実験的機能が追加されている。

安定化した主な機能としては、コンテキストパラメーター(コンテキスト引数や呼び出し可能参照を除く)、明示的バッキングフィールド、プロパティへの@allメタターゲット、ユースサイトアノテーションターゲットのデフォルトルール変更が挙げられる。また標準ライブラリのkotlin.uuid.Uuid APIも安定版となり、オプトインなしで使用できるようになった。

新しい実験的言語機能

コレクションリテラルは今回のベータ2で最も注目される実験的追加機能で、ブラケット構文[]を使ってコレクションを直感的に生成できる。型を明示すればMutableListなどの可変コレクション、型なしならListがデフォルトとなる。operator fun ofを定義したカスタム型でもこの構文を利用可能だが、Javaで定義されたコレクション型への適用は現時点で未サポート。有効化には-Xcollection-literalsコンパイラフラグが必要だ。

コンテキスト引数の明示指定-Xexplicit-context-arguments)も実験的に追加された。コンテキストパラメーターの違いだけでオーバーロードが存在する場合に、sendNotification(emailSender = defaultEmailSender)のように明示的にどのコンテキストを渡すか指定できるため、あいまいさを排除できる。さらにコンパイル時定数の評価強化も試験導入され、符号なし型の演算や文字列の.lowercase()/.uppercase()/.trim()、列挙型の.nameプロパティなどをコンパイル時に評価できるようになった。

標準ライブラリと各プラットフォームの強化

標準ライブラリでは、ソート順チェック用の拡張関数群(.isSorted().isSortedBy().isSortedDescending()など)がイテラブル・配列・シーケンスに追加された。JVM向けにはUInt.toBigInteger()ULong.toBigInteger()が新設され、符号なし整数をBigIntegerへ変換できる。またJava 26のバイトコード生成サポートと、Kotlinメタデータへのアノテーション格納がデフォルト有効化された。

Kotlin/Nativeでは、GradleからSwiftパッケージを依存関係として宣言するAPI(CocoaPodsからの移行ツール付き)が追加された。Swift Exportでkotlinx.coroutines.FlowをSwiftのAsyncSequenceとしてエクスポートできるようになり、型情報も保持される。またデフォルトGCがPMCS(Parallel Mark Concurrent Sweep)からCMS(Concurrent Mark and Sweep)に変更され、マーキングフェーズのアプリケーションスレッドとの並行実行によりGCポーズが大幅に短縮された。

Kotlin/Wasmでは2.1.0から導入されていたインクリメンタルコンパイルが安定版となりデフォルト有効化されたほか、FaaSやサーバーレス用途を想定したWebAssembly Component Modelへの実験的サポートが追加された。Kotlin/JSでは、インライン値クラスをTypeScriptのクラスとしてエクスポートする機能と、js()呼び出し内でES2015機能(アロー関数、スプレッド演算子、const/letなど)をフルサポートするようになった。

今後の展望

KotlinConf 2026はミュンヘンで5月20〜22日に開催され、ワークショップやセッション、基調講演が予定されている。Kotlin 2.4.0の正式リリースに向けて、今回の実験的機能へのフィードバックが求められている段階だ。IDEサポートはIntelliJ IDEAおよびAndroid Studioの最新版に含まれており、ビルドスクリプトのKotlinバージョンを2.4.0-Beta2に変更することで試用できる。