新しいメジャーリリースのプレビュー版であるKotlin 1.3-M1について調べてみました。
■Coroutines are graduating to stable
コルーチンが1.1で導入されて以来大幅に改善され安定化しました。
注目すべき機能はこちら
KT-16908 Support callable references to suspending functions
KT-18559 Serializability of all coroutine-related classes
■Capturing 'when' subject in a variable
KT-17981 Type parameter for catch parameter possible when exception is nested in generic, but fails in runtime
次のような書き方ができるようになります。※when (val response = executeRequest())みたいなことが記述ができるようになりました。
fun Request.getBody() =
when (val response = executeRequest()) {
is Success -> response.body
is HttpError -> throw HttpException(response.status)
}
■Nested declarations in annotation classes
アノテーションクラスはボディを持つことができませんでしたが、コンパニオンオブジェクトを含むネストされたクラス、インタフェース、およびオブジェクトを持てるようになりました。
次のようにアノテーションを別のアノテーションにネストすることが可能なるとのこと。
annotation class Outer(val param: Inner) {
annotation class Inner(val value: String)
}
■他の変更点が気になりましたら、以下を参照してください。
https://blog.jetbrains.com/kotlin/2018/07/see-whats-coming-in-kotlin-1-3-m1/



