Skip to content

Releases: JetBrains/kotlin

1.3 RC

20 Sep 17:09

Choose a tag to compare

1.3 RC Pre-release
Pre-release

Compiler

New Features

  • KT-17679 Support suspend fun main in JVM
  • KT-24854 Support suspend function types for arities bigger than 22
  • KT-26574 Support main entry-point without arguments in frontend, IDE and JVM

Performance Improvements

  • KT-26490 Change boxing technique: instead of calling valueOf, allocate new wrapper type

Fixes

  • KT-22069 Array class literals are always loaded as Array<*> from deserialized annotations
  • KT-22892 Call of invoke function with lambda parameter on a field named suspend should be reported
  • KT-24708 Incorrect WhenMappings code generated in case of mixed enum classes in when conditions
  • KT-24853 Forbid KSuspendFunctionN and SuspendFunctionN to be used as supertypes
  • KT-24866 Review support of all operators for suspend function and forbid all unsupported
  • KT-25461 Mangle names of functions that have top-level inline class types in their signatures to allow non-trivial non-public constructors
  • KT-25785 Unsigned delegated property returns different value depending on the site it is used
  • KT-25855 Load Java declarations which reference kotlin.jvm.functions.FunctionN as Deprecated with level ERROR
  • KT-26071 Postpone conversions from signed constant literals to unsigned ones
  • KT-26141 actual typealias for expect sealed class results in error "This type is sealed, so it can be inherited by only its own nested classes or objects"
  • KT-26200 Forbid suspend functions annotated with @kotlin.test.Test
  • KT-26219 Result of unsigned predecrement/preincrement is not boxed as expected
  • KT-26223 Inline lambda arguments of inline class types are passed incorrectly
  • KT-26291 Boxed/primitive types clash when overriding Kotlin from Java with common generic supertype with inline class type argument
  • KT-26403 Add -impl suffix to box/unbox methods and make them synthetic
  • KT-26404 Mangling: setters for properties of inline class types
  • KT-26409 implies in CallsInPlace effect isn't supported
  • KT-26437 Generate constructors containing inline classes as parameter types as private with synthetic accessors
  • KT-26449 Prohibit equals-like and hashCode-like declarations inside inline classes
  • KT-26451 Generate static methods with equals/hashCode implementations
  • KT-26452 Get rid of $Erased nested class in ABI of inline classes
  • KT-26453 Generate all static methods in inline classes with “-impl” suffix
  • KT-26454 Prohibit @JvmName on functions that are assumed to be mangled
  • KT-26468 Inline class ABI: Constructor invocation is not represented in bytecode
  • KT-26480 Report error from compiler when suspension point is located between corresponding MONITORENTER/MONITOREXIT
  • KT-26538 Prepare kotlin.Result to publication in 1.3
  • KT-26558 Inline Classes: IllegalStateException when invoking secondary constructor for a primitive underlying type
  • KT-26570 Inline classes ABI
  • KT-26573 Reserve box, unbox, equals and hashCode methods inside inline class for future releases
  • KT-26575 Reserve bodies of secondary constructors for inline classes
  • KT-26576 Generate stubs for box/unbox/equals/hashCode inside inline classes
  • KT-26580 Add version to kotlin.coroutines.jvm.internal.DebugMetadata
  • KT-26659 Prohibit using kotlin.Result as a return type and with special operators
  • KT-26687 Stdlib contracts have no effect in common code
  • KT-26707 companion val of primitive type is not treated as compile time constant
  • KT-26720 Write language version requirement on inline classes and on declarations that use inline classes
  • KT-26859 Inline class misses unboxing when using indexer into an ArrayList
  • KT-26936 Report warning instead of error on usages of Experimental/UseExperimental
  • KT-26958 Introduce builder-inference with an explicit opt-in for it

IDE

New Features

  • KT-26525 "Move Element Right/Left": Support type parameters in where clause (multiple type constraints)

Fixes

  • KT-22491 MPP new project/new module templates are not convenient
  • KT-26428 Kotlin Migration in AS32 / AS33 fails to complete after "Indexing paused due to batch update" event
  • KT-26484 Do not show -Xmulti-platform option in facets for common modules of multiplatform projects with the new model
  • KT-26584 @language prefix and suffix are ignored for function arguments
  • KT-26679 Coroutine migrator should rename buildSequence/buildIterator to their new names
  • KT-26732 Kotlin language version from IDEA settings is not taken into account when working with Java code
  • KT-26770 Android module in a multiplatform project isn't recognised as a multiplatform module
  • KT-26794 Bad version detection during migration in Android Studio 3.2
  • KT-26823 Fix deadlock in databinding with AndroidX which led to Android Studio hanging
  • KT-26827 ISE “Error type encountered: [ERROR : UInt] (UnresolvedType)” for data inline class wrapped unsigned type
  • KT-26829 ISE “Error type encountered: [ERROR : UInt] (UnresolvedType)” for using as a field inline class wrapped unsigned type
  • KT-26843 LazyLightClassMemberMatchingError$NoMatch: Couldn't match ClsMethodImpl:getX MemberIndex(index=1) (with 0 parameters) on inline class overriding inherited interface method defined in different files
  • KT-26895 Exception while building light class for @serializable annotated class

IDE. Android

  • KT-26169 Android extensions are not recognised by IDE in multiplatform projects
  • KT-26813 Multiplatform projects without Android target are not imported properly into Android Studio

IDE. Code Style, Formatting

  • KT-22322 Incorrect indent after pressing Enter after annotation entry
  • KT-26377 Formatter does not add blank line between annotation and type alias (or secondary constructor)

IDE. Decompiler

  • KT-25853 IDEA hangs when Kotlin bytecode tool window open while editing a class with secondary constructor

