Kotlin 1.1.6版本剛剛發布,它是Kotlin 1.1版本的新修補程序和工具更新。新版本在Kotlin / JS Gradle項目中增加了對增量編譯的實驗性支持,其目標是縮短開發過程中的構建時間,它與2016.3至2017.3之間的所有IntelliJ IDEA版本以及Android Studio 2.3、3.0和3.1 Canary都兼容。
Kotlin 1.1.6版本亮點概覽
·對Kotlin/JS增量編譯的實驗性支持(請注意,目前處于實驗性支持階段)
·JSR-305自定義可空性注釋支持
·修復自動Parcelable實現生成器Bug并提供IDE支持
·改進Gradle增量構建
·兼容IntelliJ插件,性能改進和bug修復
Dmitry Jemerov在一篇博客中解釋道,Kotlin 1.1.6在Kotlin / JS Gradle項目中引入了增量編譯的實驗性支持,可以顯著減少開發過程中的構建時間。編譯一個小的本地變化,分分鐘進行完整的非增量重建。
請記住,這個實驗性支持默認是禁用的——程序員可以通過在gradle.properties或local.properties中設置kotlin.incremental.js = true來啟用。
對JSR-305可空性注釋的支持已得到改進,并在此發行版中進行了一些bug修復:
·JSR-305默認類型限定符可以指定ElementType.TYPE_USE來影響注釋范圍內的所有類型用法,包括類型參數,類型參數上限和通配符類型。
·提供類型限定符昵稱和類型限定符默認注釋的庫維護者現在可以通過使用@UnderMigration標記注釋類型來控制注釋的遷移狀態。這個注解在一個新的工件kotlin-annotations-jvm中發布,應該作為庫的一個依賴添加,例如在Gradle中編譯“org.jetbrains.kotlin:kotlin-annotations-jvm:1.1.60”。 @UnderMigration(status = ...)值指定編譯器如何處理在注釋的API用法中檢測到的可空性違例,并且可以是MigrationStatus.STRICT,MigrationStatus.WARN和MigrationStatus.IGNORE之一,從而使編譯器報錯。 MigrationStatus.STRICT被認為是實驗性的。
出于某種原因,與庫維護人員提供的遷移狀態不同的用戶可以通過將編譯器標志為下列形式之一傳遞給可空性檢查:
·-Xjsr305 = {strict | warn | ignore}現在只影響所有沒有@UnderMigration狀態的注釋(strict模式是實驗性的)
·-Xjsr305=under-migration:{strict|warn|ignore}會覆蓋所有@UnderMigrationannotations的行為
·-Xjsr305=@
·(flag可以組合)
自動Parcelable實現生成器中的很多已知問題已經被修復,但目前處于實驗階段。此外,IDE還支持以診斷和快速修復的形式幫助使用@Parcelize。
此外,Gradle項目test源代碼集中的Kotlin代碼在主源被更改并且最新的檢查為可靠的情況下可以逐步重新編譯,這要歸功于一些bug修復。
最后但并非不重要的是,Kotlin IntelliJ IDEA插件有許多改進:
·新建項目向導,用Kotlin DSL創建一個Gradle項目
·在類型不匹配的情況下,快速修復將Iterable,Sequence和Array彼此轉換
·快速修復,使其類型參數在需要時通過使用
·許多bug修復和性能改進