Releases: JetBrains/kotlin
Releases · JetBrains/kotlin
1.2.10
Compiler
KT-20821Error while inlining function reference implicitly applied to thisKT-21299Restore adding JDK roots to the beginning of the classpath list
IDE
KT-21180Project level api/language version settings are erroneously used as default during Gradle importKT-21335Fix exception on Project Structure view openKT-21610Fix "Could not determine the class-path for interface KotlinGradleModel" on Gradle sync- Optimize dependency handling during import of Gradle project
JavaScript
KT-21493Losing lambda defined in inline function after incremental recompilation
Tools. CLI
KT-21495Bash scripts in Kotlin v1.2 compiler have Windows line terminatorsKT-21537javac 7 do nothing when kotlin-compiler(-embeddable) is in classpath
Libraries
- Unify docs wording of 'trim*' functions
- Improve cover documentation page of kotlin.test library
- Provide summary for kotlin.math package
- Fix unresolved references in the api docs
Previous releases
This release also includes fixes and improvements from previous release:
1.2.0
CHANGELOG
1.2
Android
KT-20974NSME "AndroidModuleModel.getMainArtifact" on Gradle refreshKT-20975IAE "Missing extension point" on Gradle refresh
Compiler
KT-6359Provide the way to share code with different targets(JVM, JS)
IDE
KT-21300IDEA slow down in Kotlin + Spring projectKT-20450Exception in UAST during function inliningKT-20789Can't navigate to inline call/inline use site when runner is delegated to GradleKT-21236New project button doesn't work with Kotlin plugin enabled and Gradle plugin disabledKT-21263"Configure Kotlin Plugin Updates" suggests incompatible plugin for AS 3.0
Tools. JPS
KT-20757Rebuild when language/api version is changed
Previous releases
This release also includes fixes and improvements from pre-releases:
1.1.61
Compiler
KT-17640Back-end (JVM) Internal error for inline reified suspend funKT-20651"Don't know how to generate outer expression" for enum-values with non-trivial self-closures
IDE
KT-20782Non-atomic trees updateKT-20789Can't navigate to inline call/inline use site when runner is delegated to GradleKT-20843Kotlin TypeDeclarationProvider may stop other declarations providers executionKT-20929Import Project from Gradle wizard: the same page is shown twiceKT-20967Kotlin plugin upgrade breaks Gradle refreshKT-21263"Configure Kotlin Plugin Updates" suggests incompatible plugin for AS 3.0
IDE. Inspections and Intentions
KT-20315"call chain on collection type may be simplified" generates code that does not compile
1.2-RC2
Compiler
KT-20844VerifyError on Android after upgrading to 1.2.0-beta-88KT-20895NPE in Kotlin 1.2-beta88 PseudocodeVariablesData.kt:337KT-21377Create fallback flag for "Illegal smart cast is allowed after assignment in try block"
IDE
KT-18719Configure Kotlin in Gradle project to 1.2-Mx: add repository mavenCentral() to buildscriptKT-20782Exception when working with routing in ktor (non-atomic trees update)KT-20966ISE: Facade class not found from Kotlin test filesKT-20967Kotlin plugin upgrade breaks Gradle refreshKT-20990String literal in string template causes ISEKT-21028Add kotlin-stdlib-jre7/8 instead of kotlin-stdlib-jdk7/8 for Kotlin versions below 1.2KT-21383Unsupported method: Library.getProject()when importing Anko project- Downgrade "use expression body" inspection to INFORMATION default level
IDE. Debugger
KT-20962NullPointerException because of nullable location in debugger
IDE. Inspections and Intentions
KT-20803Create actual declaration in the same source root as expect declaration
IDE. Refactorings
KT-20979Move class refactoring doesn't work anymore
Libraries
- Remove deprecated
pairwisefunction
Tools. Gradle
KT-21395“Unable to load class 'kotlin.collections.CollectionsKt'” on creating gradle project in IDEA 2016.3.7
Tools. kapt
- Add
kotlin-annotation-processing-embeddableartifact (compatible withkotlin-compiler-embeddable) - Return
kotlin-annotation-processingartifact back (compatible with CLI Kotlin compiler)
Previous releases
This release also includes the fixes and improvements from the previous
1.2-RC1 release.
1.1.60
- Adds experimental support for Kotlin/JS incremental compilation
- Adds new features to JSR-305 custom nullability annotations support
- Brings a lot of bug fixes in the automatic Parcelable implementation generator and provides it with IDE support
- Improves Gradle incremental builds
- Introduces new inspections, performance improvements and bug fixes in the IntelliJ plugin
The complete list of changes in this release can be found in the changelog.
The update is compatible with all versions of IntelliJ IDEA from 2016.3 until 2017.3, as well as with Android Studio 2.3, 3.0 and 3.1 Canary.
1.2-RC
Compiler
Fixes
KT-20774"::foo.isInitialized" for lateinit member properties produces incorrect bytecodeKT-20826Can't compile Ultimate Idea with Kotlin 1.2KT-20879Compiler problem in when-expressionsKT-20959Regression: Unexpected diagnostic NINITIALIZED_ENUM_COMPANION reported in 1.1.60 & 1.2.0-rcKT-20651Don't know how to generate outer expression" for enum-values with non-trivial self-closures
IDE
New Features
KT-20286"Configure Kotlin in project" should add kotlin-stdlib-jdk7/8 instead of kotlin-stdlib-jre7/8 starting from Kotlin 1.2
Fixes
KT-19599No indentation for multiline collection literalKT-20346Can't build tests in common code due to missing org.jetbrains.kotlin:kotlin-test-js testCompile dependency in JSKT-20550Spring: "Navigate to autowired candidates" gutter action is missed (IDEA 2017.3)KT-20566Spring: "Navigate to the spring beans declaration" gutter action for@ComponentScanis missed (IDEA 2017.3)KT-20843Kotlin TypeDeclarationProvider may stop other declarations providers executionKT-20906Find symbol by name doesn't workKT-20920UAST: SOE Thrown in JavaColorProviderKT-20922Couldn't match ClsMethodImpl from Kotlin test filesKT-20929Import Project from Gradle wizard: the same page is shown twiceKT-20833MP project: add dependency to kotlin-test-annotation-common to common module
IDE. Completion
KT-18458Spring: code completion does not suggest bean names inside@Qualifierbefore function parameter
IDE. Inspections and Intentions
KT-20899Code Cleanup fails to convert Circlet codebase to 1.2KT-20949CCE from UAST (File breadcrumbs don't update when file tree does)
IDE. Refactorings
KT-20251Kotlin Gradle script: Refactor → Inline works incorrect when you need to inline all function occurrences
JavaScript
KT-2976Suggestion for cleaner style to implement !! operatorKT-5259JS: RTTI may be break by overwriting constructor fieldKT-17475JS: object and companion object named "prototype" cause exceptionsKT-18095JS: Wrong behavior of fun named "constructor"KT-18105JS: inner class "length" cause runtime exceptionKT-20625JS: Interface function with default parameter, overridden by other interface cannot be found at runtimeKT-20820JS: IDEA project doesn't generate paths relative to .map
Libraries
KT-4900Finalize math operation parameter names
Tools. JPS
KT-20852IllegalArgumentException: URI has an authority component on attempt to jps compile the gradle project with javascript module
Tools. kapt
KT-20877Butterknife: UninitializedPropertyAccessException: "lateinit property has not been initialized" for field annotated with@BindView.
Previous releases
This release also includes the fixes and improvements from the previous
1.2-Beta2 release.
1.1.60-eap-43
What's new
- Bug fixes and further improvements in support for JSR-305 nullability annotations:
- Type qualifier defaults can now be used with
ElementType.TYPE_USEto provide nullability information for types in all positions including type arguments, upper bounds of type parameters and wildcard types - Migration status of custom nullability annotations can be controlled with the
@UnderMigrationannotation (packaged in a new artifactkotlin-annotations-jvm) - Support for fine-grained migration status control on the library user side with the compiler configuration flag
-Xjsr305
- Type qualifier defaults can now be used with
- Experimental support for Kotlin/JS incremental compilation in Gradle builds; it is disabled by default and can be enabled by setting
kotlin.incremental.js = trueingradle.propertiesorlocal.properties - Bug fixes in
Parcelableimplementation generation with@Parcelize - Lots of bug fixes in the compiler and IDE
- New inspections, performance improvements and bugfixes in the IntelliJ plugin
- Other improvements in support for Gradle incremental builds
1.2-Beta2
CHANGELOG
1.2-Beta2
Multiplatform projects
New Features
KT-20616Compiler options forKotlinCompileCommontaskKT-15522Treat expect classes without explicit constructors as not having constructors at allKT-16099Do not require obvious override of super-interface methods in non-abstract expect classKT-20618RenameimplementtoexpectedByin gradle module dependency
Fixes
KT-16926'implement' dependency is not transitive when importing gradle project to IDEAKT-20634False error about platform project implementing non-common projectKT-19170Forbid private expected declarationsKT-20431Prohibit inheritance by delegation in 'expect' classesKT-20540Report errors about incompatible constructors of actual classKT-20398Do not highlight declarations with not implemented implementations with red during typingKT-19937Support "implement expect class" quickfix for nested classesKT-20657Actual annotation with all parameters that have default values doesn't match expected annotation with no-arg constructorKT-20680No actual class member: inconsistent modality checkKT-18756multiplatform project: compilation error on implementation of extension property in javascript client moduleKT-17374Too many "expect declaration has no implementation" inspection in IDE in a multi-platform projectKT-18455Multiplatform project: show gutter Navigate to implementation on expect side of method in the expect classKT-19222Useless tooltip on a gutter icon for expect declarationKT-20043multiplatform: No H gutter if a class has nested/inner classes inherited from itKT-20164expect/actual navigation does not work when actual is a typealiasKT-20254multiplatform: there is no link between expect and actual classes, if implementation has a constructor when expect doesn'tKT-20309multiplatform: ClassCastException on mouse hovering on the H gutter of the actual secondary constructorKT-20638Context menu in common module: NSEE: "Collection contains no element matching the predicate." at KotlinRunConfigurationProducerKt.findJvmImplementationModule()KT-18919multiplatform project: expect keyword is lost on converting to objectKT-20008multiplatform: Create expect class implementation should add actual keyword at secondary constructorsKT-20044multiplatform: Create expect class implementation should add actual constructor at primary constructorKT-20135"Create expect class implementation" should open created class in editorKT-20163multiplatform: it should be possible to create an implementation for overloaded method if for one method implementation is present alreadyKT-20243multiplatform: quick fix Create expect interface implementation should add actual keyword at interface membersKT-20325multiplatform: Quick fix Create actual ... should specify correct classifier name for object, enum class and annotation class
Compiler
New Features
KT-16028Allow to have different bodies of inline functions inlined depending on apiVersion
Performance Improvements
KT-20462Don't create an array copy for '*(...)'
Fixes
KT-13644Information from explicit cast should be used for type inferenceKT-14697Use-site targeted annotation is not correctly loaded from class fileKT-17981Type parameter for catch parameter possible when exception is nested in generic, but fails in runtimeKT-19251Stack spilling in constructor arguments breaks QuasarKT-20387Wrong argument generated for accessor call of a protected generic 'operator fun get/set' from base class with primitive type as type parameterKT-20491Incorrect synthetic accessor generated for a generic base class function specialized with primitive typeKT-20651"Don't know how to generate outer expression" for enum-values with non-trivial self-closuresKT-20752Do not register new kinds of smart casts for unstable values
IDE
New Features
KT-19146Parameter hints could be shown for annotation
Fixes
KT-19207"Configure Kotlin in project" should add "requires kotlin.stdlib" to module-info for Java 9 modulesKT-19213Formatter/Code Style: space between type parameters andwhereis not insertedKT-19216Parameter name hints should not be shown for functional type invocationKT-20448Exception in UAST during reference search in J2KKT-20543java.lang.ClassCastException on usage of array literals in Spring annotationKT-20709Loop in parent structure when converting a LITERAL_STRING_TEMPLATE_ENTRY
IDE. Completion
KT-17165Support array literals in annotations in completion
IDE. Debugger
KT-18775Evaluate expression doesn't allow access to properties of private nested objects, including companion
IDE. Inspections and Intentions
New Features
KT-20108Support "add requires directive to module-info.java" quick fix on usages of non-required modules in Kotlin sourcesKT-20410Add inspection for listOf().filterNotNull() to replace it with listOfNotNull()
Fixes
KT-16636Remove parentheses after deleting the last unused constructor parameterKT-18549"Add type" quick fix adds non-primitive Array type for annotation parametersKT-18631Inspection to convert emptyArray() to empty literal does not workKT-18773Disable "Replace camel-case name with spaces" intention for JS and common projectsKT-20183AE “Classifier descriptor of a type should be of type ClassDescriptor” on adding element to generic collection in functionKT-20315"call chain on collection type may be simplified" generates code that does not compile
JavaScript
Fixes
KT-8285JS: don't generate tmp when only need one componentKT-8374JS: some Double values converts to Int differently on JS and JVMKT-14549JS: Non-local returns from secondary constructors don't workKT-15294JS: parse error injs()functionKT-17629JS: Equals function (==) returns true for all primitive numeric typesKT-17760JS: Nothing::class throws errorKT-17933JS: toString, hashCode method and simplename property of KClass return senseless results for some classesKT-18010JS: JsName annotation in interfaces can cause runtime exceptionKT-18063Inlining does not work properly in JS for suspend functions from another moduleKT-18548JS: wrong string interpolation with generic or Any parametersKT-19772JS: wrong boxing behavior for...
1.2-Beta
Android
New Features
KT-20051Quickfixes to support @parcelize
Fixes
KT-19747Android extensions + Parcelable: VerifyError in case of RawValue annotation on a type when it's unknown how to parcel itKT-19899Parcelize: Building with ProGuard enabledKT-19988[Android Extensions] inner class LayoutContainer causes NoSuchMethodErrorKT-20002Parcelize explodes on LongArrayKT-20019Parcelize does not propogate flags argument when writing nested ParcelableKT-20020Parcelize does not use primitive array read/write methods on ParcelKT-20021Parcelize does not serialize Parcelable enum as ParcelableKT-20022Parcelize should dispatch directly to java.lang.Enum when writing an enum.KT-20034Application installation failed (INSTALL_FAILED_DEXOPT) in Android 4.3 devices if I use ParcelizeKT-20057Parcelize should use specialized write/create methods where available.KT-20062Parceler should allow otherwise un-parcelable property types in enclosing class.KT-20170UAST: Getting the location of a UIdentifier is tricky
Compiler
KT-4565Support smart casting of safe cast's subject (and also safe call's receiver)KT-8492Null check should work after save call with elvis in conditionKT-9327Need a way to check whether a lateinit property was assignedKT-14138Allow lateinit local variablesKT-15461Allow lateinit top level propertiesKT-7257NPE when accessing properties of enum from inner lambda on initializationKT-9580Report an error if 'setparam' target does not make sense for a parameter declarationKT-16310Nested classes inside enum entries capturing outer membersKT-20155Confusing diagnostics on a nested interface in inner class
IDE
KT-14175Surround with try ... catch (... finally) doesn't work for expressionsKT-20308New Gradle with Kotlin DSL project wizardKT-18353Support UAST for .kts filesKT-19823Kotlin Gradle project import into IntelliJ: import kapt generated classes into classpathKT-20185Stub and PSI element type mismatch for "var nullableSuspend: (suspend (P) -> Unit)? = null"
Language design
KT-14486Allow smart cast in closure if a local variable is modified only before it (and not after or inside)KT-15667Support "::foo" as a short-hand syntax for bound callable reference to "this::foo"KT-16681kotlin allows mutating the field of read-only property
Libraries
KT-19258Java 9: module-info.java withrequires kotlin.stdlibcauses compiler to fail: "module reads package from both kotlin.reflect and kotlin.stdlib"
Tools
KT-19692kotlin-jpa plugin doesn't support @MappedSuperclass annotationKT-20030Parcelize can directly reference writeToParcel and CREATOR for final, non-Parcelize Parcelable types in same compilation unit.KT-19742[Android extensions] Calling clearFindViewByIdCache causes NPEKT-19749Android extensions + Parcelable: NoSuchMethodError on attempt to pack into parcel a serializable objectKT-20026Parcelize overrides describeContents despite being already implemented.KT-20027Parcelize uses wrong classloader when reading parcelable type.KT-20029Parcelize should not directly reference parcel methods on types outside compilation unitKT-20032Parcelize does not respect type nullability in case of Parcelize parcelables
Tools. CLI
KT-10563Support a command line argument -Werror to treat warnings as errors
Tools. Gradle
KT-20212Cannot access internal components from test code
Tools. kapt
KT-17923Reference to Dagger generated class is highlighted redKT-18923Kapt: Do not use the Kotlin error message collector to issue errors from kaptKT-19097Request: Decent support ofkapt.kotlin.generatedon Intellij/Android StudioKT-20001kapt generate stubs Gradle task does not depend on the compilation of sub-project kapt dependencies