IDE. Gradle

  • KT-26634 Do not generate module for metadataMain compilation on new MPP import
  • KT-26675 Gradle: Dependency on multiple files gets duplicated on import

IDE. Inspections and Intentions

New Features

  • KT-17687 Quickfix for "Interface doesn't have constructors" to convert to anonymous object
  • KT-24728 Add quickfix to remove single explicit & unused lambda parameter
  • KT-25533 An intention to create actual implementations for expect members annotated with @OptionalExpectation
  • KT-25621 Inspections for functions returning SuccessOrFailure
  • [KT-25969](https...
Read more

1.2.70

13 Sep 14:47
@4u7 4u7

Choose a tag to compare

Compiler

  • KT-13860 Avoid creating KtImportDirective PSI elements for default imports in LazyImportScope
  • KT-22201 Generate nullability annotations for data class toString and equals methods.
  • KT-23870 SAM adapter method returns null-values for "genericParameterTypes"
  • KT-24597 IDE doesn't report missing constructor on inheritance of an expected class in common module
  • KT-25120 RequireKotlin on nested class and its members is not loaded correctly
  • KT-25193 Names of parameters from Java interface methods implemented by delegation are lost
  • KT-25405 Mismatching descriptor type parameters on inner types
  • KT-25604 Disable callable references to exprerimental suspend functions
  • KT-25665 Add a warning for annotations which target non-existent accessors
  • KT-25894 Do not generate body for functions from Any in light class builder mode
  • KT-20772 Incorrect smart cast on enum members
  • KT-24657 Compiler performance issues with big files
  • KT-25745 Do not report warning about annotations on non-existing accessors for JvmStatic properties
  • KT-25746 Improve message for warning about annotations that have target to non-existing accessors
  • KT-25810 New Inference: Overload resolution ambiguity on method 'provideDelegate(Nothing?, KProperty<*>)' when there's more than one provideDelegate operator in scope
  • KT-25973 Report metadata version mismatch upon discovering a .kotlin_module file in the dependencies with an incompatible metadata version
  • KT-22281 JVM: Incorrect comparison of Double and Float when types are derived from smart-casts
  • KT-22649 Compiler: wrong code generated / Couldn't transform method node - using inline extension property inside lambda

IDE

  • KT-18301 kotlin needs crazy amount of memory
  • KT-23668 Methods with internal visibility have different mangling names in IDE and in compiler
  • KT-24892 please remove usages of com.intellij.util.containers.ConcurrentFactoryMap#ConcurrentFactoryMap deprecated long ago
  • KT-25144 Quick fix “Change signature” changes class of argument when applied for descendant classes with enabled -Xnew-inference option
  • KT-25356 Update Gradle Kotlin-DSL icon according to new IDEA 2018.2 icons style
  • KT-20056 TCE on creating object of an anonymous class in Kotlin script
  • KT-25092 SourcePsi should be physical leaf element but got OPERATION_REFERENCE
  • KT-25249 Uast operates "Unit" type instead of "void"
  • KT-25255 Preferences | Languages & Frameworks | Kotlin Updates: show currently installed version
  • KT-25297 Inconsistency in KotlinULambdaExpression and KotlinLocalFunctionULambdaExpression
  • KT-25515 Add/remove analysis-related compiler setting does not update IDE project model immediately
  • KT-25524 UAST: proper resolve for function variable call
  • KT-25640 "Configure Kotlin" action changes values of language and API version in project settings

IDE. Debugger

  • KT-25147 Conditional breakpoints doesn't work in common code of MPP
  • KT-25152 MPP debug doesn't navigate to common code if there are same named files in common and platform parts

IDE. Gradle

  • KT-22732 TestNG runner is always used for TestNG tests even when Use Gradle runner is selected
  • KT-25913 Honor 'store generated project files externally option' for Kotlin facets imported from Gradle
  • KT-25955 Support expect/actual in new MPP imported into IDEA

IDE. Inspections and Intentions

New Features

  • KT-6633 Inspection to detect unnecessary "with" calls
  • KT-25146 Add quick-fix for default parameter value removal
  • KT-7675 Create inspection to replace if with let
  • KT-13515 Add intention to replace '?.let' with null check
  • KT-13854 Need intention actions: to convert property with getter to initializer
  • KT-15476 Inspection to convert non-lazy chains of collection functions into sequences
  • KT-22068 Force usage of “it” in .forEach{} calls
  • KT-23445 Inspection and quickfix to replace assertTrue(a == b) with assertEquals(a, b)
  • KT-25270 "return@foo" outside of lambda should have quickfix to remove "@foo" label

Fixes

  • KT-11154 Spell checking inspection is not suppressable
  • KT-18681 "Replace 'if' with 'when'" generates unnecessary else block
  • KT-24001 "Suspicious combination of == and ===" false positive
  • KT-24385 Convert lambda to reference refactor produces red code with companion object
  • KT-24694 Move lambda out of parentheses should not be applied for multiple functional parameters
  • KT-25089 False-positive "Call chain on collection type can be simplified" for map and joinToString on a HashMap
  • KT-25169 Impossible to suppress UAST/JVM inspections
  • KT-25321 Safe delete of a class property implementing constructor parameter at the platform side doesn't remove all the related declarations
  • KT-25539 Make class open quick fix doesn't update all the related implementations of a multiplatform class
  • KT-25608 Confusing "Redundant override" inspection message
  • KT-16422 Replace lambda with method reference inspections fails
  • KT-21999 Convert lambda to reference adds this with incorrect label
  • KT-23467 False positive suspicious callable reference on scoping function called on another lambda
  • KT-25044 "Implement member" quick-fix should not generate 'actual' modifier with expect declaration in interface only
  • KT-25579 Redundant semicolon erroneously reported during local var modifier ambiguity
  • KT-25633 “Add kotlin-XXX.jar to the classpath” quick fix adds dependency with invalid version in Gradle-based projects
  • KT-25739 "Convert to run" / "Convert to with" intentions incorrectly process references to Java static members
  • KT-25928 "Let extend" quick fix is suggested in case of nullable/non-null TYPE_MISMATCH collision
  • KT-26042 False positive "Remove redundant '.let' call" for lambda with destructured arguments

IDE. KDoc

  • KT-22815 Update quick documentation
  • KT-22648 Quick Doc popup: break (long?) declarations into several lines

IDE. Libraries

  • KT-25129 Idea freezes when Kotlin plugin tries to determine if jar is js lib in jvm module

IDE. Navigation

  • KT-25317 Go to actual declaration keyboard shortcut doesn't work for expect object, showing "No implementations found" message
  • KT-25492 Find usages: keep Expected functions option state while searching for usages of a regular function
  • KT-25498 Find Usages d...
Read more

1.2.70 RC 1

05 Sep 17:36
@4u7 4u7

Choose a tag to compare

1.2.70 RC 1 Pre-release
Pre-release

Compiler

  • KT-20772 Incorrect smart cast on enum members
  • KT-24657 Compiler performance issues with big files
  • KT-25745 Do not report warning about annotations on non-existing accessors for JvmStatic properties
  • KT-25746 Improve message for warning about annotations that have target to non-existing accessors
  • KT-25810 New Inference: Overload resolution ambiguity on method 'provideDelegate(Nothing?, KProperty<*>)' when there's more than one provideDelegate operator in scope
  • KT-25973 Report metadata version mismatch upon discovering a .kotlin_module file in the dependencies with an incompatible metadata version

IDE

  • KT-20056 TCE on creating object of an anonymous class in Kotlin script
  • KT-25092 SourcePsi should be physical leaf element but got OPERATION_REFERENCE
  • KT-25249 Uast operates "Unit" type instead of "void"
  • KT-25255 Preferences | Languages & Frameworks | Kotlin Updates: show currently installed version
  • KT-25297 Inconsistency in KotlinULambdaExpression and KotlinLocalFunctionULambdaExpression
  • KT-25515 Add/remove analysis-related compiler setting does not update IDE project model immediately
  • KT-25524 UAST: proper resolve for function variable call
  • KT-25640 "Configure Kotlin" action changes values of language and API version in project settings

IDE. Gradle

  • KT-22732 TestNG runner is always used for TestNG tests even when Use Gradle runner is selected
  • KT-25913 Honor 'store generated project files externally option' for Kotlin facets imported from Gradle
  • KT-25955 Support expect/actual in new MPP imported into IDEA

IDE. Inspections and Intentions

New Features

  • KT-7675 Create inspection to replace if with let
  • KT-13515 Add intention to replace '?.let' with null check
  • KT-13854 Need intention actions: to convert property with getter to initializer
  • KT-15476 Inspection to convert non-lazy chains of collection functions into sequences
  • KT-22068 Force usage of “it” in .forEach{} calls
  • KT-23445 Inspection and quickfix to replace assertTrue(a == b) with assertEquals(a, b)
  • KT-25270 "return@foo" outside of lambda should have quickfix to remove "@foo" label

Fixes

  • KT-16422 Replace lambda with method reference inspections fails
  • KT-21999 Convert lambda to reference adds this with incorrect label
  • KT-23467 False positive suspicious callable reference on scoping function called on another lambda
  • KT-25044 "Implement member" quick-fix should not generate 'actual' modifier with expect declaration in interface only
  • KT-25579 Redundant semicolon erroneously reported during local var modifier ambiguity
  • KT-25633 “Add kotlin-XXX.jar to the classpath” quick fix adds dependency with invalid version in Gradle-based projects
  • KT-25739 "Convert to run" / "Convert to with" intentions incorrectly process references to Java static members
  • KT-25928 "Let extend" quick fix is suggested in case of nullable/non-null TYPE_MISMATCH collision
  • KT-26042 False positive "Remove redundant '.let' call" for lambda with destructured arguments

IDE. KDoc

  • KT-22648 Quick Doc popup: break (long?) declarations into several lines

IDE. Navigation

  • KT-25498 Find Usages doesn't show Supertype usages of actual declarations with constructor

IDE. Refactorings

  • KT-25857 Refactoring → Move moves whole file in case of moving class from Kotlin script
  • KT-25858 Refactoring → Move can be called only for class declarations in Kotlin script

IDE. Tests Support

  • KT-26228 NoClassDefFoundError: org/jetbrains/kotlin/idea/run/KotlinTestNgConfigurationProducer on running a JUnit test with TestNG plugin disabled

JavaScript

  • KT-22053 JS: Secondary constructor of Throwable inheritor doesn't call to primary one
  • KT-26064 JS inliner calls wrong constructor in incremental build
  • KT-26117 JS runtime error: ArrayList_init instead of ArrayList_init_0

Libraries

  • KT-18067 KotlinJS - String.compareTo(other: String, ignoreCase: Boolean = false): Int
  • KT-19507 Using @JvmName from stdlib-common fails to compile in JS module.
  • KT-19508 Add @JsName to stdlib-common for controlling JS implementation
  • KT-24478 Annotate relevant standard library annotations with @OptionalExpectation
  • KT-25980 JvmSynthetic annotation has no description in the docs

Tools. CLI

  • KT-25196 Optional expected annotation is visible in platforms where it doesn't have actual

Tools. Gradle

  • KT-25025 Inter-project IC for JS in Gradle

Tools. Incremental Compile

  • KT-25455 Gradle IC: when class signature is changed its indirect subclasses in different module are not recompiled
  • KT-26528 ISE “To save disabled cache status [delete] should be called (this behavior is kept for compatibility)” on compiling project with enabled IC in Maven

Tools. JPS

  • KT-25998 Build process starts compiling w/o any changes (on release version)
  • KT-25977 Can not run a Kotlin test
  • KT-26072 MPP compilation issue
  • KT-26113 Build takes around 20 seconds in already fully built IDEA project

Tools. Scripts

  • KT-26142 update maven-central remote repository url

Changelog for previous release 1.2.70 EAP 1

Kotlin 1.3-M2

29 Aug 16:36

Choose a tag to compare

Kotlin 1.3-M2 Pre-release
Pre-release

1.3-M2

Compiler

New Features

  • KT-6592 Support local variable initialization in lambda arguments to some functions
  • KT-19323 Allow generic type parameter to have mixed constraints for @InlineOnly functions
  • KT-24857 Support compatibility wrappers for coroutines in compiler
  • KT-25320 Support limited conversions for constants to simplify interop for Kotlin/Native
  • KT-25372 Support JvmName on annotation property getters
  • KT-25495 Release contract DSL as experimental
  • KT-25557 Metadata that maps coroutine label to the file name and line number
  • KT-25559 Metadata that maps coroutine spilled state to local variables
  • KT-25655 Safe or non-null calls required on x following check(x != null)
  • KT-25972 Support reading binary metadata of the next major release

Performance Improvements

  • KT-24657 Compiler performance issues with big files
  • KT-26243 Avoid redundant "specialized" method for suspend lambdas.

Fixes

  • KT-19628 Unresolved reference not reported on data class constructor @get annotation
  • KT-20830 Nulls can propagate through "enhanced nullability" types on module boundaries
  • KT-21240 Remove suspendCoroutineOrReturn intrinsic from compiler
  • KT-22379 Condition of while-loop with break can produce unsound smartcast
  • KT-23438 Back-end (JVM) Internal error: Failed to generate function suspendCoroutineOrReturn
  • KT-23819 Inline classes: mapping of fully generic classes
  • KT-23857 Annotation with target TYPE is not applicable to TYPE_USE in Java sources
  • KT-24717 Allow number literals to be used as unsigned ones with unsigned expected typed
  • KT-24860 Forbid usage function expression as suspend function expression
  • KT-24872 Do not generate user-defined methods inside box class of inline class
  • KT-24873 Generate equals/hashCode/toString methods for inline classes same as for data classes
  • KT-25246 Incorrect bytecode generated for secondary constructor in inline class + primitive array
  • KT-25278 No smart cast for "returns() implies" contract when default argument is omitted
  • KT-25287 Getter-targeted annotations on annotation constructor parameters are lost
  • KT-25293 “Couldn't transform method node” error on compiling inline class with hashCode() method call when underlying value type is basic (number, char, boolean)
  • KT-25299 NoSuchMethodError Foo$Erased.hashCode(Ljava/lang/Object;) for hashCode(), toString() and equals() methods in inline classes
  • KT-25328 “Couldn't transform method node” error on compiling inline class which is wrapping Unit type
  • KT-25330 CCE “[Ljava.lang.Integer; cannot be cast to Foo” for inline class which is wrapping Array
  • KT-25521 Coroutines state machine in Kotlin 1.3 should not have getLabel/setLabel
  • KT-25558 Stabilize field naming and mangling for suspending lambda classes
  • KT-25580 No warning about experimental API when unsigned types are inferred
  • KT-25599 “Exception during code generation” on compiling code with public constructor of unsigned numbers array
  • KT-25614 Support secondary constructors for inline classes
  • KT-25683 Compiler support for calling experimental suspend functions and function with experimental suspend function type as parameter
  • KT-25688 Add $continuation to LVT
  • KT-25750 CCE “Foo cannot be cast to java.lang.String” with inline class
  • KT-25760 Inline data class throws java.lang.VerifyError when trying toString() it
  • KT-25794 Incorrect code generated for accessing elements of Array where C is inline class
  • KT-25824 Move SuspendFunctionN fictitious interfaces to kotlin.coroutines package
  • KT-25825 Allow to distinguish instances of function types from instances of suspend function types via kotlin.coroutines.jvm.internal.SuspendFunction marker interface
  • KT-25912 Calling groupingBy+reduce from suspend function causes IncompatibleClassChangeError
  • KT-25914 '==' for inline class with custom 'equals' uses underlying primitive type comparison instead
  • KT-25973 Report metadata version mismatch upon discovering a .kotlin_module file in the dependencies with an incompatible metadata version
  • KT-25981 Incorrect code generated for unboxed to boxed inline class equality
  • KT-25983 Inline class equality uses IEEE 754 instead of total order
  • KT-26029 Prohibit delegated properties inside inline classes
  • KT-26030 Prohibit implementation by delegation for inline classes
  • KT-26052 Inline Classes: IllegalArgumentException when underlying type is non-null but declared type is nullable
  • KT-26101 Prohibit inline classes with recursive underlying types
  • KT-26103 Inline class with type parameters is inconsistently mapped to JVM type if underlying type is a primitive
  • KT-26120 Inline Classes: Class inheritance is allowed but fails when referencing a superclass member

IDE

  • KT-25316 PARTIAL resolve mode doesn't work when effects system is enabled
  • KT-25611 With Language / API version = "Latest stable" installing 1.3-M1 plugin upgrades actual values to 1.3
  • KT-25681 Remove "Coroutines (experimental)" settings from IDE and do not pass -Xcoroutines to JPS compiler (since 1.3)
  • KT-25714 Kotlin plugin updater suggests plugins incompatible with current Studio build platform
  • KT-26239 New MPP template: add kotlin-test libraries to the modules dependencies by default
  • KT-26290 Gradle Import: When all modules have the same language/API version use it for project-level settings as well

IDE. Completion

  • KT-25275 Code completion does not take into account smart casts gotten from "returns implies" contract

IDE. Inspections and Intentions

  • KT-22330 "Add remaining branch" quickfix doesn't properly import enum class
  • KT-22354 "Add remaining branches with import" quick fix causes KNPE at ImportAllMembersIntention$Companion.importReceiverMembers()
  • KT-26158 KNPE in "Create local variable"

IDE. Multiplatform

  • KT-26217 "org.jetbrains.kotlin.resolve.MultiTargetPlatform$Common cannot be cast to org.jetbrains.kotlin.resolve.MultiTargetPlatform$Specific" on splitted actuals

IDE. Script

  • KT-25814 IDE scripting console -> kotlin (JSR-223) - compilation errors - unresolved IDEA classes
  • KT-25822 jvmTarget from the script compiler options is ignored in the IDE

JavaScript

  • KT-22053 JS: Secondary constructor of Throwable inheritor doesn't call to primary one
  • KT-25014 Support 'when' with subject variable in JS back-end
  • KT-26064 JS inliner...
Read more

Kotlin 1.2.61

20 Aug 15:23

Choose a tag to compare

IDE

  • KT-25622 IDE support for RecentlyNullable/RecentlyNonNull
  • KT-26036 Kotlin 1.2.60 LightAnnotations and Lombok

IDE. Gradle

  • KT-20363 No "Run" icon on the left for tests in common part of a multi-platform project

Tools. Android Extensions

  • KT-25839 Parcelize generates infinite recursive loop

Tools. JPS

  • KT-26095 Kotlin facet UI, JS: "Enable incremental compilation (experimental)" should be visible only in project setting

Tools. kapt

  • KT-24714 java.lang.IllegalStateException: The provided plugin org.jetbrains.kotlin.kapt3.Kapt3ComponentRegistrar is not compatible with this version of compiler

1.2.70 EAP 1

08 Aug 11:55
@4u7 4u7

Choose a tag to compare

1.2.70 EAP 1 Pre-release
Pre-release

Compiler

  • KT-13860 Avoid creating KtImportDirective PSI elements for default imports in LazyImportScope
  • KT-22201 Generate nullability annotations for data class toString and equals methods.
  • KT-23870 SAM adapter method returns null-values for "genericParameterTypes"
  • KT-24597 IDE doesn't report missing constructor on inheritance of an expected class in common module
  • KT-25120 RequireKotlin on nested class and its members is not loaded correctly
  • KT-25193 Names of parameters from Java interface methods implemented by delegation are lost
  • KT-25405 Mismatching descriptor type parameters on inner types
  • KT-25604 Disable callable references to exprerimental suspend functions
  • KT-25665 Add a warning for annotations which target non-existent accessors
  • KT-25894 Do not generate body for functions from Any in light class builder mode

IDE

  • KT-18301 kotlin needs crazy amount of memory
  • KT-23668 Methods with internal visibility have different mangling names in IDE and in compiler
  • KT-24892 please remove usages of com.intellij.util.containers.ConcurrentFactoryMap#ConcurrentFactoryMap deprecated long ago
  • KT-25144 Quick fix “Change signature” changes class of argument when applied for descendant classes with enabled -Xnew-inference option
  • KT-25356 Update Gradle Kotlin-DSL icon according to new IDEA 2018.2 icons style

IDE. Debugger

  • KT-25147 Conditional breakpoints doesn't work in common code of MPP
  • KT-25152 MPP debug doesn't navigate to common code if there are same named files in common and platform parts

IDE. Inspections and Intentions

New Features

  • KT-6633 Inspection to detect unnecessary "with" calls
  • KT-25146 Add quick-fix for default parameter value removal

Fixes

  • KT-11154 Spell checking inspection is not suppressable
  • KT-18681 "Replace 'if' with 'when'" generates unnecessary else block
  • KT-24001 "Suspicious combination of == and ===" false positive
  • KT-24385 Convert lambda to reference refactor produces red code with companion object
  • KT-24694 Move lambda out of parentheses should not be applied for multiple functional parameters
  • KT-25089 False-positive "Call chain on collection type can be simplified" for map and joinToString on a HashMap
  • KT-25169 Impossible to suppress UAST/JVM inspections
  • KT-25321 Safe delete of a class property implementing constructor parameter at the platform side doesn't remove all the related declarations
  • KT-25539 Make class open quick fix doesn't update all the related implementations of a multiplatform class
  • KT-25608 Confusing "Redundant override" inspection message

IDE. KDoc

IDE. Libraries

  • KT-25129 Idea freezes when Kotlin plugin tries to determine if jar is js lib in jvm module

IDE. Navigation

  • KT-25317 Go to actual declaration keyboard shortcut doesn't work for expect object, showing "No implementations found" message
  • KT-25492 Find usages: keep Expected functions option state while searching for usages of a regular function

IDE. Project View

  • KT-22823 Text pasted into package is parsed as Kotlin before Java

IDE. Refactorings

  • KT-22072 "Convert MutableMap.put to assignment" should not be applicable when put is used as expression
  • KT-23590 Incorrect conflict warning "Internal function will not be accessible" when moving class from jvm to common module
  • KT-23594 Incorrect conflict warning about IllegalStateException when moving class from jvm to common module
  • KT-23772 MPP: Refactor / Rename class does not update name of file containing related expect/actual class
  • KT-23914 Safe search false positives during moves between common and actual modules
  • KT-25326 Refactor/Safe Delete doesn't report actual object usages
  • KT-25438 Refactor/Safe delete of a multiplatform companion object: usage is not reported

IDE. Script

  • KT-25814 IDE scripting console -> kotlin (JSR-223) - compilation errors - unresolved IDEA classes
  • KT-25822 jvmTarget from the script compiler options is ignored in the IDE

IDE. Ultimate

  • KT-25595 Rename Kotlin-specific "Protractor" run configuration to distinguish it from the one provided by NodeJS plugin

Reflection

  • KT-25541 Incorrect parameter names in reflection for inner class constructor from Java class compiled with "-parameters"

Tools. CLI

  • KT-21910 Add -Xfriend-paths compiler argument to support internal visibility checks in production/test sources from external build systems
  • KT-25554 Do not report warnings when -XXLanguage was used to turn on deprecation

Tools. JPS

  • KT-25540 JPS JS IC does not recompile usages from other modules when package is different

Tools. kapt

  • KT-25396 KAPT Error: Unknown option: infoAsWarnings

Kotlin 1.2.60

01 Aug 17:03

Choose a tag to compare

1.2.60

Native compiler binaries

We have now not only the JVM version of Kotlin compiler but also one native system dependent version for every major platform (Linux, macOS, and Windows). Those binaries are built with Excelsior JET AOT compiler (https://www.excelsiorjet.com/) and have faster startup time which is suitable for building small files or scripts.

How to use it:

kotlinc [Runtime options and properties] [-args Kotlin compiler arguments]
Please notice that you need to prepend kotlin compiler arguments with -args unlike in JVM version.

Some examples:

kotlinc -args -kotlin-home <path>
kotlinc -Xmx512m -args hello.kt -d hello.jar
kotlinc -args -script list_folders.kts <script arguments>

Compiler

  • KT-13762 Prohibit annotations with target 'EXPRESSION' and retention 'BINARY' or 'RUNTIME'
  • KT-18882 Allow code to have platform specific annotations when compiled for different platforms
  • KT-20356 Internal compiler error - This method shouldn't be invoked for INVISIBLE_FAKE visibility
  • KT-22517 Deprecate smartcasts for local delegated properties
  • KT-23153 Compiler allows to set non constant value as annotation parameter
  • KT-23413 IndexOutOfBoundsException on local delegated properties from provideDelegate if there's at least one non-local delegated property
  • KT-23742 Optimise inline class redundant boxing on return from inlined lambda
  • KT-24513 High memory usage in Kotlin and 2018.1
  • KT-24617 Optional expected annotation is unresolved in a dependent platform module
  • KT-24679 KotlinUCallExpression doesn't resolve callee if it is an inline method
  • KT-24808 NI: nested withContext call is reported with Suspension functions can be called only within coroutine body error
  • KT-24825 NoClassDefFoundError on SAM adapter in a nested call in inlined lambda since 1.2.40
  • KT-24859 Disallow calls of functions annotated with receiver annotated with @RestrictsSuspension in foreign suspension context
  • KT-24911 Kotlin 1.2.50: UI for @RecentlyNonNull looks strange in the editor
  • KT-25333 Restrict visibility of Java static members from supertypes of companion object

IDE

Performance Improvements

  • KT-20924 Slow KtLightAbstractAnnotation.getClsDelegate() lightAnnotations.kt
  • KT-23844 Kotlin property accessor searcher consumes CPU when invoked on a scope consisting only of Java files

Fixes

  • KT-4311 "Override members" works wrong when function is extension
  • KT-13948 IDE plugins: improve description
  • KT-15300 "INFO - project.TargetPlatformDetector - Using default platform" flood in log
  • KT-17350 Implement members from interface fails when one of the generic types is unresolved
  • KT-17668 Edit Configuration dialog doesn't have a button for choosing the "Main class" field
  • KT-19102 Wrong equals() and hashCode() code generated for arrays of arrays
  • KT-20056 TCE on creating object of an anonymous class in Kotlin script
  • KT-21863 Imported typealias to object declared as "Unused import directive" when only referring to methods
  • KT-23272 Git commit not working
  • KT-23407 Pasting callable reference from different package suggests imports, but inserts incompilable FQN
  • KT-23456 UAST: Enum constant constructor call arguments missing from Kotlin enums
  • KT-23942 Fix building light-classes for MPP project containing multi-file facades
  • KT-24072 Kotlin SDK appears as many times as there are modules in the project
  • KT-24412 Kotlin create project wizard: Kotlin/JS no SDK
  • KT-24933 please remove usages of com.intellij.psi.search.searches.DirectClassInheritorsSearch#search(com.intellij.psi.PsiClass, com.intellij.psi.search.SearchScope, boolean, boolean) deprecated long ago
  • KT-24943 Project leak via LibraryEffectiveKindProviderImpl
  • KT-24979 IndexNotReadyException in KtLightClassForSourceDeclaration#isInheritor
  • KT-24958 Escaping goes insane when editing interpolated string in injected fragment editor
  • KT-25024 Wrong resolve scope while resolving java.lang.String PsiClassReferenceType
  • KT-25092 SourcePsi should be physical leaf element but got OPERATION_REFERENCE
  • KT-25242 'Resolved to error element' highlighting is confusingly similar to an active live template
  • KT-25249 Uast operates "Unit" type instead of "void"
  • KT-25255 Preferences | Languages & Frameworks | Kotlin Updates: show currently installed version
  • KT-25297 Inconsistency in KotlinULambdaExpression and KotlinLocalFunctionULambdaExpression
  • KT-25414 Support checking eap-1.3 channel for updates
  • KT-25524 UAST: proper resolve for function variable call
  • KT-25546 Create popup in 1.2.x plugin if user upgrade version in gradle or maven to kotlin 1.3

IDE. Android

  • KT-17946 Android Studio: remove Gradle configurator on configuring Kotlin
  • KT-23040 Wrong run configuration classpath in a mixed Java/Android project
  • KT-24321 Actual implementations from Android platform module are wrongly reported with no corresponding expected declaration in IDE
  • KT-25018 Exception Dependencies for org.jetbrains.kotlin.resolve.calls.* cannot be satisfied on a simple project in AS 3.2 Canary

IDE. Code Style, Formatting

  • KT-14066 Comments on when branches are misplaced
  • KT-25008 Formatter: Use single indent for multiline elvis operator

IDE. Completion

  • KT-23627 Autocompletion inserts FQN of stdlib functions inside of scoping lambda called on explicit this
  • KT-25239 Add postfix template for listOf/setOf/etc

IDE. Debugger

  • KT-23162 Evaluate expression in multiplatform common test fails with JvmName missing when run in JVM
  • KT-24903 Descriptors leak from KotlinMethodSmartStepTarget

IDE. Decompiler

  • KT-23981 Kotlin bytecode decompiler works in AWT thread

IDE. Gradle

  • KT-24614 Gradle can't get published versions until commenting repositories in settings.gradle

IDE. Gradle. Script

  • KT-24588 Multiple Gradle Kotlin DSL script files dependencies lifecycle is flawed

IDE. Hints

  • KT-22432 Type hints: Don't include ".Companion" in the names of types defined inside companion object
  • KT-22653 Lambda return hint is duplicated for increment/decrement expressions
  • KT-24828 Double return hints on labeled expressions

IDE. Inspections and Intentions

New Features

  • KT-7710 Intention to convert lambda to anonymous function
  • KT-11850 Add nested lambdas with implicit parameters warning
  • KT-13688 Add 'Change to val' quickfix for delegates without setValue
  • KT-13782 Intention (and may be inspection) to convert toString() call ...
Read more

Kotlin 1.2.60 RC2

31 Jul 09:54

Choose a tag to compare

Kotlin 1.2.60 RC2 Pre-release
Pre-release

Compiler

  • KT-22517 Deprecate smartcasts for local delegated properties
  • KT-24911 Kotlin 1.2.50: UI for @RecentlyNonNull looks strange in the editor
  • KT-25333 Restrict visibility of Java static members from supertypes of companion object

IDE

  • KT-15300 "INFO - project.TargetPlatformDetector - Using default platform" flood in log
  • KT-24979 IndexNotReadyException in KtLightClassForSourceDeclaration#isInheritor
  • KT-25242 'Resolved to error element' highlighting is confusingly similar to an active live template
  • KT-25414 Support checking eap-1.3 channel for updates
  • KT-25524 UAST: proper resolve for function variable call

IDE. Android

  • KT-17946 Android Studio: remove Gradle configurator on configuring Kotlin

IDE. Refactorings

  • KT-23983 Extract function: Reified type parameters are not extracted properly

IDE. Script

Language design

  • KT-13762 Prohibit annotations with target 'EXPRESSION' and retention 'BINARY' or 'RUNTIME'

Libraries

  • KT-25351 TestNGAsserter needs to swap expected/actual

Tools. Android Extensions

  • KT-22576 Parcelable: Allow Parcelize to work with object and enum types
  • KT-24459 @IgnoredOnParcel annotation doesn't work for @parcelize
  • KT-24720 Parcelable: java.lang.LinkageError

Tools. Compiler Plugins

Tools. JPS

  • KT-22611 Support compiling scripts in JPS

Tools. kapt

  • KT-24313 Unable to use KAPT when dependency to it is added to buildSrc
  • KT-24449 'kapt.kotlin.generated' is not marked as source root in Android Studio 3.1 and 3.2
  • KT-24919 Caused by: org.gradle.api.InvalidUserDataException: 'projectDir' is not a file
  • KT-24963 gradle kapt plugin's assumption on build dir causing duplicate class error
  • KT-24985 Kapt: Allow to disable info->warning mapping in logger
  • KT-25071 kapt sometimes emits java stubs with imports that should be static imports

Kotlin 1.3-M1

26 Jul 17:14

Choose a tag to compare

Kotlin 1.3-M1 Pre-release
Pre-release

1.3-M1

Language design

  • KEEP-104 Inline classes
  • KEEP-135 Unsigned integer types
  • KEEP-95 Experimental API annotations
  • KT-13762 Prohibit annotations with target 'EXPRESSION' and retention 'BINARY' or 'RUNTIME'
  • KT-16681 kotlin allows mutating the field of read-only property
  • KT-21515 Restrict visibility of classifiers, nested in companion objects

Compiler

  • KT-24848 Refine loading Java overrides of Kotlin suspend functions
  • KT-9580 Report an error if 'setparam' target does not make sense for a parameter declaration
  • KT-16310 Nested classes inside enum entries capturing outer members
  • KT-17981 Type parameter for catch parameter possible when exception is nested in generic, but fails in runtime
  • KT-21354 Inconsistent behavior of 'for-in-range' loop if range is an array variable modified in loop body
  • KT-25333 Restrict visibility of Java static members from supertypes of companion object
  • KT-25623 Do not load experimental coroutines as non-suspend function with additional Continuation parameter

Backend. JVM

  • KT-6301 Support JvmStatic annotation on interface companion object members
  • KT-25508 Inject probeCoroutineSuspended to coroutines body
  • KT-18987 Unroll recursion in CoroutineImpl.resume
  • KT-11567 Companion object INSTANCE field more visible than companion object class itself
  • KT-13764 Support lambdas and function references for arities bigger than 22
  • KT-16615 Do not generate ConstantValue attribute for non-const vals
  • KT-25193 Names of parameters from Java interface methods implemented by delegation are lost
  • KT-25324 VerifyError “Bad type on operand stack” on running code with call of array iterator for array of inline classes
  • KT-25325 CCE “Foo cannot be cast to java.lang.String” for iterating over the list of inline classes
  • KT-25626 Inline class values inside string literals don't use their own toString implementation

Backend. JVM. Coroutines

  • KT-20219 Inline suspend function can't be used as non-inline function
  • KT-24863 Support new Continuation API in JVM BE
  • KT-24864 Create new CoroutineImpl and other internal coroutines interfaces

Backend. JVM. Inline

  • KT-25511 Inline classes fail with cross-inline functions

Binary Metadata

  • KT-24617 Optional expected annotation is unresolved in a dependent platform module
  • KT-25120 RequireKotlin on nested class and its members is not loaded correctly
  • KT-25273 java.lang.UnsupportedOperationException from incremental JS compilation
  • KT-25310 Write isUnsigned flag into metadata for unsigned types

Frontend

  • KT-15807 @JvmField is not applicable to interface companion properties
  • KT-16962 Annotation classes cannot contain types or static fields because they cannot have a body
  • KT-23153 Compiler allows to set non constant value as annotation parameter
  • KT-23362 Move coroutines to package kolin.coroutines for 1.3
  • KT-24861 Fix loading kotlin.suspend compiled with LV=1.2 when release coroutines package is used
  • KT-25241 Kotlin compiler doesn't warn about usage of lambda/reference with more than 22 parameters
  • KT-25600 NSEE “Collection is empty” after trying to call default constructor of unsigned number class

Frontend. Data-flow analysis

  • KT-22517 Deprecate smartcasts for local delegated properties

Frontend. Declarations

  • KT-19618 Data class copy() call with optional parameters leads to broken code when the class implements an interface with copy()
  • KT-23277 Prohibit local annotation classes
  • KT-24197 Make 'mod' operator error in 1.3

Frontend. Lexer & Parser

  • KT-24663 Add 'UL' suffix to represent number literals of unsigned Long type

Frontend. Resolution and Inference

  • KT-16908 Support callable references to suspending functions
  • KT-20588 Report error on single element assignment to varargs in named form in annotations
  • KT-20589 Report error on single element assignment to varargs in named form in functions
  • KT-24859 Disallow calls of functions annotated with receiver annotated with @RestrictsSuspension in foreign suspension context

IDE

  • KT-25466 Make coroutines resolve to be independent of language and API versions set in Kotlin Compiler settings

IDE. Inspections and Intentions

  • KT-24243 Support quick fix to enable usages of Experimental/UseExperimental
  • KT-11154 Spell checking inspection is not suppressable
  • KT-25169 Impossible to suppress UAST/JVM inspections

IDE. Libraries

  • KT-25129 Idea freezes when Kotlin plugin tries to determine if jar is js lib in jvm module

Libraries

New Features

  • KEEP-131, KT-17261 Add random number generator to stdlib and related collection extension functions
  • KT-7922 Companion object for Boolean
  • KT-8247 Byte size for primitives
  • KT-16552 Add Sequence.orEmpty()
  • KT-18559 Make SafeContinuation and context impl classes serializable
  • KT-18910 StringBuilder#setLength(0) in non-JVM Kotlin
  • KT-21763 Provide Char MIN_VALUE/MAX_VALUE constants
  • KT-23279 isNullOrEmpty() for collections, maps, and arrays
  • KT-23602 Make kotlin.Metadata public

Fixes

  • KT-23564 KotlinJS: Math is deprecated yet random is not a global function
  • KT-24856 Create compatibility wrappers for migration from 1.2 to 1.3 coroutines
  • KT-24862 Create new Continuation API for coroutines

Reflection

  • KT-25541 Incorrect parameter names in reflection for inner class constructor from Java class compiled with "-parameters"

Kotlin 1.2.60 RC

10 Jul 16:01

Choose a tag to compare

Kotlin 1.2.60 RC Pre-release
Pre-release

Compiler

  • KT-18882 Allow code to have platform specific annotations when compiled for different platforms
  • KT-24617 Optional expected annotation is unresolved in a dependent platform module
  • KT-24825 NoClassDefFoundError on SAM adapter in a nested call in inlined lambda since 1.2.40

IDE

  • KT-25249 Uast operates "Unit" type instead of "void"
  • KT-25297 Inconsistency in KotlinULambdaExpression and KotlinLocalFunctionULambdaExpression

IDE. Completion

  • KT-23627 Autocompletion inserts FQN of stdlib functions inside of scoping lambda called on explicit this
  • KT-25239 Add postfix template for listOf/setOf/etc

IDE. Gradle. Script

  • KT-24588 Multiple Gradle Kotlin DSL script files dependencies lifecycle is flawed

IDE. Inspections and Intentions

  • KT-25238 Add quickfix wrapping expression into listOf/setOf/etc in case of type mismatch

Libraries

  • KT-24204 Empty progression last value overflows resulting in progression being non-empty

Tools. Gradle

  • KT-24946 ISE: "The provided plugin org.jetbrains.kotlin.scripting.compiler.plugin.ScriptingCompilerConfigurationComponentRegistrar is not compatible with this version of compiler" when build simple Gradle with Zulu JDK

Tools. Incremental Compile

  • KT-25051 Change in "kotlin-android" project w/o package parts causes non-incremental compilation of dependent modules