Permalink
Find file Copy path
6906 lines (5538 sloc) 626 KB

CHANGELOG

1.3.11

Compiler

  • KT-28097 AbstractMethodError for @JvmSuppressWildcards annotation used with coroutines
  • KT-28225 Report a warning when comparing incompatible enums

IDE. Gradle

  • KT-28389 MPP IDE import does not recognize a dependency from a subproject to the root project

IDE. Inspections and Intentions

  • KT-28445 "Redundant async" inspection does not work with release coroutines

IDE. Multiplatform

  • KT-27632 MPP IDE commonMain cannot see other commonMain types transitively which are exposed through a middle multiplatform module

JavaScript

  • KT-27946 Late initialization based on contracts breaks Kotlin/JS in 1.3.0

Tools. Gradle

  • KT-27500 MPP: Native: .module dependency is reported as error in the IDE after import

1.3.10

Compiler

  • KT-27758 Kotlin 1.3 breaks compilation of calling of function named 'contract' with block as a last parameter
  • KT-27895 Kotlin 1.3.0 broken runtime annotation issue

IDE

  • KT-27230 Freeze on paste
  • KT-27907 Exception on processing auto-generated classes from AS

IDE. Debugger

  • KT-27540 2018.3 and 2019.1 Debugger: Evaluating anything fails with KNPE in LabelNormalizationMethodTransformer
  • KT-27833 Evaluate exception in 183/191 with asm-7.0-beta1/'asm-7.0'
  • KT-27965 Sequence debugger does not work in Android Studio
  • KT-27980 Kotlin sequence debugger throws IDE exception in IDEA 183

IDE. Gradle

  • KT-27265 Unresolved reference in IDE on calling JVM source set members of a multiplatform project with Android target from a plain Kotlin/JVM module
  • KT-27849 IntelliJ: Wrong scope of JVM platform MPP dependency

IDE. Inspections and Intentions

  • KT-26481 Flaky false positive "Receiver parameter is never used" for local extension function
  • KT-27357 Function with inline class type value parameters is marked as unused by IDE
  • KT-27434 False positive "Unused symbol" inspection for functions and secondary constructors of inline classes
  • KT-27945 Quick-fix whitespace bug in KtPrimaryConstructor.addAnnotationEntry()

IDE. Scratch

  • KT-27746 Scratch: "Cannot pop operand off an empty stack" in a new scratch file

IDE. Tests Support

  • KT-27371 Common tests can not be launched from gutter in MPP Android/iOS project

Reflection

  • KT-27878 Spring: "AssertionError: Non-primitive type name passed: void"

Tools. Gradle

  • KT-27160 Kotlin Gradle plugin 1.3 resolves script configurations during project evaluation
  • KT-27803 CInterop input configuration has 'java-api' as a Usage attribute value in new MPP
  • KT-27984 Kotlin Gradle Plugin: Circular dependency

Tools. JPS

  • KT-26489 JPS: support -Xcommon-sources for multiplatform projects (JVM)
  • KT-27037 Incremental compilation failed after update to 1.3.0-rc-60
  • KT-27792 Incremental compilation failed with NullPointerException in KotlinCompileContext.markChunkForRebuildBeforeBuild

Tools. kapt

  • KT-27126 kapt: class implementing List generates bad stub

1.3.0

IDE

  • KT-25429 Replace update channel in IDE plugin
  • KT-27793 kotlinx.android.synthetic is unresolved on project reopening

IDE. Inspections and Intentions

  • KT-27619 Inspection "Invalid property key" should check whether reference is soft or not

1.3-RC4

Compiler

Fixes

  • KT-26858 Inline class access to private companion object value fails with NSME
  • KT-27030 Non-capturing lambda in inline class members fails with internal error (NPE in genClosure)
  • KT-27031 Inline extension lambda in inline class fun fails with internal error (wrong bytecode generated)
  • KT-27033 Anonymous object in inline class fun fails with internal error (NPE in generateObjectLiteral/.../writeOuterClassAndEnclosingMethod)
  • KT-27096 AnalyzerException: Error at instruction 71: Expected I, but found . when function takes unsigned type with default value and returns nullable inline class
  • KT-27130 Suspension point is inside a critical section regression
  • KT-27132 CCE when inline class is boxed
  • KT-27258 Report diagnostic for suspension point inside critical section for crossinline suspend lambdas
  • KT-27393 Incorrect inline class type coercion in '==' with generic call
  • KT-27484 Suspension points in synchronized blocks checker crashes
  • KT-27502 Boxed inline class backed by Any is not unboxed before method invocation
  • KT-27526 Functional type with inline class argument and suspend modified expects unboxed value while it is boxed
  • KT-27615 Double wrap when inline class is printing if it was obtained from list/map
  • KT-27620 Report error when using value of kotlin.Result type as an extension receiver with safe call

IDE

  • KT-27298 Deadlock on project open
  • KT-27329 Migration doesn't work for kts projects when versions are stored in kt files inside buildSrc directory
  • KT-27355 Assertion error from light classes (expected callable member was null) for type alias in JvmMultifileClass annotated file
  • KT-27456 New Project wizard: Kotlin (Multiplatform Library): consider generating source files with different names to work around KT-21186
  • KT-27473 "Gradle sync failed: Already disposed: Module: 'moduleName-app_commonMain'" on reimport of a multiplatform project with Android target between different IDEs
  • KT-27485 Gradle import failed with "Already disposed" error on reopening of a multiplatform project with Android target
  • KT-27572 ISE: "Could not generate LightClass for entry declared in " at CompilationErrorHandler.lambda$static$0()

IDE. Android

  • KT-26975 CNFDE KotlinAndroidGradleOrderEnumerationHandler$FactoryImpl in AS 3.3 with Kotlin 1.3.0-rc-51
  • KT-27451 main target platform selection is not working in a multiplatform project with Android and JVM targets in Android Studio

IDE. Gradle

  • KT-27365 Dependencies between Java project and MPP one are not respected by import
  • KT-27643 First import of Android project miss skips some dependencies in IDEA 183

IDE. Multiplatform

  • KT-27356 Use kotlin-stdlib instead of kotlin-stdlib-jdk8 in Android-related MPP templates

IDE. Scratch

  • KT-24180 Add key shortcut and action for running a kotlin scratch file (green arrow button in the editor tool-buttons)

JavaScript

  • KT-26320 JS: forEach + firstOrNull + when combination does not compile correctly
  • KT-26787 Incorrect JS code translation: when statement inside for loop breaks out of the loop

Libraries

  • KT-27508 Rename Random companion object to Default

Tools. Gradle

  • KT-26758 Unify Gradle DSL for compiler flags in new multiplatform model
  • KT-26840 Support -Xuse-experimental in the new MPP language settings DSL
  • KT-27278 New MPP plugin is binary-incompatible with Gradle 5.0
  • KT-27499 In new MPP, support compiler plugins (subplugins) options import into the IDE for each source set

Tools. JPS

  • KT-27044 JPS rebuilds twice when dependency is updated

Tools. kapt

  • KT-27119 kapt: val without explicit type that is assigned an object expression implementing a generic interface breaks compilation

1.3-RC3

Compiler

  • KT-26300 Smartcasts don't work if pass same fields of instances of the same class in contract function with conjunction not-null condition
  • KT-27221 Incorrect smart cast for sealed classes with a multilevel hierarchy

IDE

  • KT-27163 Replace coroutine migration dialog with notification
  • KT-27200 New MPP wizard: mobile library
  • KT-27201 MPP library wizards: provide maven publishing
  • KT-27214 Android test source directories are not recognised in IDE
  • KT-27351 Better fix for coroutines outdated versions in Gradle and Maven

IDE. Android

  • KT-27331 Missing dependencies in Android project depending on MPP project

IDE. Inspections and Intentions

  • KT-27164 Create a quick fix for replacing obsolete coroutines in the whole project

IDE. Multiplatform

  • KT-27029 Multiplatform project is unloaded if Gradle refresh/reimport is failed

Libraries

  • KT-22869 Improve docs of assertFailsWith function

Tools. CLI

  • KT-27218 From @ not all whitespace characters are parsed correctly

Tools. Compiler Plugins

  • KT-27166 Disable kotlinx.serialization plugin in IDE by default

1.3-RC2

Android

  • KT-27006 Android extensions are not recognised by IDE in multiplatform projects
  • KT-27008 Compiler plugins are not working in multiplatform projects with Android target

Compiler

  • KT-24415 Remove bridge flag from default methods
  • KT-24510 Coroutines make Android's D8 angry
  • KT-25545 Import statement of @Experimental element causes compiler warning/error, but annotation can't be used to avoid it
  • KT-26382 Wrong smartcast if used safe call + returnsNull effect
  • KT-26640 Check inference behaviour for coroutines that it's possible to improve it in compatible way
  • KT-26804 Make sure @PublishedAPI is retained in binary representation of a primary constructor of an inline class
  • KT-27079 Allow using extensions without opt-in in builder-inference if they add only trivial constraints
  • KT-27084 smart cast to non-nullable regression from 1.2.70 to 1.3.0-rc-57
  • KT-27117 IllegalAccessError when using private Companion field inside inline lambda
  • KT-27121 Illegal field modifiers in class for a field of an interface companion
  • KT-27161 Getting "Backend Internal error: Descriptor can be left only if it is last" using new when syntax

IDE

New Features

  • KT-26313 Support ResolveScopeEnlarger in Kotlin IDE
  • KT-26786 MPP builders: create not only build.gradle but some example files also

Fixes

  • KT-13948 IDE plugins: improve description
  • KT-14981 IDE should accept only its variant of plugin, as possible
  • KT-23864 Copyright message is duplicated in kotlin file in root package after updating copyright
  • KT-24907 please remove usages of com.intellij.openapi.vfs.StandardFileSystems#getJarRootForLocalFile deprecated long ago
  • KT-25449 Mark classes loaded by custom class loader with @DynamicallyLoaded annotation for the sake of better static analysis
  • KT-25463 API version in Kotlin facets isn't automatically set to 1.3 when importing a project in Gradle
  • KT-25952 New Project Wizard: generate MPP in a new way
  • KT-26501 Fix "IDEA internal actions" group text to "Kotlin internal actions"
  • KT-26695 IDEA takes 1.3-M2-release plugin as more recent than any 1.3.0-dev-nnn or 1.3.0-rc-nnn plugin
  • KT-26763 Compiler options are not imported into Kotlin facet for a Native module
  • KT-26774 Create IDE setting for experimental inline classes
  • KT-26889 Don't show migration dialog if no actual migrations are available
  • KT-26933 No jre -> jdk fix in Gradle file if version isn't written explicitly
  • KT-26937 MPP: Gradle import: adding target definition after importing its sourceSet does not correct the module SDK
  • KT-26953 New MPP project wrong formatting
  • KT-27021 Wrong JVM target if no Kotlin facet is specified
  • KT-27100 Version migration dialog is not shown in Studio 3.3
  • KT-27145 Gradle import: JVM modules gets no JDK in dependencies
  • KT-27177 MPP wizards: use Gradle 4.7 only
  • KT-27193 Gradle import: with Kotlin configured Android module gets non-Android JDK

IDE. Code Style, Formatting

  • KT-27027 Formatter puts when subject variable on a new line

IDE. Completion

  • KT-25313 Autocomplete generates incorrect code on fields overriding by expected class

IDE. Hints

  • KT-26057 (arguably) redundant hint shown for enum value when qualified with enum class

IDE. Inspections and Intentions

  • KT-14929 Deprecated ReplaceWith for type aliases
  • KT-25251 Create intention for migration coroutines from experimental to released state
  • KT-26027 False positive from "Nested lambda has shadowed implicit parameter" inspection for SAM conversion
  • KT-26268 Inspection "Nested lambda has shadowed implicit parameter" should only warn if parameter is used
  • KT-26775 Create quick fix that enable or disable experimental inline classes in project
  • KT-26991 ReplaceWith for object doesn't work anymore

IDE. Multiplatform

  • KT-24060 main function in common part of MPP project: allow user to choose between platform modules to run it from
  • KT-26647 Warn user about incompatible/ignored Native targets on Gradle build of a project with the new multiplatform model
  • KT-26690 IDE significantly slows down having Native target in a multiplatform project
  • KT-26872 MPP: JS: Node.js run configuration is created with not existing JavaScript file
  • KT-26942 MPP IDE: JS test configuration removes gutter actions from common module
  • KT-27010 New mpp: missing run gutters in common code when relevant platform roots do not exist
  • KT-27133 IDE requires actual implementations to be also present in test source sets
  • KT-27172 ISE: "The provided plugin org.jetbrains.kotlin.android.synthetic.AndroidComponentRegistrar is not compatible with this version of compiler" on build of a multiplatform project with iOS and Android

IDE. Navigation

  • KT-25055 Android modules are named same as JVM ones in actual gutter tooltip
  • KT-26004 IDE: Unable to navigate to common library declaration from platform code (not necessarily in an MPP project)

IDE. Tests Support

  • KT-23884 Running common module test in IDE results in "no JDK specified" error
  • KT-23911 Cannot jump to source from common test function in Run tool window

Libraries

  • KT-18608 Result type for Kotlin (aka Try monad)
  • KT-26666 Add documentation for contract DSL

Reflection

  • KT-24170 Instance parameter of inherited declaration should have the type of subclass, not the base class

Tools. Compiler Plugins

  • KT-24444 Do not store proxy objects from Gradle importer in the project model

Tools. Gradle

  • KT-25200 Report a warning when building multiplatform code in Gradle
  • KT-26390 Implement source JARs building and publishing in new MPP
  • KT-26771 New Native MPP Gradle plugin creates publications only for host system
  • KT-26834 Gradle compilation of multimodule project fails with Could not resolve all files for configuration ':example-v8:apiDependenciesMetadata'
  • KT-27111 org.jetbrains.kotlin.platform.type is not set for some Gradle configurations in multiplatform plugin
  • KT-27196 Support Kotlin/JS DCE in new MPP

Tools. Scripts

  • KT-26828 main-kts test fails with "Error processing script definition class"
  • KT-27015 Scripting sample from 1.3 RC blogpost does not work
  • KT-27050 1.3-RC Scripting @file:Repository and @file:DependsOn annotations are not repeatable

1.3-RC

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-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 Add an inspection for 'flatMap { it }'
  • KT-26230 Inspection: replace safe cast (as?) with if (instance check + early return)

Fixes

  • KT-13343 Remove explicit type specification breaks code if initializer omits generics
  • KT-19586 Create actual implementation does nothing when platform module has no source directories.
  • KT-22361 Multiplatform: "Generate equals() and hashCode()" intention generates JVM specific code for arrays in common module
  • KT-22552 SimplifiableCallChain should keep formatting and comments
  • KT-24129 Multiplatform quick fix add implementation suggests generated source location
  • KT-24405 False "redundant overriding method" for abstract / default interface method combination
  • KT-24978 Do not highlight foldable if-then for is checks
  • KT-25228 "Create function" from a protected inline method should not produce a private method
  • KT-25525 @Experimental-related quick fixes are not suggested for usages in top-level property
  • KT-25526 @Experimental-related quick fixes are not suggested for usages in type alias
  • KT-25548 @Experimental API usage: "Add annotation" quick fix incorrectly modifies primary constructor
  • KT-25609 "Unused symbol" inspection reports annotation used only in -Xexperimental/-Xuse-experimental settings
  • KT-25711 "Deferred result is never used" inspection: remove experimental package (or whole FQN) from description
  • KT-25712 "Redundant 'async' call" inspection quick fix action label looks too long
  • KT-25883 False "redundant override" reported on boxed parameters
  • KT-25886 False positive "Replace 'if' with elvis operator" for nullable type
  • KT-25968 False positive "Remove redundant backticks" with keyword yield
  • KT-26009 "Convert to 'also'" intention adds an extra it expression
  • KT-26015 Intention to move property to constructor adds @field: qualifier to annotations
  • KT-26179 False negative "Boolean expression that can be simplified" for !true
  • KT-26181 Inspection for unused Deferred result: report for all functions by default
  • KT-26185 False positive "redundant semicolon" with if-else
  • KT-26187 "Cascade if can be replaced with when" loses lambda curly braces
  • KT-26289 Redundant let with call expression: don't report for long call chains
  • KT-26306 "Add annotation target" quick fix adds EXPRESSION annotation, but not SOURCE retention
  • KT-26343 "Replace 'if' expression with elvis expression" produces wrong code in extension function with not null type parameter
  • KT-26353 "Make variable immutable" is a bad name for a quickfix that changes 'var' to 'val'
  • KT-26472 "Maven dependency is incompatible with Kotlin 1.3+ and should be updated" inspection is not included into Kotlin Migration
  • KT-26492 "Make private" on annotated annotation produces nasty new line
  • KT-26599 "Foldable if-then" inspection marks if statements that cannot be folded using ?. operator
  • KT-26674 Move lambda out of parentheses is not proposed for suspend lambda
  • KT-26676 ReplaceWith always puts suspend lambda in parentheses
  • KT-26810 "Incompatible kotlinx.coroutines dependency" inspections report library built for 1.3-RC with 1.3-RC plugin

IDE. Multiplatform

  • KT-20368 Unresolved reference to declarations from kotlin.reflect in common code in multi-platform project: no "Add import" quick-fix
  • KT-26356 New MPP doesn't work with Android projects
  • KT-26369 Library dependencies don't transitively pass for custom source sets at new MPP import to IDE
  • KT-26414 Remove old multiplatform modules templates from New Project/New Module wizard
  • KT-26517 Create actual ... generates default constructor parameter values
  • KT-26585 Stdlib annotations annotated with @OptionalExpectation are reported with false positive error in common module

IDE. Navigation

  • KT-18490 Multiplatform project: Set text cursor correctly to file with header on navigation from impl side

IDE. Refactorings

  • KT-17124 Change signature refactoring dialog unescapes escaped parameter names
  • KT-25454 Extract function: make default visibility private
  • KT-26533 Move refactoring on interface shows it as "abstract interface" in the dialog

IDE. Tests Support

  • KT-26793 Left gutter run icon does not appear for JS tests in old MPP

IDE. Ultimate

  • KT-19309 Spring JPA Repository IntelliJ tooling with Kotlin

JavaScript

  • KT-26466 Uncaught ReferenceError: println is not defined
  • KT-26572 Support suspend fun main in JS
  • KT-26628 Support main entry-point without arguments in JS

Libraries

New Features

  • KT-25039 Any?.hashCode() extension
  • KT-26359 Use JvmName on parameters of kotlin.Metadata to improve the public API
  • KT-26398 Coroutine context shall perform structural equality comparison on keys
  • KT-26598 Introduce ConcurrentModificationException actual typealias in the JVM library

Performance Improvements

  • KT-18483 Check to contains value in range can be dramatically slow

Fixes

  • KT-17716 JS: Some kotlin.js.Math methods break Integer type safety
  • KT-21703 Review deprecations in stdlib for 1.3
  • KT-21784 Deprecate and remove org.jetbrains.annotations from kotlin-stdlib in compiler distribution
  • KT-22423 Deprecate mixed integer/floating point overloads of ClosedRange.contains operator
  • KT-25217 Raise deprecation level for mod operators to ERROR
  • KT-25935 Move kotlin.reflect interfaces to kotlin-stdlib-common
  • KT-26358 Rebuild anko for new coroutines API
  • KT-26388 Specialize contentDeepEquals/HashCode/ToString for arrays of unsigned types
  • KT-26523 EXACTLY_ONCE contract in runCatching doesn't consider lambda exceptions are caught
  • KT-26591 Add primitive boxing functions to stdlib
  • KT-26594 Change signed-to-unsigned widening conversions to sign extending
  • KT-26595 Deprecate common 'synchronized(Any) { }' function
  • KT-26596 Rename Random.nextInt/Long/Double parameters
  • KT-26678 Rename buildSequence/buildIterator to sequence/iterator
  • KT-26929 Kotlin Reflect and Proguard: can’t find referenced class kotlin.annotations.jvm.ReadOnly/Mutable

Reflection

  • KT-25499 Use-site targeted annotations on property accessors are not visible in Kotlin reflection if there's also an annotation on the property
  • KT-25500 Annotations on parameter setter are not visible through reflection
  • KT-25664 Inline classes don't work properly with reflection
  • KT-26293 Incorrect javaType for suspend function's returnType

Tools. CLI

  • KT-24613 Support argfiles in kotlinc with "@argfile"
  • KT-25862 Release '-Xprogressive' as '-progressive'
  • KT-26122 Support single quotation marks in argfiles

Tools. Gradle

  • KT-25680 Gradle plugin: version with non-experimental coroutines and no related settings still runs compiler with -Xcoroutines option
  • KT-26253 New MPP model shouldn't generate metadataMain and metadataTest source sets on IDE import
  • KT-26383 Common modules dependencies are not mapped at import of a composite multiplatform project with project dependencies into IDE
  • KT-26515 Support -Xcommon-sources in new MPP
  • KT-26641 In new MPP, Gradle task for building classes has a name unexpected for GradleProjectTaskRunner
  • KT-26784 Support non-kts scripts discovery and compilation in gradle

Tools. JPS

  • KT-26072 MPP compilation issue
  • KT-26254 JPS build for new MPP model doesn't work: kotlinFacet?.settings?.sourceSetNames is empty

Tools. kapt

  • KT-25374 Kapt: Build fails with Unresolved local class
  • KT-26540 kapt3 fails to handle to-be-generated superclasses

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 calls wrong constructor in incremental build
  • KT-26117 JS runtime error: ArrayList_init instead of ArrayList_init_0
  • KT-26138 JS: prohibit external inline class
  • KT-26171 Prohibit inline classes as parameter and return type of external declaration

Language design

  • KT-7566 Annotate kotlin.test.Test.assertNotNull() so that safe dereference isn't required after it
  • KT-14397 Make "smart cast" to non-null string working after isNullOrEmpty() check.
  • KT-19532 Evaluation order for constructor call
  • KT-22274 Restrict statement labels applicability

Libraries

New Features

  • KT-13814 keys.associateWith { k -> v } function
  • KT-15539 Random Convenience Method in Ranges (LongRange, IntRange, etc)
  • KT-15695 String/Collection/Map/Array/Sequence.ifEmpty { null }
  • KT-18986 Debug-friendly toString implementation for CoroutineImpl
  • KT-25570 Random extensions to generate unsigned random numbers
  • KT-25659 Consider adding SuccessOrFailure.getOrDefault function
  • KT-25874 Support array copying between two existing arrays
  • KT-25875 Need more access to raw underlying array in unsigned arrays
  • KT-25962 Add contract for 'synchronized'
  • KT-26339 Introduce CoroutineStackFrame interface for coroutine stack reconstruction in debugger

Fixes

  • KT-16097 Index overflow when sequence has more than Int.MAX_VALUE elements
  • KT-17176 Long/Int progressions with Long.MIN_VALUE and Int.MIN_VALUE step are weird
  • KT-19305 IOStreams#readBytes is badly named
  • KT-19489 Array.copyOfRange returns value violating declared type when bounds are out of range
  • KT-21049 Different behavior in split by regex at JVM and JS
  • KT-23799 Discontinue deprecated artifacts distribution: kotlin-runtime, kotlin-jslib, kotlin-stdlib-jre7/8
  • KT-25274 contract() function has internal visibility
  • KT-25303 checkNotNull(T?) has no contract in contrast to checkNotNull(T?, () -> Any)
  • KT-25771 SuccessOrFailure.isFailure always returns false when boxed
  • KT-25961 Provide a way to create default-initialized 'U*Array'
  • KT-26161 String-to-number and number-to-string conversions for unsigned integers

Reflection

  • KT-14657 Reflection: Provide ability to enumerate all cases of a sealed class
  • KT-16795 KType does not implement KAnnotatedElement
  • KT-21972 Reflection: Implement suspend functions KCallable.callSuspend, callSuspendBy, and isSuspend

Tools. CLI

  • KT-25823 Report a warning or error if an old language version or API version is used

Tools. Gradle

  • KT-26301 In new MPP, a project with no java or java-base plugin applied cannot depend on a published MPP lib or run tests

Tools. Scripts

  • KT-26142 update maven-central remote repository url

1.3-M1 IDE plugins update

IDE

  • Kotlin plugin for Android Studio 3.3 Canary 4 is ready
  • KT-25713 Android Studio on 182 platform: Gradle project re-import fails
  • KT-25733 "Convert Java File to Kotlin File" action was always disabled

1.3-M1

Language design

  • KEEP-104 Inline classes
  • KEEP-135 Unsigned integer types
  • KEEP-95 Experimental API annotations
  • KT-4895 Support assignment of "when" subject to a variable
  • 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"

1.2.71

Compiler

  • KT-26806 Defining constants using kotlin.math is broken in 1.2.70

IDE

  • KT-26399 Kotlin Migration: NPE at KotlinMigrationProjectComponent$onImportFinished$1.run()
  • 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-26889 Don't show migration dialog if no actual migrations are available
  • KT-25177 Report asDynamic on dynamic type as a warning
  • KT-25454 Extract function: make default visibility private

JavaScript

  • KT-26466 Uncaught ReferenceError: println is not defined

Tools. Gradle

  • KT-26208 inspectClassesForKotlinIC slows down continuous mode in Gradle

Libraries

  • KT-26929 Kotlin Reflect and Proguard: can’t find referenced class kotlin.annotations.jvm.ReadOnly/Mutable

1.2.70

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 doesn't show Supertype usages of actual declarations with constructor

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
  • 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. 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. Multiplatform

  • KT-23368 IDE: Build: JPS errors are reported for valid non-multiplatform module depending on multiplatform one

IDE. Ultimate

  • KT-25595 Rename Kotlin-specific "Protractor" run configuration to distinguish it from the one provided by NodeJS plugin
  • KT-19309 Spring JPA Repository IntelliJ tooling with Kotlin

IDE. Tests Support

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

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
  • KT-25196 Optional expected annotation is visible in platforms where it doesn't have actual

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
  • KT-26211 Kotlin plugin 1.2.60+ breaks IDEA source/resource/test roots in a Maven project with Kapt

Tools. Gradle

  • KT-25025 Inter-project IC for JS in Gradle
  • KT-25455 Gradle IC: when class signature is changed its indirect subclasses in different module are not recompiled

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

Tools. Incremental Compile

  • 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

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

1.2.60

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 to string template
  • KT-14779 Inspection to replace String.format with string templates
  • KT-15666 Unused symbol: delete header & its implementations together
  • KT-18810 Quick-fix for 'is' absence in when
  • KT-22871 Add quickfix to move const val into companion object
  • KT-23082 Add quick-fix for type variance conflict
  • KT-23306 Add intention of putting remaining when-values even in end, and even if there is "else"
  • KT-23897 Inspections: report extension functions declared in same class
  • KT-24295 Add "Remove 'lateinit'" quickfix
  • KT-24509 Inspection "JUnit tests should return Unit"
  • KT-24815 Add Quick fix to remove illegal "const" modifier
  • KT-25238 Add quickfix wrapping expression into listOf/setOf/etc in case of type mismatch

Fixes

  • KT-12298 Fix override signature doesn't remove bogus reciever
  • KT-20523 Don't mark as unused functions with @kotlin.test.* annotations and classes with such members
  • KT-20583 Report "redundant let" even for it in argument position
  • KT-21556 "Call chain on collection type may be simplified" generates uncompiled code on IntArray
  • KT-22030 Invalid Function can be private inspection
  • KT-22041 "Convert lambda to reference" suggested incorrectly
  • KT-22089 Explict This inspection false negative with synthetic Java property
  • KT-22094 Can be private false positive with function called from lambda inside inline function
  • KT-22162 Add indices to loop fails on destructing declarator
  • KT-22180 "Can be private" false positive when function is called by inline function inside property initializer
  • KT-22371 "Create secondary constructor" quick fix is not suggested for supertype constructor reference
  • KT-22758 "Create ..." and "Import" quick fixes are not available on unresolved class name in primary constructor
  • KT-23105 Create actual implementation shouldn't generate default parameter values
  • KT-23106 Implement methods should respect actual modifier as well
  • KT-23326 "Add missing actual members" quick fix fails with AE at KtPsiFactory.createDeclaration() with wrong expect code
  • KT-23452 "Remove unnecessary parentheses" reports parens of returned function
  • KT-23686 "Add missing actual members" should not add primary actual constructor if it's present as secondary one
  • KT-23697 Android project with 'org.jetbrains.kotlin.platform.android' plugin: all multiplatform IDE features are absent
  • KT-23752 False positive "Remove variable" quick fix on property has lambda or anonymous function initializer
  • KT-23762 Add missing actual members quick fix adds actual declaration for val/var again if it was in the primary constructor
  • KT-23788 Can't convert long char literal to string if it starts with backslash
  • KT-23860 Import quick fix is not available in class constructor containing transitive dependency parameters
  • KT-24349 False positive "Call on collection type may be reduced"
  • KT-24374 "Class member can have private visibility" inspection reports expect members
  • KT-24422 Android Studio erroneously reporting that @Inject lateinit var can be made private
  • KT-24423 False inspection warning "redundant type checks for object"
  • KT-24425 wrong hint remove redundant Companion
  • KT-24537 False positive property can be private on actual properties in a multiplatform project
  • KT-24557 False warning "Remove redundant call" for nullable.toString
  • KT-24562 actual extension function implementation warns Receiver type unused
  • KT-24632 Quick fix to add getter and setter shouldn't use field when it is not allowed
  • KT-24816 Inspection: Sealed subclass can be object shouldn't be reported on classes with state

IDE. JS

  • KT-5948 JS: project shouldn't have "Java file" in new item menu

IDE. Multiplatform

  • KT-23722 MPP: Run tests from common modules should recompile correspond JVM implementation module
  • KT-24159 MPP: Show Kotlin Bytecode does not work for common code
  • KT-24839 freeCompilerArgs are not imported into Kotlin facet of Android module in IDEA

IDE. Navigation

  • KT-11477 Kotlin searchers consume CPU in a project without any Kotlin files
  • KT-17512 Finding usages of actual declarations in common modules
  • KT-20825 Header icon on actual class is lost on new line adding
  • KT-21011 Difference in information shown for "Is subclassed by" gutter on mouse hovering and clicking
  • KT-21113 Expected gutter icon on companion object is unstable
  • KT-21710 Override gutter markers are missing for types in sources jar
  • KT-22177 Double "A" icon for an expect class with constructor
  • KT-23685 Navigation from expect part to actual with ctrl+alt+B shortcut should provide a choice to what actual part to go
  • KT-24812 Search suggestion text overlaps for long names

IDE. Refactorings

  • KT-15159 Introduce typealias: Incorrect applying of a typealias in constructor calls in val/var and AssertionError
  • KT-15351 Extract Superclass/Interface: existent target file name is rejected; TCE: "null cannot be cast to non-null type org.jetbrains.kotlin.psi.KtFile" at ExtractSuperRefactoring.createClass()
  • KT-16281 Extract Interface: private member with Make Abstract = Yes produces incompilable code
  • KT-16284 Extract Interface/Superclass: reference to private member turns incompilable, when referring element is made abstract
  • KT-17235 Introduce Parameter leaks listener if refactoring is cancelled while in progress
  • KT-17742 Refactor / Rename Java getter to get() does not update Kotlin references
  • KT-18555 Refactor / Extract Interface, Superclass: Throwable: "Refactorings should be invoked inside transaction" at RefactoringDialog.show()
  • KT-18736 Extract interface: import for property type is omitted
  • KT-20260 AE “Unexpected container” on calling Refactor → Move for class in Kotlin script
  • KT-20465 "Introduce variable" in build.gradle.kts creates a variable with no template to change its name
  • KT-20467 Refactor → Extract Function: CCE “KtNamedFunction cannot be cast to KtClassOrObject” on calling refactoring for constructor
  • KT-20469 NDFDE “Descriptor wasn't found for declaration VALUE_PARAMETER” on calling Refactor → Extract Function on constructor argument
  • KT-22931 Converting a scoping function with receiver into one with parameter may change the semantics
  • KT-23983 Extract function: Reified type parameters are not extracted properly
  • KT-24460 Rename refactoring does not update super call
  • KT-24574 Changing Java constructor signature from Kotlin usage is totally broken
  • KT-24712 Extract Function Parameter misses 'suspend' for lambda type
  • KT-24763 "Change signature" refactoring breaks Kotlin code
  • KT-24968 Type hints disappear after "Copy" refactoring
  • KT-24992 The IDE got stuck showing a modal dialog (kotlin refactoring) and doesn’t react to any actions

IDE. Script

IDE. Tests Support

  • KT-18319 Gradle: Run tests action does not work when test name contains spaces
  • KT-22306 Empty gutter menu for main() and test methods in Kotlin/JS project
  • KT-23672 JUnit test runner is unaware of @kotlin.test.Test tests when used in common multiplatform module, even if looked from JVM multiplatform module
  • KT-25253 No “run” gutter icons for tests in Kotlin/JS project

JavaScript

  • KT-22376 JS: TranslationRuntimeException on 'for (x in ("a"))'
  • KT-23458 ClassCastException when compiling when statements to JS

Libraries

  • KT-24204 Empty progression last value overflows resulting in progression being non-empty
  • KT-25351 TestNGAsserter needs to swap expected/actual

Reflection

  • KT-16616 KotlinReflectionInternalError: Reflection on built-in Kotlin types is not yet fully supported in getMembersOfStandardJavaClasses.kt
  • KT-17542 KotlinReflectionInternalError on ::values of enum class
  • KT-20442 ReflectJvmMapping.getJavaConstructor() fails with Call is not yet supported for anonymous class
  • KT-21973 Method.kotlinFunction for top level extension function returns null when app is started from test sources
  • KT-22048 Reflection explodes when attempting to get constructors of an enum with overridden method

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

  • KT-23808 Array in @Parcelize class generates an java.lang.VerifyError

Tools. Gradle

  • KT-18621 org.jetbrains.kotlin.incremental.fileUtils.kt conflicts when compiler and gradle plugin in classpath
  • KT-24497 Externalized all-open plugin is not applied to a project
  • KT-24559 Multiple Kotlin daemon instances are started when building MPP with Gradle
  • KT-24560 Multiple Kotlin daemon instances are started when Gradle parallel build is used
  • KT-24653 Kotlin plugins don't work when classpath dependency is not declared in current or root project
  • KT-24675 Use Gradle dependency resolution to get compiler classpath
  • KT-24676 Use Gradle dependency resolution to form compiler plugin classpath
  • 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

Tools. J2K

  • KT-9945 converting java to kotlin confuses git

Tools. JPS

  • KT-19957 Support incremental compilation to JS in JPS
  • KT-22611 Support compiling scripts in JPS
  • KT-23558 JPS: Support multiplatform projects
  • KT-23757 JPS: Incremental multiplatform projects compilation
  • KT-24936 Don't use internal terms in compiler progress messages
  • KT-25218 Build fails as Javac doesn't see Kotlin classes

Tools. Scripts

  • KT-24926 NoSuchElementException in TemplateAnnotationVisitor when upgrading the Gradle Kotlin DSL to Kotlin 1.2.50

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-24538 Kapt performs Kotlin compilation when annotation processors are not configured
  • 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
  • KT-25131 Kapt should not load annotation processors when generating stubs

1.2.51

Backend. JVM

  • KT-23943 Wrong autoboxing for non-null inline class inside elvis with null constant
  • KT-24952 EnumConstantNotPresentExceptionProxy from Java reflection on annotation class with target TYPE on JVM < 8
  • KT-24986 Android project release build with ProGuard enabled crashes with IllegalAccessError: Final field cannot be written to by method

Binary Metadata

  • KT-24944 Exception from stubs: "Unknown type parameter with id = 1" (EA-120997)

Reflection

  • KT-23962 MalformedParameterizedTypeException when reflecting GeneratedMessageLite.ExtendableMessage

Tools. Gradle

  • KT-24956 Kotlin Gradle plugin's inspectClassesForKotlinIC task for the new 1.2.50 release takes incredibly long
  • KT-23866 Kapt plugin should pass arguments from compiler argument providers to annotation processors
  • KT-24716 1.2.50 emits warning "Classpath entry points to a non-existent location:"
  • KT-24832 Inter-project IC does not work when "kotlin-android" project depends on "kotlin" project
  • KT-24938 Gradle parallel execution fails on multi-module Gradle Project
  • KT-25027 Kapt plugin: Kapt and KaptGenerateStubs tasks have some incorrect inputs

Tools. Scripts

  • KT-24926 NoSuchElementException in TemplateAnnotationVisitor when upgrading the Gradle Kotlin DSL to Kotlin 1.2.50

1.2.50

Compiler

  • KT-23360 Do not serialize annotations with retention SOURCE to metadata
  • KT-24278 Hard-code to kotlin compiler annotation for android library migration
  • KT-24472 Support argfiles in kotlinc with -Xargfile
  • KT-24593 Support -XXLanguage:{+|-}LanguageFeature compiler arguments to enable/disable specific features
  • KT-24637 Introduce "progressive" mode of compiler

Backend. JS

  • KT-23094 JS compiler: Delegation fails to pass the continuation parameter to child suspend function
  • KT-23582 JS: Fails to inline, produces bad code
  • KT-24335 JS: Invalid implement of external interface

Backend. JVM

  • KT-12330 Slightly improve generated bytecode for data class equals/hashCode methods
  • KT-18576 Debugger fails to show decomposed suspend lambda parameters
  • KT-22063 Add intrinsics for javaObjectType and javaPrimitiveType
  • KT-23402 Internal error: Couldn't inline method call because the compiler couldn't obtain compiled body for inline function with reified type parameter
  • KT-23704 Unstable checkExpressionValueIsNotNull() generation in bytecode
  • KT-23707 Unstable bridge generation order
  • KT-23857 Annotation with target TYPE is not applicable to TYPE_USE in Java sources
  • KT-23910 @JvmOverloads doesn't work with default arguments in common code
  • KT-24427 Protected function having toArray-like signature from collection becomes public in bytecode
  • KT-24661 Support binary compatibility mode for @JvmDefault

Frontend

  • KT-21129 Unused parameter in property setter is not reported
  • KT-21157 Kotlin script: engine can take forever to eval certain code after several times
  • KT-22740 REPL slows down during extensions compiling
  • KT-23124 Kotlin multiplatform project causes IntelliJ build errors
  • KT-23209 Compiler throwing frontend exception
  • KT-23589 Report a warning on local annotation classes
  • KT-23760 Unable to implement common interface with fun member function with typealiased parameter

Android

  • KT-23244 Option to Disable View Binding generation in Kotlin Android Extensions Plugin

IDE

  • KT-8407 TestNG: running tests from context creates new run configuration every time
  • KT-9218 Searching for compilable files takes too long
  • KT-15019 Editor: args reference in .kts file is red
  • KT-18769 Expand Selection on opening curly brace should select the entire block right away
  • KT-19055 Idea hangs on copy-paste big Kotlin files
  • KT-20605 Unresolved reference on instance from common module function
  • KT-20824 Type mismatch for common function taking a non-mapped Kotlin's expected class from stdlib-common, with actual typealias on JVM
  • KT-20897 Can't navigate to declaration after PsiInvalidElementAccessException exception
  • KT-22527 Kotlin UAST does not evaluate values inside delegation expressions
  • KT-22868 Implementing an expected class declaration using actual typealias produces "good code that is red"
  • KT-22922 Override Members should add experimental annotation when required
  • KT-23384 Hotspot in org.jetbrains.kotlin.idea.caches.resolve.IDELightClassGenerationSupport.getKotlinInternalClasses(FqName, GlobalSearchScope) IDELightClassGenerationSupport.kt ?
  • KT-23408 Don't render @NonNull and @Nullable annotations in parameter info for Java methods
  • KT-23557 Expression Bodies should have implicit return in Uast
  • KT-23745 Unable to implement common interface
  • KT-23746 Logger$EmptyThrowable "[kts] cannot find a valid script definition annotation on the class class ScriptTemplateWithArgs" with LivePlugin enabled
  • KT-23975 Move Kotlin internal actions under Idea Internal actions menu
  • KT-24268 Other main menu item
  • KT-24438 ISE “The provided plugin org.jetbrains.kotlin.scripting.compiler.plugin.ScriptingCompilerConfigurationComponentRegistrar is not compatible with this version of compiler” after rebuilding simple Gradle-based project via JPS.

IDE. Configuration

  • KT-10935 Add menu entry to create new kotlin .kts scripts
  • KT-20511 Library added from maven (using IDEA UI) is not detected as Kotlin/JS library (since type="repository")
  • KT-20665 Kotlin Gradle script created by New Project/Module wizard fails with Gradle 4.1+
  • KT-21844 Create Kotlin class dialog: make class abstract automatically
  • KT-22305 Language and API versions of Kotlin compiler are “Latest” by default in some ways of creating new project
  • KT-23261 New MPP design: please show popup with error message if module name is not set
  • KT-23638 Kotlin plugin breaks project opening for PhpStorm/WebStorm
  • KT-23658 Unclear options “Gradle” and “Gradle (Javascript)” on configuring Kotlin in Gradle- and Maven-based projects
  • KT-23845 IntelliJ Maven Plugin does not pass javaParameters option to Kotlin facet
  • KT-23980 Move "Update Channel" from "Configure Kotlin Plugin Updates" to settings
  • KT-24504 Existent JPS-based Kotlin/JS module is converted to new format, while New Project wizard and facet manipulations still create old format

IDE. Debugger

  • KT-23886 Both java and kotlin breakpoints in kotlin files
  • KT-24136 Debugger: update drop-down menu for the line with lambdas

IDE. Editing

  • KT-2582 When user inputs triple quote, add matching triple quote automatically
  • KT-5206 Long lists of arguments are not foldable
  • KT-23457 Auto-import and Import quick fix do not suggest classes from common module [Common test can't find class with word Abstract in name.]
  • KT-23235 Super slow editing with auto imports enabled

IDE. Gradle

  • KT-23234 Test names for tests containing inner classes are sporadically reported to teamcity runs.
  • KT-23383 Optional plugin dependency for kotlin gradle plugin 'java' subsystem dependent features
  • KT-22588 Resolver for 'project source roots and libraries for platform JVM' does not know how to resolve on Gradle Kotlin DSL project without Java and Kotlin
  • KT-23616 Synchronize script dependencies not at Gradle Sync
  • KT-24444 Do not store proxy objects from Gradle importer in the project model
  • KT-24586 MVNFE “Cannot resolve external dependency org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.2.41 because no repositories are defined.” on creating Gradle project with Kotlin only (probably due to lack of repositories block)
  • KT-24671 dependencies missed in buildscript block after creating new Gradle-based project in 173 IDEA

IDE. Inspections and Intentions

New Features
  • KT-7822 Convert foreach to for loop should place caret on the variable declaration
  • KT-9943 Quick fix/Intention to indent a raw string
  • KT-15063 Inspection for coroutine: unused Deferred result
  • KT-16085 Inspection "main should return Unit"
  • KT-20305 Inspection: Refactor sealed sub-class to object
  • KT-21413 Missing inspection: parentheses can be deleted when the only constructor parameter is a function not existing
  • KT-23137 Intention for converting to block comment and vise versa
  • KT-23266 Add intention(s) to put arguments / parameters on one line
  • KT-23419 Intention to replace vararg with array and vice versa
  • KT-23617 Add inspection: redundant internal in local anonymous object / class
  • KT-23775 IntelliJ plugin: improve "accessor call that can be replaced with property"
  • KT-24235 Inspection to replace async.await with withContext
  • KT-24263 Add Make variable immutable quickfix for const
  • KT-24433 Inspection for coroutines: unused async result
Performance Improvements
  • KT-23566 "Can be private" works on ResolutionResultsCache.kt (from Kotlin project) enormously slow
Fixes
  • KT-6364 Incorrect quick-fixes are suggested for nullable extension function call
  • KT-11156 Incorrect highlighting for nested class in "Redundant SAM-constructor" inspection
  • KT-11427 "Replace if with when" does not take break / continue into account
  • KT-11740 Invert if condition intention should not remove line breaks
  • KT-12042 "Merge with next when" is not applicable when the statements delimited by semicolon or comment
  • KT-12168 "Remove explicit type specification" intention produce incompilable code in case of function type
  • KT-14391 RemoveUnnecessaryParenthesesIntention lost comment on closing parenthesis
  • KT-14556 Quickfix to suggest use of spread operator does not work with mapOf
  • KT-15195 Redundant parentheses shouldn't be reported if lambda is not on the same line
  • KT-16770 Change type of function quickfix does not propose most idiomatic solutions
  • KT-19629 "Convert to primary constructor" quick fix should not move init{...} section down
  • KT-20123 Kotlin Gradle script: “Refactoring cannot be performed. Cannot modify build.gradle.kts” for some refactorings and intentions
  • KT-20332 Unused property declaration suppression by annotation doesn't work if annotation is targeted to getter
  • KT-21878 "arrayOf() call can be replaced by array litteral [...]" quick fix inserts extra parentheses
  • KT-22092 Intention "Specify return type explicitly": Propose types from overriden declarations
  • KT-22615 "Replace with" intention does not work for equal names
  • KT-22632 Gutter icon "go to actual declaration" is absent for enum values on actual side
  • KT-22741 Wrong suggestion for Replace 'if' expression with elvis expression
  • KT-22831 Inspection for converting to elvis operator does not work for local vars
  • KT-22860 "Add annotation target" quick fix does not take into account existent annotations in Java source
  • KT-22918 Create interface quickfix is missing 'current class' container
  • KT-23133 "Remove redundant calls of the conversion method" wrongly shown for Boolan to Int conversion
  • KT-23167 Report "use expression body" also on left brace
  • KT-23194 Inspection "map.put() should be converted to assignment" leads to red code in case of labled return
  • KT-23303 "Might be const" inspection does not check explicit type specification
  • KT-23320 Quick fix to add constructor invocation doesn't work for sealed classes
  • KT-23321 Intention to move type to separate file shouldn't be available for sealed classes
  • KT-23346 Lift Assignment quick fix incorrectly processes block assignments
  • KT-23377 Simplify boolean expression produces incorrect results when mixing nullable and non-nullable variables
  • KT-23465 False positive suspicious callable reference on lambda invoke with parameters
  • KT-23511 "Remove parameter" quick fix makes generic function call incompilable when type could be inferred from removed parameter only
  • KT-23513 "Remove parameter" quick fix makes caret jump to the top of the editor
  • KT-23559 Wrong hint text for "assignment can be replaced with operator assignment"
  • KT-23608 AE “Failed to create expression from text” after applying quick fix “Convert too long character literal to string”
  • KT-23620 False positive Redundant Companion reference on calling object from companion
  • KT-23634 'Add use-site target' intention drops annotation arguments
  • KT-23753 "Remove variable" quick fix should not remove comment
  • KT-23756 Bogus "Might be const" warning in object expression
  • KT-23778 "Convert function to property" intention shows broken warning
  • KT-23796 "Create extension function/property" quick fix suggests one for nullable type while creates for not-null
  • KT-23801 "Convert to constructor" (IntelliJ) quick fix uses wrong use-site target for annotating properties
  • KT-23977 wrong hint Unit redundant
  • KT-24066 'Remove redundant Unit' false positive when Unit is returned as Any
  • KT-24165 @Deprecated ReplaceWith Constant gets replaced with nothing
  • KT-24207 Add parameter intent/red bulb should use auto casted type.
  • KT-24215 ReplaceWith produces broken code for lambda following default parameter

IDE. Multiplatform

  • KT-20406 Overload resolution ambiguity in IDE on expect class / actual typealias from kotlin-stdlib-common / kotlin-stdlib
  • KT-24316 Missing dependencies in Kotlin MPP when using gradle composite builds

IDE. Navigation

  • KT-7622 Searching usages of a field/constructor parameter in a private class seems to scan through the whole project
  • KT-23182 Find Usages checks whether there are unused variables in functions which contain search result candidates
  • KT-23223 Navigate to actual declaration from actual usage

IDE. Refactorings

  • KT-12078 Introduce Variable adds explicit type when invoked on anonymous object
  • KT-15517 Change signature refactoring shows confusing warning dialog
  • KT-22387 Change signature reports "Type cannot be resolved" for class from different package
  • KT-22669 Refactor / Copy Kotlin source to plain text causes CCE: "PsiPlainTextFileImpl cannot be cast to KtFile" at CopyKotlinDeclarationsHandler$doCopy$2$1$1.invoke()
  • KT-22888 Rename completion cuts off all characters except letters from existent name
  • KT-23298 AE: "2 declarations in null..." on rename of a field to object or class
  • KT-23563 null by org.jetbrains.kotlin.idea.refactoring.rename.KotlinMemberInplaceRenameHandler$RenamerImpl exception on trying in-place Rename of non-scratch functions
  • KT-23613 Kotlin safe delete processor handles java code when it should not
  • KT-23644 Named parameters in generated Kotlin Annotations
  • KT-23714 Add Parameter quickfix not working when the called method is in java.
  • KT-23838 Do not search for usages in other files when renaming local variable
  • KT-24069 'Create from usage' doesn't use type info with smart casts

IDE. Scratch

  • KT-6928 Support Kotlin scratch files
  • KT-23441 Scratch options reset on IDE restart
  • KT-23480 java.util.NoSuchElementException: "Collection contains no element matching the predicate" on run of a scratch file with unresolved function parameter
  • KT-23587 Scratch: references from scratch file aren't taken into account
  • KT-24016 Make long scratch output lines readable
  • KT-24315 Checkbox labels aren't aligned in scratch panel
  • KT-24636 Run Scratch when there are compilation errors in module

Tools. J2K

  • KT-22989 Exception "Assertion failed: Refactorings should be invoked inside transaction" on creating UI Component/Notification

Libraries

  • KT-10456 Common Int.toString(radix: Int) method
  • KT-22298 Improve docs for Array.copyOf(newSize: Int)
  • KT-22400 coroutineContext shall be in kotlin.coroutines.experimental package
  • KT-23356 Cross-platform function to convert CharArray slice to String
  • KT-23920 CharSequence.trimEnd calls substring instead of subSequence
  • KT-24353 Add support for junit 5 in kotlin.test
  • KT-24371 Invalid @returns tag does not display in Android Studio popup properly

Gradle plugin

  • KT-20214 NoClassDefFound from Gradle (should report missing tools.jar)
  • KT-20608 Cannot reference operator overloads across submodules (.kotlin_module not loaded when a module name has a slash)
  • KT-22431 Inter-project incremental compilation does not work with Android plugin 2.3+
  • KT-22510 Common sources aren't added when compiling custom source set with Gradle multiplatform plugin
  • KT-22623 Kotlin JVM tasks in independent projects are not executed in parallel with Gradle 4.2+ and Kotlin 1.2.20+
  • KT-23092 Gradle plugin for MPP common modules should not remove the 'compileJava' task from project.tasks
  • KT-23574 'archivesBaseName' does not affect module name in common modules
  • KT-23719 Incorrect Gradle Warning for expectedBy in kotlin-platform-android module
  • KT-23878 Kapt: Annotation processors are run when formatting is changed
  • KT-24420 Kapt plugin: Kapt task has overlapping outputs (and inputs) with Gradle's JavaCompile task
  • KT-24440 Gradle daemon OOM due to function descriptors stuck forever

Tools. kapt

  • KT-23286 kapt + nonascii = weird pathes
  • KT-23427 kapt: for element with multiple annotations, annotation values erroneously use default when first annotation uses default
  • KT-23721 Warning informing user that 'tools.jar' is absent in the plugin classpath is not show when there is also an error
  • KT-23898 Kapt: Do now show a warning for APs from 'annotationProcessor' configuration also declared in 'kapt' configuration
  • KT-23964 Kotlin Gradle plugin does not define inputs and outputs of annotation processors

1.2.41

Compiler – Fixes

  • KT-23901 Incremental compilation fails on Java 9
  • KT-23931 Exception on optimizing eternal loops
  • KT-23900 Exception on some cases with nested arrays
  • KT-23809 Exception on processing complex hierarchies with suspend functions when -Xdump-declarations-to is active

Other

  • KT-23973 New compiler behavior lead to ambiguous mappings in Spring Boot temporarily reverted

1.2.40

Compiler

New Features

  • KT-22703 Allow expect/actual annotation constructors to have default values
  • KT-19159 Support crossinline lambda parameters of suspend function type
  • KT-21913 Support default arguments for expected declarations
  • KT-19120 Provide extra compiler arguments in ScriptTemplateDefinition
  • KT-19415 Introduce @JvmDefault annotation
  • KT-21515 Restrict visibility of classifiers inside companion objects

Performance Improvements

  • KT-10057 Use lcmp instruction instead of kotlin/jvm/internal/Intrinsics.compare
  • KT-14258 Suboptimal codegen for private fieldaccess to private field in companion object
  • KT-18731 == between enums should use reference equality, not Intrinsics.areEqual().
  • KT-22714 Unnecessary checkcast to array of object from an array of specific type
  • KT-5177 Optimize code generation for for loop with withIndex()
  • KT-19477 Allow to implement several common modules with a single platform module
  • KT-21347 Add compiler warning about using kotlin-stdlib-jre7 or kotlin-stdlib-jre8 artifacts

Fixes

  • KT-16424 Broken bytecode for nullable generic methods
  • KT-17171 ClassCastException in case of SAM conversion with out variance
  • KT-19399 Incorrect bytecode generated for inline functions in some complex cases
  • KT-21696 Incorrect warning for use-site target on extension function
  • KT-22031 Non-abstract expect classes should not have abstract members
  • KT-22260 Never flag inline suspend fun with NOTHING_TO_INLINE
  • KT-22352 Expect/actual checker can't handle properties and functions with the same name
  • KT-22652 Interface with default overrides is not perceived as a SAM
  • KT-22904 Incorrect bytecode generated for withIndex iteration on Array<Int>
  • KT-22906 Invalid class name generated for lambda created from method reference in anonymous object
  • KT-23044 Overriden public property with internal setter cannot be found in runtime
  • KT-23104 Incorrect code generated for LHS of an intrinsified in operator in case of generic type substituted with Character
  • KT-23309 Minor spelling errors in JVM internal error messages
  • KT-22001 JS: compiler crashes on += with "complex" receiver
  • KT-23239 JS: Default arguments for non-final member function support is missing for MPP
  • KT-17091 Converting to SAM Java type appends non-deterministic hash to class name
  • KT-21521 Compilation exception when trying to compile a suspend function with tailrec keyword
  • KT-21605 Cross-inlined coroutine with captured outer receiver creates unverifiable code
  • KT-21864 Expect-actual matcher doesn't consider generic upper bounds
  • KT-21906 ACTUAL_MISSING is reported for actual constructor of non-actual class
  • KT-21939 Improve ACTUAL_MISSING diagnostics message
  • KT-22513 Flaky "JarURLConnection.getUseCaches" NPE during compilation when using compiler plugins

Libraries

  • KT-11208 readLine() shouldn't use buffered reader

IDE

New Features

  • KT-10368 Run Action for Kotlin Scratch Files
  • KT-16892 Shortcut to navigate between header and impl
  • KT-23005 Support prefix/suffix attributes for language injection in Kotlin with annotations and comments

Performance Improvements

  • KT-19484 KotlinBinaryClassCache retains a lot of memory
  • KT-23183 ConfigureKotlinNotification.getNotificationString() scans modules with Kotlin files twice
  • KT-23380 Improve IDE performance when working with Spring projects

Fixes

  • KT-15482 KotlinNullPointerException in IDE from expected class with nested class
  • KT-15739 Internal visibility across common and platform-dependent modules
  • KT-19025 Not imported build.gradle.kts is all red
  • KT-19165 IntelliJ should suggest to reload Gradle projects when build.gradle.kts changes
  • KT-20282 'Move statement up' works incorrectly for statement after finally block if try block contains closure
  • KT-20521 Kotlin Gradle script: valid build.gradle.kts is red and becomes normal only after reopening the project
  • KT-20592 KotlinNullPointerException: nested class inside expect / actual interface
  • KT-21013 "Move statement up/down" fails for multiline declarations
  • KT-21420 .gradle.kts editor should do no semantic highlighting until the first successful dependency resolver response
  • KT-21683 Language injection: JPAQL. Injection should be present for "query" parameter of @NamedNativeQueries
  • KT-21745 Warning and quickfix about kotlin-stdlib-jre7/8 -> kotlin-stdlib-jdk7/8 in Maven
  • KT-21746 Warning and quickfix about kotlin-stdlib-jre7/8 -> kotlin-stdlib-jdk7/8 in Gradle
  • KT-21753 Language injection: SpEL. Not injected for key in @Caching
  • KT-21771 All annotations in Annotations.kt from kotlin-test-js module wrongly have ACTUAL_MISSING
  • KT-21831 Opening class from kotlin-stdlib-jdk8.jar fails with EE: "Stub list in ... length differs from PSI"
  • KT-22229 Kotlin local delegated property Import auto-removed with "Java: Optimize imports on the fly"
  • KT-22724 ISE: "psiFile must not be null" at KotlinNodeJsRunConfigurationProducer.setupConfigurationFromContext()
  • KT-22817 Hitting 'Propagate Parameters' in Change Signature throws UnsupportedOperationException
  • KT-22851 Apply button is always active on Kotlin compiler settings tab
  • KT-22858 Multiplatform: String constructor parameter is reported in Java file of jvm module on creation of a new instance of a class from common module
  • KT-22865 Support multiple expectedBy dependencies when importing project from Gradle or Maven
  • KT-22873 Common module-based light classes do not see JDK
  • KT-22874 Exception on surround with "if else" when resulting if should be wrapped with ()
  • KT-22925 Unable to view Type Hierarchy from constructor call in expression
  • KT-22926 Confusing behavior of Type Hierarchy depending on the caret position at superclass constructor
  • KT-23097 Enhance multiplatform project wizard
  • KT-23271 Warn about using kotlin-stdlib-jre* libs in dependencyManagement section in Maven with eap and dev Kotlin versions
  • KT-20672 IDE can't resolve references to elements from files with @JvmPackageName
  • KT-23546 Variable name auto-completion popup gets in the way
  • KT-23546 Do not show duplicated names in variables completion list
  • KT-19120 Use script compiler options on script dependencies in the IDE as well

IDE. Gradle. Script

  • KT-23228 Do not highlight .gradle.kts files in non-Gradle projects

IDE. Inspections and Intentions

New Features

  • KT-16382 Intention to convert expr.unsafeCast<Type>() to expr as Type and vice versa
  • KT-20439 Intentions to add/remove labeled return to last expression in a lambda
  • KT-22011 Inspection to report the usage of Java Collections methods on immutable Kotlin Collections
  • KT-22933 Intention/inspection to convert Pair constructor to to function
  • KT-19871 Intentions for specifying use-site targets for an annotation
  • KT-22971 Inspection to highlight and remove unnecessary explicit companion object references

Fixes

  • KT-12226 "Convert concatenation to template" does not process $ sign as a Char
  • KT-15858 "Replace with a foreach function call" intention breaks code
  • KT-16332 Add braces to 'if' statement intention does not put end-of-line comment properly into braces
  • KT-17058 "Create implementations from headers": each implementation gets own file
  • KT-17306 Don't report package name mismatch if there's no Java code in the module
  • KT-19730 Quickfix for delegated properties boilerplate generation doesn't work on locals
  • KT-21005 "Missing KDoc inspection" is broken
  • KT-21082 "Create actual declaration" of top-level subclass of expected sealed class in the same file as actual declaration of sealed class present
  • KT-22110 "Can be joined with assignment" inspection underlining extends into comment
  • KT-22329 "Create class" quickfix is not suggested in when branch
  • KT-22428 Create member function from usage shouldn't present type parameters as options
  • KT-22492 "Specify explicit lambda signature" intention is available only on lambda braces
  • KT-22719 Incorrect warning 'Redundant semicolon' when having method call before lambda expression
  • KT-22861 "Add annotation target" quickfix is not available on annotation with use site target
  • KT-22862 "Add annotation target" quickfix does not process existent annotations with use site target
  • KT-22917 Update order of containers for create class quickfix
  • KT-22949 NPE on conversion of run/apply with explicit lambda signature to let/also
  • KT-22950 Convert stdlib extension function to scoping function works incorrectly in case of explicit lambda signature
  • KT-22954 "Sort modifiers" quickfix works incorrectly when method is annotated
  • KT-22970 Add explicit this intention/inspection missing for lambda invocation
  • KT-23109 "Remove redundant 'if' statement" inspection breaks code with labeled return
  • KT-23215 "Add function to supertype" quickfix works incorrectly
  • KT-14270 Intentions "Add/Remove braces" should be applied to the statement where caret is if there several nested statements one into another
  • KT-21743 Method reference not correctly moved into parentheses
  • KT-23045 AE “Failed to create expression from text” on concatenating string with broken quote mark char literal
  • KT-23046 CCE ”KtBinaryExpression cannot be cast to KtStringTemplateExpression” on concatenating broken quote mark char literal with string
  • KT-23227 "Add annotation target" quickfix is not suggested for field: use-site target

IDE. Refactorings

Fixes

  • KT-13255 Refactor / Rename: renaming local variable or class to existing name gives no warning
  • KT-13284 Refactor / Rename: superfluous imports and FQNs in Java using @JvmOverloads functions
  • KT-13907 Rename refactoring warns about name conflict if there is function with different signature but the same name
  • KT-13986 Full qualified names of classes in comments should be changed after class Move, if comment contains backquotes
  • KT-14671 typealias: refactor/rename should propose to rename occurrences in comments
  • KT-15039 Extra usage is found for a parameter in data class in destructuring construction
  • KT-15228 Extract function from inline function should create public function
  • KT-15302 Reference to typealias in SAM conversion is not found
  • KT-16510 Can't rename quoted identifier is
  • KT-17827 Refactor / Move corrupts bound references when containing class of member element is changed
  • KT-19561 Name conflict warning when renaming method to a name matching an extension method with the same name exists
  • KT-20178 Refactor → Rename can't make companion object name empty
  • KT-22282 Moving a Kotlin file to another package does not change imports in itself
  • KT-22482 Rename refactoring insert qualifier for non related property call
  • KT-22661 Refactor/Move: top level field reference is not imported automatically after move to the source root
  • KT-22678 Refactor / Copy: "Class uses constructor which will be inaccessible after move" when derived class has a protected constructor
  • KT-22692 Refactor/Move: unnecessary curly braces added on moving to a separate file a top level function with a top level field usage
  • KT-22745 Refactor/Move inserts FQ function name at the call site if there is a field same named as the function
  • KT-22747 Moving top-level function to a different (existing) file doesn't update references from Java
  • KT-22751 Refactor/Rename: type alias name clash is not reported
  • KT-22769 Refactor/Move: there is no warning on moving sealed class or its inheritors to another file
  • KT-22771 Refactor/Move: there is no warning on moving nested class to another class with stricter visibility
  • KT-22812 Refactor/Rename extension functions incorrectly conflicts with other extension functions
  • KT-23065 Refactor/Move: Specify the warning message on moving sealed class inheritors without moving the sealed class itself

IDE. Script

  • KT-22647 Run script Action in IDE should use Kotlin compiler from the IDE plugin
  • KT-18930 IDEA is unstable With Gradle Kotlin DSL
  • KT-21042 Gradle Script Kotlin project is full-red
  • KT-11618 Running .kts file from IntelliJ IDEA doesn't allow to import classes in other files which are also part of the project

IDE. Debugger

  • KT-22205 Breakpoints won't work for Kotlin testing with JUnit

JavaScript

Tools. CLI

  • KT-22777 Unstable language version setting has no effect when attached runtime has lower version

Tools. Gradle

  • KT-22824 expectedBy dependency should be expressed as compile dependency in POM
  • KT-15371 Multiplatform: setting free compiler args can break build
  • KT-22864 Allow multiple expectedBy configuration dependencies in Gradle
  • KT-22895 'kotlin-runtime' library is missing in the compiler classpath sometimes
  • KT-23085 Use proper names for the Gradle task inputs/outputs added at runtime
  • KT-23694 Fix parallel build in Kotlin IC – invalid KotlinCoreEnvironment disposal

Tools. Android

  • Android Extensions: Support fragments from kotlinx package;

Tools. Incremental Compile

  • KT-20516 "Unresolved reference" when project declares same class as its dependency
  • KT-22542 "Source file or directory not found" for incremental compilation with Kobalt
  • KT-23165 Incremental compilation is sometimes broken after moving one class

Tools. JPS

  • KT-16091 Incremental compilation ignores changes in Java static field
  • KT-22995 EA-91869 - NA: LookupStorage.<init>

Tools. kapt

  • KT-21735 Kapt cache was not cleared sometimes

Tools. REPL

  • KT-21611 REPL: Empty lines should be ignored

1.2.30

Android

  • KT-19300 [AS3.0] Android extensions, Parcelable: editor shows warning about incomplete implementation on a class with Parcelize annotation
  • KT-22168 "Kotlin Android | Illegal Android Identifier" inspection reports non-instrumentation unit tests
  • KT-22700 Android Extensions bind views with dot in ID

Compiler

New Features

  • KT-17336 Introduce suspendCoroutineUninterceptedOrReturn coroutine intrinsic function
  • KT-22766 Imitate "suspend" modifier in 1.2.x by stdlib function

Performance Improvements

  • KT-16880 Smarter detection of tail-suspending unit invocations

Fixes

  • KT-10494 IAE in CheckMethodAdapter.checkInternalName when declaring classes inside method with non-standard name
  • KT-16079 Internal error when using suspend operator plus
  • KT-18522 Internal compiler error with IndexOutOfBoundsException, "Exception while analyzing expression"
  • KT-18578 Compilation failure with @JsonInclude and default interface method
  • KT-19786 Kotlin — unable to override a Java function with @Nullable vararg argument
  • KT-20466 JSR305 false positive for elvis operator
  • KT-20705 Tail suspend call optimization doesn't work in when block
  • KT-20708 Tail suspend call optiomization doesn't work in some branches
  • KT-20855 Unnecessary safe-call reported on nullable type
  • KT-21165 Exception from suspending function is not caught
  • KT-21238 Nonsensical warning "Expected type does not accept nulls in Java, but the value may be null in Kotlin"
  • KT-21258 Raw backing field value exposed via accessors?
  • KT-21303 Running on JDK-10-ea-31 leads to ArrayIndexOutOfBoundsException
  • KT-21642 Back-end (JVM) Internal error: Couldn't transform method node on using open keyword with suspend for a top-level function
  • KT-21759 Compiler crashes on two subsequent return statements in suspend function
  • KT-22029 Fold list to pair with destructuring assignment and inner when results in Exception
  • KT-22345 OOM in ReturnUnitMethodReplacer
  • KT-22410 invalid compiler optimization for nullable cast to reified type
  • KT-22577 Compiler crashes when coroutineContext is used inside of inlined lambda

IDE

New Features

  • KT-8352 Pasting Kotlin code into package could create .kt file
  • KT-16710 Run configuration to run main() as a Node CLI app
  • KT-16833 Allow mixing Java and Kotlin code in "Analyze Data Flow..."
  • KT-21531 JS: add support for running specific test from the gutter icon with Jest testing framework

Performance Improvements

  • KT-21450 Add caching for Module.languageVersionSettings
  • KT-21517 OOME during find usages

Fixes

  • KT-7316 Go to declaration in Kotlin JavaScript project navigates to JDK source in some cases
  • KT-8563 Refactor / Rename inserts line breaks without reason
  • KT-11467 Editor: var property in primary constructor is shown not underscored, same as val
  • KT-13509 Don't show run line markers for top-level functions annotated with @Test
  • KT-13971 Kotlin Bytecode tool window: Decompile is available for incompilable code, CE at MemberCodegen.genFunctionOrProperty()
  • KT-15000 Do not spell check overridden declaration names
  • KT-15331 "Kotlin not configured" notification always shown for common module in multiplatform project
  • KT-16333 Cannot navigate to super declaration via shortcut
  • KT-16976 Introduce special SDK for Kotlin JS projects to avoid using JDK
  • KT-18445 multiplatform project: provide more comfortable way to process cases when there are missed method implemenation in the implementation class
  • KT-19194 Some Live Templates should probably be enabled also for "expressions" not only "statements"
  • KT-20281 multiplatform:Unresolved service JavaDescriptorResolver on a file with several header declarations and gutters not shown
  • KT-20470 IntelliJ indent guide/invisible brace matching hint tooltip doesn't show context
  • KT-20522 Add "Build" action in "Before launch" block when create new JS run configuration (for test)
  • KT-20915 Add quickfix for ‘Implicit (unsafe) cast from dynamic type’
  • KT-20971 Cannot navigate to sources of compiled common dependency
  • KT-21115 Incomplete actual class should still have navigation icon to expect class
  • KT-21688 UIdentifier violates JvmDeclarationElement contract
  • KT-21874 Unexpected IDE error "Unknown type [typealias ...]"
  • KT-21958 Support "Alternative source available" for Kotlin files
  • KT-21994 Collapsed comments containing * get removed in the summary line.
  • KT-22179 For properties overridden in object literals, navigation to inherited properties is missing indication of a type they are overridden
  • KT-22214 Front-end Internal error: Failed to analyze declaration
  • KT-22230 Reformatting code to Kotlin style indents top-level typealiases with comments
  • KT-22242 Semantic highlighting uses different colors for the same 'it' variable and same color for different 'it's
  • KT-22301 Don't require space after label for lambda
  • KT-22346 Incorrect indentation for chained context extension functions (lambdas) when using Kotlin style guide
  • KT-22356 Update status of inspection "Kotlin JVM compiler configured but no stdlib dependency" after pom file update, not on re-import
  • KT-22360 MPP: with "Create separate module per source set" = No expectedBy dependency is imported not transitively
  • KT-22374 "Join lines" works incorrectly in case of line containing more than one string literal
  • KT-22473 Regression in IntelliJ Kotlin Plugin 1.2.20, settings.gradle.kts script template is wrong
  • KT-22508 Auto-formatting should insert an indentation for default parameter values
  • KT-22514 IDE Freeze related to IdeAllOpenDeclarationAttributeAltererExtension.getAnnotationFqNames()
  • KT-22557 Dead 'Apply' button, when setting code style
  • KT-22565 Cant do PsiAnchor.create on annotation in annotation
  • KT-22570 Can't add import in "Packages to Use Import with '*'" section on "Import" tab in Code Style -> Kotlin
  • KT-22593 AE when invoking find usages on constructor in decompiled java file
  • KT-22641 Auto-formatting adds extra indent to a closing square bracket on a separate line
  • KT-22734 LinkageError: "loader constraint violation: when resolving method PsiTreeUtilKt.parentOfType()" at KotlinConverter.convertPsiElement$uast_kotlin()

IDE. Debugger

  • KT-20351 Stepping over a line with two inline stdlib functions steps into the second function
  • KT-21312 Confusing Kotlin (JavaScript) run configuration
  • KT-21945 Double stop on same line during step over if inline call is present
  • KT-22967 Debugger: Evaluator fails on evaluating huge lambdas on Android

IDE. Inspections and Intentions

New Features

  • KT-18124 Inspection to get rid of unnecessary ticks in references
  • KT-22038 Inspection to replace the usage of Java Collections methods on subtypes of MutableList with the methods from Kotlin stdlib
  • KT-22152 "Create Class" quickfix should support creating the class in a new file and selecting the package for that file
  • KT-22171 Add Intention for single character substring
  • KT-22303 Inspection to detect Type!.inlineWithNotNullReceiver() calls
  • KT-22409 Intention for changing property setter accessibility

Performance Improvements

  • KT-21137 Kotlin instantiates something expensive via reflection when highlighting Java file

Fixes

  • KT-15176 Remove "Create type alias" intention when called on java class
  • KT-18007 Inspection doesn't suggest Maven Plugin for kotlin-stdlib-jre8
  • KT-18308 'Remove braces from else statement' intention breaks code
  • KT-18912 multiplatform project: Convert to enum class: header sealed class cannot convert nested objects to enum values
  • KT-21114 IOE: create actual members for expected with companion
  • KT-21600 suspend modifier should go after override in overridden suspend functions
  • KT-21881 Replace "If" with safe access intention false positive
  • KT-22054 Replace '!=' with 'contentEquals' should be replace '==' with 'contentEquals'
  • KT-22097 Redundant Unit inspection false positive for single expression function
  • KT-22159 "Replace return with 'if' expression" should not place return before expressions of type Nothing
  • KT-22167 "Add annotation target" quick fix does nothing and disappears from menu
  • KT-22221 QuickFix to remove unused constructor parameters shouldn't delete parenthesis
  • KT-22335 IOE from KotlinUnusedImportInspection.scheduleOptimizeImportsOnTheFly
  • KT-22339 Remove setter parameter type: error while creating problem descriptor
  • KT-22364 Redundant setter is not reported for overridden fields
  • KT-22484 The warning highlight for redundant !ischeck for object types isn't extended to the full operator
  • KT-22538 "Redundant type checks for object" inspection application breaks smart cast for an object's field or function

IDE. Refactorings

New Features

  • KT-17047 Refactorings for related standard "scoping functions" conversion: 'let' <-> 'run', 'apply' <-> 'also'

Fixes

  • KT-12365 Renaming invoke function should remove operator modifier and insert function call for implicit usages
  • KT-17977 Move class to upper level creates file with wrong file name
  • KT-21719 Actual typealias not renamed on expected declaration rename
  • KT-22200 Overriden function generated from completion is missing suspend modifier
  • KT-22359 Refactor / Rename file: Throwable at RenameProcessor.performRefactoring()
  • KT-22461 Rename doesn't work on private top-level members of multi-file parts
  • KT-22476 Rename it parameter fails after replacing for-each with mapNotNull
  • KT-22564 Rename doesn't warn for conflicts
  • KT-22705 Refactor/Rename: rename of invoke function with lambda parameter to get breaks an implicit call
  • KT-22708 Refactor/Rename function using some stdlib name leads to incompilable code

JavaScript

  • KT-20735 JS: kotlin.test-js integration tests terminate build on failure
  • KT-22638 Function reference not working in js from extension
  • KT-22963 KotlinJS - When statement can cause illegal break

Libraries

  • KT-22620 Add support for TestNG in kotlin.test
  • KT-16661 Performance overhead in string splitting in Kotlin versus Java?
  • KT-22042 Suboptimal Strings#findAnyOf
  • KT-21154 kotlin-test-junit doesn't provide JUnitAsserter when test body is run in another thread

Tools

  • KT-22196 kotlin-compiler-embeddable bundles outdated kotlinx.coroutines since 1.1.60
  • KT-22549 Service is dying during compilation

Tools. CLI

  • KT-19051 Suppress Java 9 illegal access warnings

Tools. Gradle

  • KT-18462 Add 'org.jetbrains.kotlin.platform.android' plugin.
  • KT-18821 Gradle plugin should not resolve dependencies at configuration time

Tools. Maven

  • KT-21581 kotlin.compiler.incremental not copying resources

Tools. Incremental Compile

  • KT-22192 Make precise java classes tracking in Gradle enabled by default

Tools. J2K

  • KT-21635 J2K: create "inspection based post-processing"

Tools. REPL

  • KT-12037 REPL crashes when trying to :load with incorrect filename

Tools. kapt

  • KT-22350 kdoc comment preceding enum method causes compilation failure
  • KT-22386 kapt3 fails when project has class named System
  • KT-22468 Kapt fails to convert array type to anonymous array element type
  • KT-22469 Kapt 1.2.20+ may fail to process classes with KDoc
  • KT-22493 Kapt: NoSuchElementException in KotlinCliJavaFileManagerImpl if class first character is dollar sign
  • KT-22582 Kapt: Enums inside enum values should be forbidden
  • KT-22711 Deprecate original kapt (aka kapt1)

1.2.21

Fixes

  • KT-22349 Android: creating new Basic activity fails with Throwable: "Inconsistent FILE tree in SingleRootFileViewProvider" at SingleRootFileViewProvider.checkLengthConsistency()
  • KT-22459 Remove .proto files from kotlin-reflect.jar

1.2.20

Android

  • KT-20085 Android Extensions: ClassCastException after changing type of view in layout XML
  • KT-20235 Error, can't use plugin kotlin-android-extensions
  • KT-20269 Mark 'kapt.kotlin.generated' as a source root automatically in Android projects
  • KT-20545 Parcelable: Migrate to canonical NEW-DUP-INVOKESPECIAL form
  • KT-20742 @Serializable and @Parcelize do not work together
  • KT-20928 @Parcelize. Verify Error for Android Api 19

Binary Metadata

  • KT-11586 Support class literal annotation arguments in AnnotationSerializer

Compiler

New Features

  • KT-17944 Allow 'expect' final member be implemented by 'actual' open member
  • KT-21982 Recognize Checker Framework declaration annotations
  • KT-17609 Intrinsic suspend val coroutineContext

Performance Improvements

  • KT-21322 for-in-char-sequence loop improvements
  • KT-21323 Decreasing range loop improvements

Fixes

  • KT-4174 Verify error on lambda with closure in local class super call
  • KT-10473 Inapplicable diagnostics for mixed JS / JVM projects
  • KT-12541 VerifyError: Bad type on operand stack for local variable captured in local class
  • KT-13454 VerifyError on capture of outer class properties in closure inside inner class constructor
  • KT-14148 VerifyError: Bad type on operand stack for anonymous type inheriting inner class
  • KT-18254 enumValueOf and enumValues throw UnsupportedOperationException when used within a non-inline function block
  • KT-18514 IllegalStateException on compile object that inherits its inner interface or class
  • KT-18639 VerifyError: Bad type on operand stack
  • KT-19188 Nondeterministic method order in class files using DefaultImpls
  • KT-19827 Strange VerifyError in simple Example
  • KT-19928 Analyze / Inspect Code: ISE "Concrete fake override public final fun ()" at BridgesKt.findConcreteSuperDeclaration()
  • KT-20433 NPE during JVM code generation
  • KT-20639 Obsolete term "native" used in error message
  • KT-20802 USELESS_CAST diagnostic in functions with expression body
  • KT-20873 False CAST_NEVER_SUCCEEDS when upcasting Nothing
  • KT-20903 Method reference to expect function results in bogus resolution ambiguity
  • KT-21105 Compiler incorrectly optimize the operator in with a floating point type range with NaN bound.
  • KT-21146 ArrayIndexOutOfBoundsException at org.jetbrains.kotlin.codegen.MemberCodegen.generateMethodCallTo(MemberCodegen.java:841)
  • KT-21267 Report pre-release errors if pre-release compiler is run with a release language version
  • KT-21321 for-in-array loop improvements
  • KT-21343 Compound assignment operator compiles incorrectly when LHS is a property imported from object
  • KT-21354 Inconsistent behavior of 'for-in-range' loop if range is an array variable modified in loop body
  • KT-21532 Enum constructor not found
  • KT-21535 SAM wrapper is not created for a value of functional type in delegating or super constructor call in secondary constructor
  • KT-21671 Inline sam wrapper during inline in another module
  • KT-21919 Invalid MethodParameters attribute generated for "$DefaultImpls" synthetic class with javaParameters=true
  • KT-20429 False-positive 'Unused return value of a function with lambda expression body' in enum constant constructor
  • KT-21827 SMAP problem during default lambda parameter inline

IDE

New Features

  • KT-4001 Allow to set arguments indent to 1 tab (currently two and not customized)
  • KT-13378 Provide ability to configure highlighting for !! in expressions and ? in types
  • KT-17928 Support code folding for primary constructors
  • KT-20591 Show @StringRes/@IntegerRes annotations in parameter info
  • KT-20952 "Navigate | Related symbol" should support expect/actual navigation
  • KT-21229 Make it possible to explicitly select "latest" language/API version
  • KT-21469 Wrap property initializers after equals sign
  • KT-14670 Support kotlinPackageName() macro in live templates
  • KT-14951 Editor: navigate actions could be available in intention menu (as done in Java)
  • KT-15320 Live templates: Add function which returns the "outer" class name
  • KT-20067 Return label hints
  • KT-20533 Show "this" and "it" type hints in lambdas.
  • KT-20614 Change location of initial parameter type hint when parameters are on multiple lines
  • KT-21949 Please add a separate Color Scheme settings for properties synthesized from Java accessors
  • KT-21974 Editor color scheme option for Kotlin typealias names

Performance Improvements

  • KT-17367 Rebuild requested for index KotlinJavaScriptMetaFileIndex
  • KT-21632 Freezing on typing
  • KT-21701 IDEA 2017.3 high CPU usage

Fixes

  • KT-9562 Wrong indent after Enter after an annotation
  • KT-12176 Formatter could reformat long primary constructors
  • KT-12862 Formatting: Weird wrapping setting for long ?: operator
  • KT-15099 Odd code formatting when chaining lambdas and splitting lines on operators
  • KT-15254 Use Platform icons for "Run" icon in gutter
  • KT-17254 Remove obsolete unfold-icons in structure view
  • KT-17838 Can't report exceptions from the Kotlin plugin 1.1.4-dev-119 in IDEA #IU-171.4424.37
  • KT-17843 Don't show parameter name hints when calling Java methods with unknown parameter names
  • KT-17964 Local variable type hints in editor for anonymous object
  • KT-17965 Do not shown argument name hints for assert
  • KT-18829 Do not show parameter name hints for mapOf
  • KT-18839 Semantic highlighting not work for local variables in init
  • KT-19012 Data Flow from here: doesn't find template usages
  • KT-19017 Data Flow from here doesn't find usage in range position of for cycle
  • KT-19018 Data Flow from here doesn't find any usages of for-variable
  • KT-19036 Data Flow from here: please find calls of extension too
  • KT-19039 Data Flow from here: please find cases when an investigated variable is transferred as a parameter into a library function
  • KT-19087 Data flow to here: usages with explicit receiver are not found
  • KT-19089 Data Flow to here: assigned values are not found if an investigated property is a delegated one
  • KT-19104 Data Flow from here: usage of parameter or variable not found when used as lambda receiver/parameter
  • KT-19106 Data Flow from here: show point of call of a function used as a parameter investigated parameter/variable
  • KT-19112 Data Flow to here for a function (or its return value) doesn't find shorten forms of assignments
  • KT-19519 Structure view is not updated properly for function classes
  • KT-19727 Code style: New line after '(' with anonymous object or multi-line lambda unexpected behavior
  • KT-19820 Strange highlightning for enum constructor
  • KT-19823 Kotlin Gradle project import into IntelliJ: import kapt generated classes into classpath
  • KT-19824 Please provide a separate icon for a common library
  • KT-19915 TODO calls not blue highlighted in lambdas/DSLs
  • KT-20096 Kotlin Gradle script: SOE after beginning of Pair definition before some script section
  • KT-20314 Kotlin formatter does not respect annotations code style settings
  • KT-20329 Multiplatform: gutter "Is subclassed by" should show expect subclass from the common module
  • KT-20380 Configure Kotlin plugin updates dialog does not open without opened project
  • KT-20521 Kotlin Gradle script: valid build.gradle.kts is red and becomes normal only after reopening the project
  • KT-20603 Facet import: when API version > language version, set API version = language version, not to 1.0
  • KT-20782 Non-atomic trees update
  • KT-20813 SAM with receiver: call with SAM usage is compiled with Gradle, but not with JPS
  • KT-20880 Add documentation quick fix should create multiline comment and place caret in right place
  • KT-20883 Provide more information in "Missing documentation" inspection message
  • KT-20884 Functions with receivers should allow [this] in KDoc
  • KT-20937 Exception thrown on RMB click on folder in Kotlin project
  • KT-20938 IDE: kotlinc.xml with KotlinCommonCompilerArguments/freeArgs: XSE: "Cannot deserialize class CommonCompilerArguments$DummyImpl" at BaseKotlinCompilerSettings.loadState()
  • KT-20953 "Choose actual" popup shows redundant information
  • KT-20985 Additional reimport is required in 2017.3/2018.1 idea after creating or importing mp project
  • KT-20987 (PerModulePackageCache miss) ISE: diagnoseMissingPackageFragment
  • KT-21002 "Highlight usages of identifier under caret" should work for "it"
  • KT-21076 Recursive Companion.ivoke() call should be marked with according icon
  • KT-21132 containsKey() in SoftValueMap considered pointless
  • KT-21150 Do not infer compiler version from build.txt
  • KT-21200 Improve Structure-view for Kotlin files
  • KT-21214 Fix funcion selection in kotlin
  • KT-21275 Don't show argument name hints in calls of methods on 'dynamic' type
  • KT-21318 Highlighting of function exit points does not work if the function is a getter for property
  • KT-21363 IDE: kotlinc.xml with KotlinCommonCompilerArguments: build fails with UOE: "Operation is not supported for read-only collection" at EmptyList.clear()
  • KT-21409 UAST: Super-call arguments are not modeled/visited
  • KT-21418 Gradle based project in IDEA 181: Kotlin facets are not created
  • KT-21441 Folding multiline strings adds a space at the start if there is not one.
  • KT-21546 java.lang.IllegalArgumentException: Unexpected container fatal IDE error
  • KT-21575 Secondary constructor call body is missing
  • KT-21645 Weird parameter hint position
  • KT-21733 Structure view is not updated
  • KT-21756 Find Usages for "type" in ts2kt provokes exception
  • KT-21770 Pasting $this into an interpolated string shouldn't escape $
  • KT-21833 Type hints shown when destructing triple with type parameters
  • KT-21852 Custom API version is lost when settings are reopen after restarting IDE
  • KT-11503 cmd+shift+enter action in .kt files does not work on empty lines
  • KT-17217 Navigate to symbol: hard to choose between a lot of extension overloads
  • KT-18674 Join Lines should join strings
  • KT-19524 "Local variable type hints" should respect static imports
  • KT-21010 Gutter "Is subclassed by" should show actual subclass from the all platform modules in IDEA 2017.3/2018.1
  • KT-21036 Throwable “Access is allowed from event dispatch thread only.” after creating nine similar classes with functions.
  • KT-21213 Multiline kdoc - intellij joins lines together without space
  • KT-21592 -Xjsr305=strict not taken into account during the kotlin files compilation in Idea (maven)
  • KT-22050 Redundant parameter type hint on SAM
  • KT-22071 Formatter insists on increasing indentation in forEach lambda
  • KT-22093 Unnecessary line wrap with new Kotlin code style
  • KT-22111 Error while indexing PsiPlainTextFileImpl cannot be cast to KtFile
  • KT-22121 Enter in empty argument list should apply normal indent if "Continuation indent for argument list" is off
  • KT-21702 KtLightAnnotation can't be converted to UAST
  • KT-19900 IntelliJ does not recognise no-arg "invokeInitializers" set in pom.xml

IDE. Completion

  • KT-13220 Completion for non-primary-constructor properties should suggest names with types instead of types
  • KT-12797 Code completion does not work for inner in base class
  • KT-16402 AssertionError on completing expression after template in string literal
  • KT-20166 Completion: property declaration completion should be greedy if tab pressed
  • KT-20506 Second smart completion suggests the same value recursively

IDE. Debugger

  • KT-17514 Debugger, evaluate value: cannot find local variable error on attempt to evaluate outer variable
  • KT-20962 NullPointerException because of nullable location in debugger
  • KT-21538 "Step into" method doesn't work after adding lambda parameter to the call
  • KT-21820 Debugger: Evaluation fails for instance properties (older Android SDKs)

IDE. Inspections and Intentions

New Features

  • KT-4580 Intention + inspection to convert between explicit and implicit 'this'
  • KT-11023 Inspection to highlight usages of Collections.sort() and replace them with .sort() method from Kotlin stdlib
  • KT-13702 Issue a warning when equals is called recursively within itself
  • KT-18449 Multiplatform project: provide a quick fix "Implement methods" for a impl class
  • KT-18828 Provide an intention action to move a companion object member to top level
  • KT-19103 Inspection to remove unnecessary suspend modifier
  • KT-20484 Add quick fix to add required target to annotation used on a type
  • KT-20492 Offer "Simplify" intention for 'when' expression where only one branch is known to be true
  • KT-20615 Inspection to detect usages of values incorrectly marked by Kotlin as const from Java code
  • KT-20631 Inspection to detect use of Unit as a standalone expression
  • KT-20644 Warning for missing const paired with val modifier for primitives and strings
  • KT-20714 Inspection for self-assigment of properties
  • KT-21023 Inspection to highlight variables / functions with implicit Nothing? type
  • KT-21510 Add inspection to add/remove this to/from bound callable
  • KT-21560 Inspection to sort modifiers
  • KT-21573 Code Style Inspection: to -> Pair function used not in infix form
  • KT-16260 Add intention to specify all types explicitly in destructuring assignment
  • KT-21547 Allow separate regex for test class and function names in IDE inspection
  • KT-21741 Inspection to detect is checks for object types
  • KT-21950 Enable quick-fixes for annotator-reported problems in "Inspect Code"
  • KT-22103 SortModifiersInspection should report annotations after modifiers

Fixes

  • KT-15941 "Convert to secondary constructor" produces invalid code for generic property with default value
  • KT-16340 "Unused receiver parameter" for invoke operator on companion object
  • KT-17161 IDE suggest to replace a for loop with forEach to aggresively
  • KT-17332 Intention to replace forEach with a 'for' loop should convert return@forEach to continue
  • KT-17730 Incorrect suggestion to replace loop with negation to any{}
  • KT-18816 IDEA suggests replacing for-in-range with stdlib operations
  • KT-18881 Invalid "Loop can be replaced with stdlib operations" warning when class has add() function
  • KT-19560 Do not warn about receiver parameter not used for companion object
  • KT-19977 Convert Lambda to reference produces red code when wrong implicit receiver is in scope
  • KT-20091 "Convert object literal to class" should create inner class if necessary
  • KT-20300 "Variable can be inlined" should not be suggested if there's a variable with the same name in nested scope
  • KT-20349 Convert lambda to reference for trailing lambda inserts parameter names for all arguments if at least one named argument was passed
  • KT-20435 False "function is never used" warning
  • KT-20622 Don't propose “Remove explicit type specification” when it can change semantic?
  • KT-20763 Wrong resulting code for "add star projection" quick-fix for inner class with generic outer one
  • KT-20887 Missing documentation warning shouldn't be triggered for a member of a private class
  • KT-20888 Documentation should be inherited from Map.Entry type
  • KT-20889 Members of anonymous objects should be treated as private and not trigger "Missing documentation" warning
  • KT-20894 "Add type" quick fix does not take into account vararg modifier
  • KT-20901 IntelliJ autocorrect to add parameter to data class constructor should make the parameter a val
  • KT-20981 False positive for "redundant super" in data class
  • KT-21025 Kotlin UAST violates JvmDeclarationUElement contract by employing JavaUAnnotation
  • KT-21061 Cant work with UElement.kt in IDEA with 1.2.0-rc-39: "Stub index points to a file without PSI"
  • KT-21104 Do not propose to make local lateinit var immutable
  • KT-21122 QuickFix to create member for expect class shouldn't add body
  • KT-21159 Fix signature invoked from Java breaks Kotlin code
  • KT-21179 Remove empty class body on companion object breaks code
  • KT-21192 Confusing "unused expression"
  • KT-21237 ReplaceWith incorrectly removes property assignment
  • KT-21332 Create from usage: do not propose to create abstract function in non-abstract class
  • KT-21373 'Remove redundant let' quickfix does not work with in
  • KT-21497 Inspection considers if block to be a lambda
  • KT-21544 "Add type" quick fix incorrectly processes vararg modifier with primitive type array initializer
  • KT-21603 "Join declaration and assignment" should remove 'lateinit' for 'var'
  • KT-21612 The "Remove redundant getter" inspection removes the type specifier
  • KT-21698 Create interface shouldn't suggest to declare it inside a class which implements it
  • KT-21726 "arrayOf can be replaced with literal" inspection quick fix produces incompilable result in presence of spread operator
  • KT-21727 "Redundant spread operator" inspection does not report array literal
  • KT-12814 Specify type explicitly produces erroneous code when platform type overrides not-null type
  • KT-15180 Incorrect quickfix 'Specify type explicitly'
  • KT-17816 "Replace elvis with if" produce nasty code when safe casts are involved
  • KT-18396 Bad quickfix for wrong nested classes in inner class
  • KT-19073 No-op quick fix for "Convert lambda to reference" IDE suggestion
  • KT-19283 Kotlin KProperty reference cannot be converted to lambda
  • KT-19736 Rephrase text in the unconventional property name inspection
  • KT-19771 Preserve old "Convert to expression body" range
  • KT-20437 Naming convetions inspection: Add separate inspection for top-level and object properties
  • KT-20620 Replace operator with function call breaks code
  • KT-21414 OverridersSearch attempts to create nameless fake light method
  • KT-21780 Wrong redundant setter inspection
  • KT-21837 Don't require documentation on tests and test classes
  • KT-21929 Inappropriate quick fix for a sealed class instantiation
  • KT-21983 Do not suggest to remove explicit Unit type for expression body
  • KT-16619 Incorrect 'accessing non-final property in constructor' warning

IDE. Refactorings

New Features

  • KT-20095 Allow conversion of selected companion methods to methods with @JvmStatic

Fixes

  • KT-15840 Introduce type alias: don't change not-nullable type with nullable typealias
  • KT-17212 Refactor / Inline Function: with 1 occurrence both "Inline all" and "Inline this only" are suggested
  • KT-18594 Refactor / Extract (Functional) Parameter are available for annotation arguments, but fail with AE: "Body element is not found"
  • KT-20146 IAE “parameter 'name' of NameUtil.splitNameIntoWords must not be null” at renaming class
  • KT-20335 Refactor → Extract Type Parameter: “AWT events are not allowed inside write action” after processing duplicates
  • KT-20402 Throwable “PsiElement(IDENTIFIER) by KotlinInplaceParameterIntroducer” on calling Refactor → Extract Parameter for default values
  • KT-20403 AE “Body element is not found” on calling Refactor → Extract Parameter for default values in constructor of class without body
  • KT-20790 Refactoring extension function/property overagressive
  • KT-20766 Typealias end-of-line is removed when moving function and typealias to new file
  • KT-21071 Cannot invoke move refactoring on a typealias
  • KT-21162 Adding parameters to kotlin data class leads to compilation error
  • KT-21288 Change Signature refactoring fails to change signature of overriders
  • KT-21334 Extract variable doesn't take into account the receiver of a bound callable reference
  • KT-21371 Rename refactoring sometimes erases identifier being renamed when popping up name proposals
  • KT-21530 KNPE in introduce variable
  • KT-21508 java.lang.AssertionError: PsiLiteralExpression on property safe delete in Idea 173
  • KT-21536 Rename refactoring sometimes doesn't quite work
  • KT-21604 Rename package missing title
  • KT-21963 Refactor / Inline Property: "null" in place of number of occurrences of local variable references
  • KT-21964 Refactor / Inline: on declaration of element with one usage "Inline and keep" choice is not suggested
  • KT-21965 Refactor / Inline: wording in dialog could be unified

JavaScript

New Features

  • KT-20210 [JS] Ultra-fast builds for development

Performance Improvements

  • KT-2218 JS: Optimise in checks for number ranges
  • KT-20932 JS: Make withIndex() on arrays intrinsic
  • KT-21160 JS: generate switch statement for when statement when possible

Fixes

  • KT-7653 JS: TypeError when try to access to "simple" property (w/o backing field at runtime)
  • KT-18963 javascript project: No output directory found for Module 'xxx_test' production on JPS compiling
  • KT-19290 JS integer overflow for unaryMinus
  • KT-19826 JS: don't remove debugger statement from suspend functions
  • KT-20580 JS: JSON.stringify could improve 'replacer' argument handling
  • KT-20694 JS: add missed parts to JS Date
  • KT-20737 JS: cache KProperty instances that used to access to delegated property
  • KT-20738 JS: remove useless calls to constructor of KProperty* (PropertyMetadata) when it generated for access to delegated property
  • KT-20854 val parameters of type kotlin.Char aren't boxed
  • KT-20898 JS: inline js with for without initializer causes compiiler to crash
  • KT-20905 JS: compiler crashes on invalid inline JavaScript code instead of reporting error
  • KT-20908 JS frontend crashes on uncompleted call to function with reified parameters
  • KT-20978 JS: inline doesn't work for Array's constructor when it called through typealias
  • KT-20994 JS extension property in interface problem
  • KT-21004 JS: don't use short-circuit operators when translating Boolean.and/or(Boolean)
  • KT-21026 JS: wrong code generated for suspend fun that calls inline suspend fun as a tail call.
  • KT-21041 'TypeError: ... is not a function' for lambda with closure passed as an argument to super type constructor
  • KT-21043 JS: inlining coroutine from other module sometimes causes incorrect code generated
  • KT-21093 Kotlin.JS doesnt escape ‘in’ identifier and conflicts with in keyword
  • KT-21245 JS: interface function with default parameter, overridden by other interface indirectly cannot be found at runtime
  • KT-21307 JS DCE does not remap paths to sources
  • KT-21309 JS: incorrect source map generated for inline lambda when it's last expression is a statement-like expression (e.g. when or try/catch)
  • KT-21317 JS: safe call to suspend function returning Unit causes incorrect
  • KT-21421 JS: accesors of overridden char properties with backing fields aren't boxed
  • KT-21468 JS: don't use enum entry's name for when over external enums
  • KT-21850 JS: support nested tests

Language design

  • KT-10532 ISE by ThrowingLexicalScope at compile time with specific override chain

Libraries

  • KT-20864 Provide ReadOnly and Mutable annotations to control java collection mutability in kotlin
  • KT-18789 Delegating val to out-projected MutableMap resulted in NPE due to cast to Nothing
  • KT-21828 JS: The List produced by the IntArray.asList function caused weird results
  • KT-21868 Eliminate potential data race in SafePublicationLazyImpl
  • KT-21918 Make toTypedArray() implementation more efficient and thread-safe
  • KT-22003 JS: Replace Regex constructor-like functions with secondary constructors
  • JS: Volatile and Synchornized annotations are moved to kotlin.jvm package with the migration type aliases provided
  • KT-16348 Provide String.toBoolean() conversion in JS and common platforms
  • Add missing declarations to kotlin-stdlib-common, those that are already supported in both platforms
    • KT-21191 Add missing exception constructors to common and JS declarations
    • KT-21861 Provide NumberFormatException in common projects and make it inherit IllegalArgumentException in all platforms
    • Add missing pattern and options properties to common Regex
  • KT-20968 Improve docs for String.format and String.Companion.format

Reflection

  • KT-20875 Support Void.TYPE as underlying Class object for KClass
  • KT-21453 NPE in TypeSignatureMappingKt#computeInternalName

Tools

  • KT-20298 Lint warning when using @Parcelize with delegated properties
  • KT-20299 Android non-ASCII TextView Id Unresolved Reference Bug
  • KT-20717 @Parcelize Creator.newArray method is generated incorrectly
  • KT-20751 kotlin-spring compiler plugin does not open @Validated classes
  • KT-21171 _$_findViewCache and _$_findCachedViewById are created in Activity subclass without Kotlin Android Extensions.
  • KT-21628 Can't find referenced class kotlin.internal.annotations.AvoidUninitializedObjectCopyingCheck
  • KT-21777 RMI "Connection refused" errors with daemon
  • KT-21992 @Transient warning for lazy property

Tools. Gradle

  • KT-20892 Support module name option in K2MetadataCompilerArguments
  • KT-17621 Incremental compilation is very slow when Java file is modified
  • KT-14125 Android-extensions don't track xml changes well
  • KT-20233 Kapt: using compiler in-process w/ gradle leads to classloader conflict
  • KT-21009 Running Gradle build with clean prevents KotlinCompile tasks from loading from cache
  • KT-21596 Improve Kapt Gradle Plugin to be more friendly for Kotlin-DSL
  • KT-15753 Support cacheable tasks
  • KT-17656 Kotlin and Kotlin Android plugin not using available build caches
  • KT-20017 Support local (non-relocatable) Gradle build cache
  • KT-20598 Missing input annotations on AbstractKotlinCompileTool
  • KT-20604 Kotlin plugin breaks relocatability and compile avoidance for Java compile tasks
  • KT-21203 Kotlin gradle plugin does not create proper Ivy metadata for dependencies
  • KT-21261 Gradle plugin 1.1.60 creates "build-history.bin" outside project.buildDir
  • KT-21805 Gradle plugin does not work with JDK 1.7 (KaptGradleModel)
  • KT-21806 Gradle Plugin: Using automatic dependency versions with 'maven-publish' plugin does not include dependency version in generated publication POMs

Tools. Incremental Compile

  • KT-20840 Multiplatform IC fails if expected or actual file is modified separately
  • KT-21622 Make IC work more accurately with changes of Android layouts xml files
  • KT-21699 JS IC produces different source maps when enum usage is compiled separately
  • KT-20633 Class is not recompiled

Tools. J2K

  • KT-21502 Inspection to convert map.put(k, v) into map[k] = v
  • KT-19390 Character and string concatenation in Java is converted to code with multiple type errors in Kotlin
  • KT-19943 Redundant 'toInt' after converting explicit Integer#intValue call

Tools. JPS

  • KT-21574 JPS build: API version in project settings is ignored
  • KT-21841 JPS throws exception creating temporary file for module
  • KT-21962 Source file dependencies (lookups) are not tracked in JPS when Kotlin daemon is used

Tools. Maven

  • KT-20816 Repeated Maven Compiles With Kapt Fail

Tools. REPL

  • KT-17561 Embedding kotlin-script-utils may cause version conflicts e.g. with guava
  • KT-17921 The JSR 223 scripting engine fails to eval anything after encountering an unresolved reference
  • KT-21075 KotlinJsr223JvmLocalScriptEngineFactory does not well with kotlin-compiler-embeddable
  • KT-21141 Kotlin script: KotlinJsr223JvmLocalScriptEngine.state.history.reset() seems not clearing the compiler cache

Tools. kapt

Fixes

  • KT-18791 Kapt: Constants from R class should not be inlined
  • KT-19203 Kapt3 generator doesn't seem to print log level lower to Mandatory Warning
  • KT-19402 kapt.correctErrorTypes makes typealias not work.
  • KT-19505 Kapt doesn't always stub classes about to be generated.
  • KT-19518 Kapt: Support 'correctErrorTypes' option in annotations
  • KT-20257 Kapt is incompatible with compiler plugins
  • KT-20749 Kapt: Support Java 9
  • KT-21144 Kapt: Compilation error with maven plugin (Java 9 compatibility)
  • KT-21205 KDoc unavailable via javax.lang.model.util.Elements#getDocComment(Element e)
  • KT-21262 Kapt: Remove artificial KaptError exception on errors from annotation processor
  • KT-21264 Kapt: -Xmaxerrs javac option is not propagated properly
  • KT-21358 Kapt: Support import directive with aliases (correctErrorTypes)
  • KT-21359 Kapt: Filter out non-package imports whenever possible (correctErrorTypes)
  • KT-21425 kapt warning when assembling unit tests
  • KT-21433 Annotations on enum constants are not kept on the generated stub
  • KT-21483 Kapt: Loading resources doesn't work without restarting the gradle daemon
  • KT-21542 Kapt: Report additional info about time spent in each annotation processor
  • KT-21565 Kapt, Maven: Support passing arguments for annotation processors
  • KT-21566 Kapt, Maven: Support passing Javac options
  • KT-21729 Error message says "androidProcessor" should be "annotationProcessor"
  • KT-21936 Kapt 1.2.20-eap: cannot find symbol @KaptSignature
  • KT-21735 Kapt cache not cleared
  • KT-22056 Applying Kapt plugin causes RuntimeException on Gradle import: "Kapt importer for generated source roots failed, source root name: debug" at KaptProjectResolverExtension.populateAndroidModuleModelIfNeeded()
  • KT-22189 ISE from com.sun.tools.javac.util.Context.checkState when switching from 1.2.10 to 1.2.20-eap-33

1.2.10

Compiler

  • KT-20821 Error while inlining function reference implicitly applied to this
  • KT-21299 Restore adding JDK roots to the beginning of the classpath list

IDE

  • KT-21180 Project level api/language version settings are erroneously used as default during Gradle import
  • KT-21335 Fix exception on Project Structure view open
  • KT-21610 Fix "Could not determine the class-path for interface KotlinGradleModel" on Gradle sync
  • Optimize dependency handling during import of Gradle project

JavaScript

  • KT-21493 Losing lambda defined in inline function after incremental recompilation

Tools. CLI

  • KT-21495 Bash scripts in Kotlin v1.2 compiler have Windows line terminators
  • KT-21537 javac 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

1.2

Android

  • KT-20974 NSME "AndroidModuleModel.getMainArtifact" on Gradle refresh
  • KT-20975 IAE "Missing extension point" on Gradle refresh

Compiler

  • KT-6359 Provide the way to share code with different targets(JVM, JS)

IDE

  • KT-21300 IDEA slow down in Kotlin + Spring project
  • KT-20450 Exception in UAST during function inlining
  • KT-20789 Can't navigate to inline call/inline use site when runner is delegated to Gradle
  • KT-21236 New project button doesn't work with Kotlin plugin enabled and Gradle plugin disabled
  • KT-21263 "Configure Kotlin Plugin Updates" suggests incompatible plugin for AS 3.0

Tools. JPS

  • KT-20757 Rebuild when language/api version is changed

1.2-RC2

Compiler

  • KT-20844 VerifyError on Android after upgrading to 1.2.0-beta-88
  • KT-20895 NPE in Kotlin 1.2-beta88 PseudocodeVariablesData.kt:337
  • KT-21377 Create fallback flag for "Illegal smart cast is allowed after assignment in try block"

IDE

  • KT-18719 Configure Kotlin in Gradle project to 1.2-Mx: add repository mavenCentral() to buildscript
  • KT-20782 Exception when working with routing in ktor (non-atomic trees update)
  • KT-20966 ISE: Facade class not found from Kotlin test files
  • KT-20967 Kotlin plugin upgrade breaks Gradle refresh
  • KT-20990 String literal in string template causes ISE
  • KT-21028 Add kotlin-stdlib-jre7/8 instead of kotlin-stdlib-jdk7/8 for Kotlin versions below 1.2
  • KT-21383 Unsupported method: Library.getProject() when importing Anko project
  • Downgrade "use expression body" inspection to INFORMATION default level

IDE. Debugger

  • KT-20962 NullPointerException because of nullable location in debugger

IDE. Inspections and Intentions

  • KT-20803 Create actual declaration in the same source root as expect declaration

IDE. Refactorings

  • KT-20979 Move class refactoring doesn't work anymore

Libraries

  • Remove deprecated pairwise function

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-embeddable artifact (compatible with kotlin-compiler-embeddable)
  • Return kotlin-annotation-processing artifact back (compatible with CLI Kotlin compiler)

1.2-RC

Compiler

Fixes

  • KT-20774 "::foo.isInitialized" for lateinit member properties produces incorrect bytecode
  • KT-20826 Can't compile Ultimate Idea with Kotlin 1.2
  • KT-20879 Compiler problem in when-expressions
  • KT-20959 Regression: Unexpected diagnostic NINITIALIZED_ENUM_COMPANION reported in 1.1.60 & 1.2.0-rc
  • KT-20651 Don'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-19599 No indentation for multiline collection literal
  • KT-20346 Can't build tests in common code due to missing org.jetbrains.kotlin:kotlin-test-js testCompile dependency in JS
  • KT-20550 Spring: "Navigate to autowired candidates" gutter action is missed (IDEA 2017.3)
  • KT-20566 Spring: "Navigate to the spring beans declaration" gutter action for @ComponentScan is missed (IDEA 2017.3)
  • KT-20843 Kotlin TypeDeclarationProvider may stop other declarations providers execution
  • KT-20906 Find symbol by name doesn't work
  • KT-20920 UAST: SOE Thrown in JavaColorProvider
  • KT-20922 Couldn't match ClsMethodImpl from Kotlin test files
  • KT-20929 Import Project from Gradle wizard: the same page is shown twice
  • KT-20833 MP project: add dependency to kotlin-test-annotation-common to common module

IDE. Completion

  • KT-18458 Spring: code completion does not suggest bean names inside @Qualifier before function parameter

IDE. Inspections and Intentions

  • KT-20899 Code Cleanup fails to convert Circlet codebase to 1.2
  • KT-20949 CCE from UAST (File breadcrumbs don't update when file tree does)

IDE. Refactorings

  • KT-20251 Kotlin Gradle script: Refactor → Inline works incorrect when you need to inline all function occurrences

JavaScript

  • KT-2976 Suggestion for cleaner style to implement !! operator
  • KT-5259 JS: RTTI may be break by overwriting constructor field
  • KT-17475 JS: object and companion object named "prototype" cause exceptions
  • KT-18095 JS: Wrong behavior of fun named "constructor"
  • KT-18105 JS: inner class "length" cause runtime exception
  • KT-20625 JS: Interface function with default parameter, overridden by other interface cannot be found at runtime
  • KT-20820 JS: IDEA project doesn't generate paths relative to .map

Libraries

  • KT-4900 Finalize math operation parameter names

Tools. JPS

  • KT-20852 IllegalArgumentException: URI has an authority component on attempt to jps compile the gradle project with javascript module

Tools. kapt

  • KT-20877 Butterknife: UninitializedPropertyAccessException: "lateinit property has not been initialized" for field annotated with @BindView.

1.2-Beta2

Multiplatform projects

New Features

  • KT-20616 Compiler options for KotlinCompileCommon task
  • KT-15522 Treat expect classes without explicit constructors as not having constructors at all
  • KT-16099 Do not require obvious override of super-interface methods in non-abstract expect class
  • KT-20618 Rename implement to expectedBy in gradle module dependency

Fixes

  • KT-16926 'implement' dependency is not transitive when importing gradle project to IDEA
  • KT-20634 False error about platform project implementing non-common project
  • KT-19170 Forbid private expected declarations
  • KT-20431 Prohibit inheritance by delegation in 'expect' classes
  • KT-20540 Report errors about incompatible constructors of actual class
  • KT-20398 Do not highlight declarations with not implemented implementations with red during typing
  • KT-19937 Support "implement expect class" quickfix for nested classes
  • KT-20657 Actual annotation with all parameters that have default values doesn't match expected annotation with no-arg constructor
  • KT-20680 No actual class member: inconsistent modality check
  • KT-18756 multiplatform project: compilation error on implementation of extension property in javascript client module
  • KT-17374 Too many "expect declaration has no implementation" inspection in IDE in a multi-platform project
  • KT-18455 Multiplatform project: show gutter Navigate to implementation on expect side of method in the expect class
  • KT-19222 Useless tooltip on a gutter icon for expect declaration
  • KT-20043 multiplatform: No H gutter if a class has nested/inner classes inherited from it
  • KT-20164 expect/actual navigation does not work when actual is a typealias
  • KT-20254 multiplatform: there is no link between expect and actual classes, if implementation has a constructor when expect doesn't
  • KT-20309 multiplatform: ClassCastException on mouse hovering on the H gutter of the actual secondary constructor
  • KT-20638 Context menu in common module: NSEE: "Collection contains no element matching the predicate." at KotlinRunConfigurationProducerKt.findJvmImplementationModule()
  • KT-18919 multiplatform project: expect keyword is lost on converting to object
  • KT-20008 multiplatform: Create expect class implementation should add actual keyword at secondary constructors
  • KT-20044 multiplatform: Create expect class implementation should add actual constructor at primary constructor
  • KT-20135 "Create expect class implementation" should open created class in editor
  • KT-20163 multiplatform: it should be possible to create an implementation for overloaded method if for one method implementation is present already
  • KT-20243 multiplatform: quick fix Create expect interface implementation should add actual keyword at interface members
  • KT-20325 multiplatform: Quick fix Create actual ... should specify correct classifier name for object, enum class and annotation class

Compiler

New Features

  • KT-16028 Allow to have different bodies of inline functions inlined depending on apiVersion

Performance Improvements

  • KT-20462 Don't create an array copy for '*(...)'

Fixes

  • KT-13644 Information from explicit cast should be used for type inference
  • KT-14697 Use-site targeted annotation is not correctly loaded from class file
  • KT-17981 Type parameter for catch parameter possible when exception is nested in generic, but fails in runtime
  • KT-19251 Stack spilling in constructor arguments breaks Quasar
  • KT-20387 Wrong argument generated for accessor call of a protected generic 'operator fun get/set' from base class with primitive type as type parameter
  • KT-20491 Incorrect synthetic accessor generated for a generic base class function specialized with primitive type
  • KT-20651 "Don't know how to generate outer expression" for enum-values with non-trivial self-closures
  • KT-20752 Do not register new kinds of smart casts for unstable values

IDE

New Features

  • KT-19146 Parameter hints could be shown for annotation

Fixes

  • KT-19207 "Configure Kotlin in project" should add "requires kotlin.stdlib" to module-info for Java 9 modules
  • KT-19213 Formatter/Code Style: space between type parameters and where is not inserted
  • KT-19216 Parameter name hints should not be shown for functional type invocation
  • KT-20448 Exception in UAST during reference search in J2K
  • KT-20543 java.lang.ClassCastException on usage of array literals in Spring annotation
  • KT-20709 Loop in parent structure when converting a LITERAL_STRING_TEMPLATE_ENTRY

IDE. Completion

  • KT-17165 Support array literals in annotations in completion

IDE. Debugger

  • KT-18775 Evaluate expression doesn't allow access to properties of private nested objects, including companion

IDE. Inspections and Intentions

New Features

  • KT-20108 Support "add requires directive to module-info.java" quick fix on usages of non-required modules in Kotlin sources
  • KT-20410 Add inspection for listOf().filterNotNull() to replace it with listOfNotNull()

Fixes

  • KT-16636 Remove parentheses after deleting the last unused constructor parameter
  • KT-18549 "Add type" quick fix adds non-primitive Array type for annotation parameters
  • KT-18631 Inspection to convert emptyArray() to empty literal does not work
  • KT-18773 Disable "Replace camel-case name with spaces" intention for JS and common projects
  • KT-20183 AE “Classifier descriptor of a type should be of type ClassDescriptor” on adding element to generic collection in function
  • KT-20315 "call chain on collection type may be simplified" generates code that does not compile

JavaScript

Fixes

  • KT-8285 JS: don't generate tmp when only need one component
  • KT-8374 JS: some Double values converts to Int differently on JS and JVM
  • KT-14549 JS: Non-local returns from secondary constructors don't work
  • KT-15294 JS: parse error in js() function
  • KT-17629 JS: Equals function (==) returns true for all primitive numeric types
  • KT-17760 JS: Nothing::class throws error
  • KT-17933 JS: toString, hashCode method and simplename property of KClass return senseless results for some classes
  • KT-18010 JS: JsName annotation in interfaces can cause runtime exception
  • KT-18063 Inlining does not work properly in JS for suspend functions from another module
  • KT-18548 JS: wrong string interpolation with generic or Any parameters
  • KT-19772 JS: wrong boxing behavior for open val and final fun inside open class
  • KT-19794 runtime crash with empty object (Javascript)
  • KT-19818 JS: generate paths relative to .map file by default (unless "-source-map-prefix" is used)
  • KT-19906 JS: rename compiler option "-source-map-source-roots" to avoid misleading since sourcemaps have field called "sourceRoot"
  • KT-20287 Functions don't actually return Unit in Kotlin-JS -> unexpected null problems vs JDK version
  • KT-20451 KotlinJs - interface function with default parameter, overridden by implementor, can't be found at runtime
  • KT-20527 JS: use prototype chain to check that object implements kotlin interface
  • KT-20650 JS: compiler crashes in Java 9 with NoClassDefFoundError
  • KT-20653 JS: compiler crashes in Java 9 with TranslationRuntimeException

Language design

  • KT-20171 Deprecate assigning single elements to varargs in named form

Libraries

  • KT-19696 Provide a way to write multiplatform tests
  • KT-18961 Closeable.use should call addSuppressed
  • KT-2460 PR-1300 shuffle and fill extensions for MutableList now also available in JS
  • PR-1230 Add assertSame and assertNotSame methods to kotlin-test

Tools. Gradle

  • KT-20553 Rename warningsAsErrors compiler option to allWarningsAsErrors
  • KT-20217 src/main/java and src/test/java source directories are no longer included by default in Kotlin/JS and Kotlin/Common projects

Tools. Incremental Compile

  • KT-20654 AndroidStudio: NSME “PsiJavaModule.getName()Ljava/lang/String” on calling simple Kotlin functions like println(), listOf()

Binary Metadata

  • KT-20547 Write pre-release flag into class files if language version > LATEST_STABLE

1.2-Beta

Android

New Features

  • KT-20051 Quickfixes to support @Parcelize

Fixes

  • KT-19747 Android extensions + Parcelable: VerifyError in case of RawValue annotation on a type when it's unknown how to parcel it
  • KT-19899 Parcelize: Building with ProGuard enabled
  • KT-19988 [Android Extensions] inner class LayoutContainer causes NoSuchMethodError
  • KT-20002 Parcelize explodes on LongArray
  • KT-20019 Parcelize does not propogate flags argument when writing nested Parcelable
  • KT-20020 Parcelize does not use primitive array read/write methods on Parcel
  • KT-20021 Parcelize does not serialize Parcelable enum as Parcelable
  • KT-20022 Parcelize should dispatch directly to java.lang.Enum when writing an enum.
  • KT-20034 Application installation failed (INSTALL_FAILED_DEXOPT) in Android 4.3 devices if I use Parcelize
  • KT-20057 Parcelize should use specialized write/create methods where available.
  • KT-20062 Parceler should allow otherwise un-parcelable property types in enclosing class.
  • KT-20170 UAST: Getting the location of a UIdentifier is tricky

Compiler

  • KT-4565 Support smart casting of safe cast's subject (and also safe call's receiver)
  • KT-8492 Null check should work after save call with elvis in condition
  • KT-9327 Need a way to check whether a lateinit property was assigned
  • KT-14138 Allow lateinit local variables
  • KT-15461 Allow lateinit top level properties
  • KT-7257 NPE when accessing properties of enum from inner lambda on initialization
  • 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-20155 Confusing diagnostics on a nested interface in inner class

IDE

  • KT-14175 Surround with try ... catch (... finally) doesn't work for expressions
  • KT-20308 New Gradle with Kotlin DSL project wizard
  • KT-18353 Support UAST for .kts files
  • KT-19823 Kotlin Gradle project import into IntelliJ: import kapt generated classes into classpath
  • KT-20185 Stub and PSI element type mismatch for "var nullableSuspend: (suspend (P) -> Unit)? = null"

Language design

  • KT-14486 Allow smart cast in closure if a local variable is modified only before it (and not after or inside)
  • KT-15667 Support "::foo" as a short-hand syntax for bound callable reference to "this::foo"
  • KT-16681 kotlin allows mutating the field of read-only property

Libraries

  • KT-19258 Java 9: module-info.java with requires kotlin.stdlib causes compiler to fail: "module reads package from both kotlin.reflect and kotlin.stdlib"

Tools

  • KT-19692 kotlin-jpa plugin doesn't support @MappedSuperclass annotation
  • KT-20030 Parcelize can directly reference writeToParcel and CREATOR for final, non-Parcelize Parcelable types in same compilation unit.
  • KT-19742 [Android extensions] Calling clearFindViewByIdCache causes NPE
  • KT-19749 Android extensions + Parcelable: NoSuchMethodError on attempt to pack into parcel a serializable object
  • KT-20026 Parcelize overrides describeContents despite being already implemented.
  • KT-20027 Parcelize uses wrong classloader when reading parcelable type.
  • KT-20029 Parcelize should not directly reference parcel methods on types outside compilation unit
  • KT-20032 Parcelize does not respect type nullability in case of Parcelize parcelables

Tools. CLI

  • KT-10563 Support a command line argument -Werror to treat warnings as errors

Tools. Gradle

  • KT-20212 Cannot access internal components from test code

Tools. kapt

  • KT-17923 Reference to Dagger generated class is highlighted red
  • KT-18923 Kapt: Do not use the Kotlin error message collector to issue errors from kapt
  • KT-19097 Request: Decent support of kapt.kotlin.generated on Intellij/Android Studio
  • KT-20001 kapt generate stubs Gradle task does not depend on the compilation of sub-project kapt dependencies

1.1.60

Android

New Features

  • KT-20051 Quickfixes to support @Parcelize

Fixes

  • KT-19747 Android extensions + Parcelable: VerifyError in case of RawValue annotation on a type when it's unknown how to parcel it
  • KT-19899 Parcelize: Building with ProGuard enabled
  • KT-19988 [Android Extensions] inner class LayoutContainer causes NoSuchMethodError
  • KT-20002 Parcelize explodes on LongArray
  • KT-20019 Parcelize does not propogate flags argument when writing nested Parcelable
  • KT-20020 Parcelize does not use primitive array read/write methods on Parcel
  • KT-20021 Parcelize does not serialize Parcelable enum as Parcelable
  • KT-20022 Parcelize should dispatch directly to java.lang.Enum when writing an enum.
  • KT-20034 Application installation failed (INSTALL_FAILED_DEXOPT) in Android 4.3 devices if I use Parcelize
  • KT-20057 Parcelize should use specialized write/create methods where available.
  • KT-20062 Parceler should allow otherwise un-parcelable property types in enclosing class.

Compiler

Performance Improvements

  • KT-20462 Don't create an array copy for '*(...)'

Fixes

  • KT-14697 Use-site targeted annotation is not correctly loaded from class file
  • KT-17680 Android Studio and multiple tests in single file
  • KT-19251 Stack spilling in constructor arguments breaks Quasar
  • KT-19592 Apply JSR 305 default nullability qualifiers with to generic type arguments if they're applicable for TYPE_USE
  • KT-20016 JSR 305: default nullability qualifiers are ignored in TYPE_USE and PARAMETER positions
  • KT-20131 Support @NonNull(when = NEVER) nullability annotation
  • KT-20158 Preserve flexibility for Java types annotated with @NonNull(when = UNKNOWN)
  • KT-20337 No multifile class facade is generated for files with type aliases only
  • KT-20387 Wrong argument generated for accessor call of a protected generic 'operator fun get/set' from base class with primitive type as type parameter
  • KT-20418 Wrong code generated for literal long range with mixed integer literal ends
  • KT-20491 Incorrect synthetic accessor generated for a generic base class function specialized with primitive type
  • KT-20651 "Don't know how to generate outer expression" for enum-values with non-trivial self-closures
  • KT-20707 Support when by enum in kotlin scripts
  • KT-20879 Compiler problem in when-expressions

IDE

New Features

  • KT-14175 Surround with try ... catch (... finally) doesn't work for expressions
  • KT-15769 Join lines could "convert to expression body"
  • KT-19134 IntelliJ Color Scheme editor - allow changing color of colons and double colons
  • KT-20308 New Gradle with Kotlin DSL project wizard

Fixes

  • KT-15932 Attempt to rename private property finds unrelated usages
  • KT-18996 After Kotlin compiler settings change: 'Apply' button doesn't work
  • KT-19458 Resolver for 'completion/highlighting in ScriptModuleInfo for build.gradle.kts / JVM' does not know how to resolve LibraryInfo
  • KT-19474 Kotlin Gradle Script: highlighting fails on unresolved references
  • KT-19823 Kotlin Gradle project import into IntelliJ: import kapt generated classes into classpath
  • KT-19958 Android: kotlinOptions from build.gradle are not imported into facet
  • KT-19972 AssertionError “Resolver for 'completion/highlighting in ModuleProductionSourceInfo(module=Module: 'kotlin-pure_main') for files dummy.kt for platform JVM' does not know how to resolve SdkInfo“ on copying Kotlin file with kotlin.* imports from other project
  • KT-20112 maven dependency type test-jar with scope compile not
  • KT-20185 Stub and PSI element type mismatch for "var nullableSuspend: (suspend (P) -> Unit)? = null"
  • KT-20199 Cut action is not available during indexing
  • KT-20331 Wrong EAP repository
  • KT-20346 Can't build tests in common code due to missing org.jetbrains.kotlin:kotlin-test-js testCompile dependency in JS
  • KT-20419 Android Studio plugin 1.1.50 show multiple gutter icon for the same item
  • KT-20519 Error “Parameter specified as non-null is null: method ModuleGrouperKt.isQualifiedModuleNamesEnabled” on creating Gradle (Kotlin DSL) project from scratch
  • KT-20550 Spring: "Navigate to autowired candidates" gutter action is missed (IDEA 2017.3)
  • KT-20566 Spring: "Navigate to the spring beans declaration" gutter action for @ComponentScan is missed (IDEA 2017.3)
  • KT-20621 Provide automatic migration from JetRunConfigurationType to KotlinRunConfigurationType
  • KT-20648 Do we need a separate ProjectImportProvider for gradle kotlin dsl projects?
  • KT-20782 Non-atomic trees update
  • KT-20789 Can't navigate to inline call/inline use site when runner is delegated to Gradle
  • KT-20843 Kotlin TypeDeclarationProvider may stop other declarations providers execution
  • KT-20929 Import Project from Gradle wizard: the same page is shown twice

IDE. Completion

  • KT-16383 IllegalStateException: Failed to create expression from text: '' on choosing ByteArray from completion list
  • KT-18458 Spring: code completion does not suggest bean names inside @Qualifier before function parameter
  • KT-20256 java.lang.Throwable “Invalid range specified” on editing template inside string literal

IDE. Inspections and Intentions

New Features

  • KT-14695 Simplify comparison intention produces meaningless statement for assert()
  • KT-17204 Add Assign to property quickfix
  • KT-18220 Add data modifier to a class quickfix
  • KT-18742 Add quick-fix for CANNOT_CHECK_FOR_ERASED
  • KT-19735 Add quickfix for type mismatch that converts Sequence/Array/List
  • KT-20259 Show warning if arrays are compared by '!='

Fixes

  • KT-10546 Wrong "Unused property" warning on using inline object syntax
  • KT-16394 "Convert reference to lambda" generates wrong code
  • KT-16808 Intention "Remove unnecessary parantheses" is erroneously proposed for elvis operator on LHS of in operator if RHS of elvis is return with value
  • KT-17437 Class highlighted as unused even if Companion methods/fields really used
  • KT-19377 Inspections are run for Kotlin Gradle DSL sources
  • KT-19420 Kotlin Gradle script editor: suggestion to import required class from stdlib fails with AE: ResolverForProjectImpl.descriptorForModule()
  • KT-19626 (Specify type explicitly) Descriptor was not found for VALUE_PARAMETER
  • KT-19674 'Convert property initializer to getter' intention fails on incompilable initializer with AssertionError at SpecifyTypeExplicitlyIntention$Companion.addTypeAnnotationWithTemplate()
  • KT-19782 Surround with if else doesn't work for expressions
  • KT-20010 'Replace safe access expression with 'if' expression' IDEA Kotlin plugin intention may failed
  • KT-20104 "Recursive property accessor" reports false positive when property reference is used in the assignment
  • KT-20218 AE on calling intention “Convert to secondary constructor” for already referred argument
  • KT-20231 False positive 'Redundant override' when delegated member hides super type override
  • KT-20261 Incorrect "Redundant Unit return type" inspection for Nothing-typed expression
  • KT-20315 "call chain on collection type may be simplified" generates code that does not compile
  • KT-20333 Assignment can be lifted out of try is applied too broadly
  • KT-20366 Code cleanup: some inspections are broken
  • KT-20369 Inspection messages with INFORMATION highlight type are shown in Code Inspect
  • KT-20409 useless warning "Remove curly braces" for Chinese character
  • KT-20417 Converting property getter to block body doesn't insert explicit return type

IDE. Refactorings

Performance Improvements

  • KT-18823 Move class to a separate file is very slow in 'kotlin' project
  • KT-20205 Invoke MoveKotlinDeclarationsProcessor.findUsages() under progress

Fixes

  • KT-15840 Introduce type alias: don't change not-nullable type with nullable typealias
  • KT-17949 Rename private fun should not search it out of scope
  • KT-18196 Refactor / Copy: the copy is formatted
  • KT-18594 Refactor / Extract (Functional) Parameter are available for annotation arguments, but fail with AE: "Body element is not found"
  • KT-19439 Kotlin introduce parameter causes exception
  • KT-19909 copy a kotlin class removes imports and other modifications
  • KT-19949 AssertionError „Resolver for 'project source roots and libraries for platform JVM' does not know how to resolve ModuleProductionSourceInfo“ through MoveConflictChecker.getModuleDescriptor() on copying Kotlin file from other project
  • KT-20092 Refactor / Copy: copy of .kt file removes all the blank lines and 'hanging' comments
  • KT-20335 Refactor → Extract Type Parameter: “AWT events are not allowed inside write action” after processing duplicates
  • KT-20402 Throwable “PsiElement(IDENTIFIER) by KotlinInplaceParameterIntroducer” on calling Refactor → Extract Parameter for default values
  • KT-20403 AE “Body element is not found” on calling Refactor → Extract Parameter for default values in constructor of class without body

JavaScript

Fixes

  • KT-8285 JS: don't generate tmp when only need one component
  • KT-14549 JS: Non-local returns from secondary constructors don't work
  • KT-15294 JS: parse error in js() function
  • KT-17450 PlatformDependent members of collections are compiled in JS
  • KT-18010 JS: JsName annotation in interfaces can cause runtime exception
  • KT-18063 Inlining does not work properly in JS for suspend functions from another module
  • KT-18548 JS: wrong string interpolation with generic or Any parameters
  • KT-19794 runtime crash with empty object (Javascript)
  • KT-19818 JS: generate paths relative to .map file by default (unless "-source-map-prefix" is used)
  • KT-19906 JS: rename compiler option "-source-map-source-roots" to avoid misleading since sourcemaps have field called "sourceRoot"
  • KT-20287 Functions don't actually return Unit in Kotlin-JS -> unexpected null problems vs JDK version
  • KT-20451 KotlinJs - interface function with default parameter, overridden by implementor, can't be found at runtime
  • KT-20650 JS: compiler crashes in Java 9 with NoClassDefFoundError
  • KT-20653 JS: compiler crashes in Java 9 with TranslationRuntimeException
  • KT-20820 JS: IDEA project doesn't generate paths relative to .map

Libraries

  • KT-20596 'synchronized' does not allow non-local return in Kotlin JS
  • KT-20600 Typo in POMs for kotlin-runtime

Tools

  • KT-19692 kotlin-jpa plugin doesn't support @MappedSuperclass annotation
  • KT-20030 Parcelize can directly reference writeToParcel and CREATOR for final, non-Parcelize Parcelable types in same compilation unit.
  • KT-19742 [Android extensions] Calling clearFindViewByIdCache causes NPE
  • KT-19749 Android extensions + Parcelable: NoSuchMethodError on attempt to pack into parcel a serializable object
  • KT-20026 Parcelize overrides describeContents despite being already implemented.
  • KT-20027 Parcelize uses wrong classloader when reading parcelable type.
  • KT-20029 Parcelize should not directly reference parcel methods on types outside compilation unit
  • KT-20032 Parcelize does not respect type nullability in case of Parcelize parcelables

Tools. Gradle

  • KT-3463 Gradle plugin ignores kotlin compile options changes
  • KT-16299 Gradle build does not recompile annotated classes on changing compiler's plugins configuration
  • KT-16764 Kotlin Gradle plugin should replicate task dependencies of Java source directories
  • KT-17564 Applying Kotlin's Gradle plugin results in src/main/java being listed twice in sourceSets.main.allSource
  • KT-17674 Test code is not compiled incrementally when main is changed
  • KT-18765 Move incremental compilation message from Gradle's warning to info logging level
  • KT-20036 Gradle tasks up-to-date-ness

Tools. J2K

  • KT-19565 Java code using Iterator#remove converted to red code
  • KT-19651 Java class with static-only methods can contain 'protected' members

Tools. JPS

  • KT-20082 Java 9: incremental build reports bogus error for reference to Kotlin source
  • KT-20671 Kotlin plugin compiler exception when compiling under JDK9

Tools. Maven

  • KT-20064 Maven + Java 9: compile task warns about module-info in the output path
  • KT-20400 Do not output module name, version and related information by default in Maven builds

Tools. REPL

  • KT-20167 JDK 9 unresolved supertypes: Object when working with Kotlin Scripting API

Tools. kapt

  • KT-17923 Reference to Dagger generated class is highlighted red
  • KT-18923 Kapt: Do not use the Kotlin error message collector to issue errors from kapt
  • KT-19097 Request: Decent support of kapt.kotlin.generated on Intellij/Android Studio
  • KT-20877 Butterknife: UninitializedPropertyAccessException: "lateinit property has not been initialized" for field annotated with @BindView.

1.1.50

Android

  • KT-14800 Kotlin Lint: @SuppressLint annotation on local variable is ignored
  • KT-16600 False positive "For methods, permission annotation should specify one of value, anyOf or allOf"
  • KT-16834 Android Lint: Bogus warning on @setparam:StringRes
  • KT-17785 Kotlin Lint: "Incorrect support annotation usage" does not pick the value of const val
  • KT-18837 Android Lint: Collection.removeIf is not flagged when used on RealmList
  • KT-18893 Android support annotations (ColorInt, etc) cannot be used on properties: "does not apply for type void"
  • KT-18997 KLint: False positive "Could not find property setter method setLevel on java.lang.Object" if using elvis with return on RHS
  • KT-19671 UAST: Parameter annotations not provided for val parameters

Compiler

Performance Improvements

  • KT-17963 Unnecessary boxing in case of primitive comparison to object
  • KT-18589 'Equality check can be used instead of elvis' produces code that causes boxing
  • KT-18693 Optimize in-expression with optimizable range in RHS
  • KT-18721 Improve code generation for if-in-primitive-literal expression ('if (expr in low .. high)')
  • KT-18818 Optimize null cases in when statement to avoid Intrinsics usage
  • KT-18834 Do not create ranges for 'x in low..high' where type of x doesn't match range element type
  • KT-19029 Use specialized equality implementations for 'when'
  • KT-19149 Use 'for-in-until' loop in intrinsic array constructors
  • KT-19252 Use 'for-in-until' loop for 'for-in-rangeTo' loops with constant upper bounds when possible
  • KT-19256 Destructuring assignment generates redundant code for temporary variable nullification
  • KT-19457 Extremely slow analysis for file with deeply nested lambdas

Fixes

  • KT-10754 Bogus unresolved extension function
  • KT-11739 Incorrect error message on getValue operator with KProperty parameter
  • KT-11834 INAPPLICABLE_LATEINIT_MODIFIER is confusing for a generic type parameter with nullable (default) upper bound
  • KT-11963 Exception: recursive call in a lazy value under LockBasedStorageManager
  • KT-12737 Confusing error message when calling extension function with an implicit receiver, passing value parameter of wrong type
  • KT-12767 Too much unnecessary information in "N type arguments expected" error message
  • KT-12796 IllegalArgumentException on referencing inner class constructor on an outer class instance
  • KT-12899 Platform null escapes if passed as an extension receiver to an inline function
  • KT-13665 Generic componentN() functions should provide better diagnostics when type cannot be inferred
  • KT-16223 Confusing diagnostic for local inline functions
  • KT-16246 CompilationException caused by intersection type overload and wrong type parameter
  • KT-16746 DslMarker doesn't work with typealiases
  • KT-17444 Accessors generated for private file functions should respect @JvmName
  • KT-17464 Calling super constructor with generic function call in arguments fails at runtime
  • KT-17725 java.lang.VerifyError when both dispatch receiver and extension receiver have smart casts
  • KT-17745 Unfriendly error message on creating an instance of interface via typealias
  • KT-17748 Equality for class literals of primitive types is not preserved by reification
  • KT-17879 Comparing T::class from a reified generic with a Class<> and KClass<> variable in when statement is broken
  • KT-18356 Argument reordering in super class constructor call for anonymous object fails with VerifyError
  • KT-18819 JVM BE treats 'if (a in low .. high)' as 'if (a >= low && a <= high)', so 'high' can be non-evaluated
  • KT-18855 Convert "Remove at from annotation argument" inspection into compiler error & quick-fix
  • KT-18858 Exception within typealias expansion with dynamic used as one of type arguments
  • KT-18902 NullPointerException when using provideDelegate with properties of the base class at runtime
  • KT-18940 REPEATED_ANNOTATION is reported on wrong location for typealias arguments
  • KT-18944 Type annotations are lost for dynamic type
  • KT-18966 Report full package FQ name in compilation errors related to visibility
  • KT-18971 Missing non-null assertion for platform type passed as a receiver to the member extension function
  • KT-18982 NoSuchFieldError on access to imported object property from the declaring object itself
  • KT-18985 Too large highlighting range for UNCHECKED_CAST
  • KT-19058 VerifyError: no CHECKAST on dispatch receiver of the synthetic property defined in Java interface
  • KT-19100 VerifyError: missing CHECKCAST on extension receiver of the extension property
  • KT-19115 Report warnings on usages of JSR 305-annotated declarations which rely on incorrect or missing nullability information
  • KT-19128 java.lang.VerifyError with smart cast to String from Any
  • KT-19180 Bad SAM conversion of Java interface causing ClassCastException: [...] cannot be cast to kotlin.jvm.functions.Function1
  • KT-19205 Poor diagnostic message for deprecated class referenced through typealias
  • KT-19367 NSFE if property with name matching companion object property name is referenced within lambda
  • KT-19434 Object inheriting generic class with a reified type parameter looses method annotations
  • KT-19475 AnalyserException in case of combination of while (true) + stack-spilling (coroutines/try-catch expressions)
  • KT-19528 Compiler exception on inline suspend function inside a generic class
  • KT-19575 Deprecated typealias is not marked as such in access to companion object
  • KT-19601 UPPER_BOUND_VIOLATED reported on type alias expansion in a recursive upper bound on a type parameter
  • KT-19814 Runtime annotations for open suspend function are not generated correctly
  • KT-19892 Overriding remove method on inheritance from TreeSet
  • KT-19910 Nullability assertions removed when inlining an anonymous object in crossinline lambda
  • KT-19985 JSR 305: nullability qualifier of Java function return type detected incorrectly in case of using annotation nickname

IDE

New Features

  • KT-6676 Show enum constant ordinal in quick doc like in Java
  • KT-12246 Kotlin source files are not highlighted in Gradle build output in IntelliJ

Performance Improvements

  • KT-19670 When computing argument hints, don't resolve call if none of the arguments are unclear expressions

Fixes

  • KT-9288 Call hierarchy ends on function call inside local val initializer expression
  • KT-9669 Join Lines should add semicolon when joining statements into the same line
  • KT-14346 IllegalArgumentException on attempt to call Show Hierarchy view on lambda
  • KT-14428 AssertionError in KotlinCallerMethodsTreeStructure. on attempt to call Hierarchy view
  • KT-19466 Kotlin based Gradle build not recognized when added as a module
  • KT-18083 IDEA: Support extension main function
  • KT-18863 Formatter should add space after opening brace in a single-line enum declaration
  • KT-19024 build.gradle.kts is not supported as project
  • KT-19124 Creating source file with directory/package throws AE: "Write access is allowed inside write-action only" at NewKotlinFileAction$Companion.findOrCreateTarget()
  • KT-19154 Completion and auto-import does not suggest companion object members when inside an extension function
  • KT-19202 Applying 'ReplaceWith' fix in type alias can change program behaviour
  • KT-19209 "Stub and PSI element type mismatch" in when receiver type is annotated with @receiver
  • KT-19277 Optimize imports on the fly should not work in test data files
  • KT-19278 Optimize imports on the fly should not remove incomplete import while it's being typed
  • KT-19322 Script editor: Move Statement Down/Up can't move one out of top level lambda
  • KT-19451 "Unresolved reference" with Kotlin Android Extensions when layout defines the Android namespace as something other than "android"
  • KT-19492 Java 9: references from unnamed module to not exported classes of named module are compiled, but red in the editor
  • KT-19493 Java 9: references from named module to classes of unnamed module are not compiled, but green in the editor
  • KT-19843 Performance warning: LineMarker is supposed to be registered for leaf elements only
  • KT-19889 KotlinGradleModel : Unsupported major.minor version 52.0
  • KT-19885 200% CPU for some time on Kotlin sources (PackagePartClassUtils.hasTopLevelCallables())
  • KT-19901 KotlinLanguageInjector#getLanguagesToInject can cancel any progress in which it was invoked
  • KT-19903 Copy Reference works incorrectly for const val
  • KT-20153 Kotlin facet: Java 9 -Xadd-modules setting produces more and more identical sub-elements of <additionalJavaModules> in .iml file

IDE. Completion

  • KT-8848 Code completion does not support import aliases
  • KT-18040 There is no auto-popup competion after typing "$x." anymore
  • KT-19015 Smart completion: parameter list completion is not available when some of parameters are already written

IDE. Debugger

  • KT-19429 Breakpoint appears in random place during debug

IDE. Inspections and Intentions

New Features

  • KT-4748 Remove double negation for boolean expressions intention + inspection
  • KT-5878 Quickfix for "variable initializer is redundant" (VARIABLE_WITH_REDUNDANT_INITIALIZER)
  • KT-11991 Kotlin should have an inspection to suggest the simplified format for a no argument lambda
  • KT-12195 Quickfix @JvmStatic on main() method in an object
  • KT-12233 "Package naming convention" inspection could show warning in .kt sources
  • KT-12504 Intention to make open class with only private constructors sealed
  • KT-12523 Quick-fix to remove when with only else
  • KT-12613 "Make abstract" on member of open or final class should make abstract both member and class
  • KT-16033 Automatically static import the enum value name when "Add remaining branches" on an enum from another class/file
  • KT-16404 Create from usage should allow generating nested classes
  • KT-17322 Intentions to generate a getter and a setter for a property
  • KT-17888 Inspection to warn about suspicious combination of == and ===
  • KT-18826 INAPPLICABLE_LATEINIT_MODIFIER should have a quickfix to remove initializer
  • KT-18965 Add quick-fix for USELESS_IS_CHECK
  • KT-19126 Add quickfix for 'Property initializes are not allowed in interfaces'
  • KT-19282 Support "flip equals" intention for String.equals extension from stdlib
  • KT-19428 Add inspection for redundant overrides that only call the super method
  • KT-19514 Redundant getter / setter inspection

Fixes

  • KT-13985 "Add remaining branches" action does not use back-ticks correctly
  • KT-15422 Reduce irrelevant reporting of Destructure inspection
  • KT-17480 Create from usage in expression body of override function should take base type into account
  • KT-18482 "Move lambda argument to parenthesis" action generate uncompilable code
  • KT-18665 "Use destructuring declaration" must not be suggested for invisible properties
  • KT-18666 "Use destructuring declaration" should not be reported on a variable used in destructuring declaration only
  • KT-18978 Intention Move to class body generates incorrect code for vararg val/var
  • KT-19006 Inspection message "Equality check can be used instead of elvis" is slightly confusing
  • KT-19011 Unnecessary import for companion object property with extension function type is automatically inserted
  • KT-19299 Quickfix to correct overriding function signature keeps java NotNull annotations
  • KT-19614 Quickfix for INVISIBLE_MEMBER doesn't offer to make member protected if referenced from subclass
  • KT-19666 ClassCastException in IfThenToElvisIntention
  • KT-19704 Don't remove braces in redundant cascade if
  • KT-19811 Internal member incorrectly highlighted as unused
  • KT-19926 Naming convention inspections: pattern is validated while edited, PSE at Pattern.error()
  • KT-19927 "Package naming convention" inspection checks FQN, but default pattern looks like for simple name

IDE. Refactorings

  • KT-17266 Refactor / Inline Function: reference to member of class containing extension function is inlined wrong
  • KT-17776 Inline method of inner class adds 'this' for methods from enclosing class
  • KT-19161 Safe delete conflicts are shown incorrectly for local declarations

JavaScript

Performance Improvements

  • KT-18329 JS: for loop implementation depends on parentheses

Fixes

  • KT-12970 Empty block expression result is 'undefined' (expected: 'kotlin.Unit')
  • KT-13930 Safe call for a function returning 'Unit' result is 'undefined' or 'null' (instead of 'kotlin.Unit' or 'null')
  • KT-13932 'kotlin.Unit' is not materialized in some functions returning supertype of 'Unit' ('undefined' returned instead)
  • KT-16408 JS: Inliner loses imported values when extending a class from another module
  • KT-17014 Different results in JVM and JavaScript on Unit-returning functions
  • KT-17915 JS: 'kotlin.Unit' is not materialized as result of try-catch block expression with empty catch
  • KT-18166 JS: Delegated property named with non-identifier symbols can crash in runtime.
  • KT-18176 JS: dynamic type should not allow methods and properties with incorrect identifier symbols
  • KT-18216 JS: Unit-returning expression used in loop can cause wrong behavior
  • KT-18793 Kotlin Javascript compiler null handling generates if-else block where else is always taken
  • KT-19108 JS: Inconsistent behaviour from JVM code when modifying variable whilst calling run on it
  • KT-19495 JS: Wrong compilation of nested conditions with if- and when-clauses
  • KT-19540 JS: prohibit to use illegal symbols on call site
  • KT-19542 JS: delegate field should have unique name otherwise it can be accidentally overwritten
  • KT-19712 KotlinJS - providing default value of lambda-argument produces invalid js-code
  • KT-19793 build-crash with external varargs (Javascript)
  • KT-19821 JS remap sourcemaps in DCE
  • KT-19891 Runtime crash with inline function with reified type parameter and object expression: "T_0 is not defined" (JavaScript)
  • KT-20005 Invalid source map with option sourceMapEmbedSources = "always"

Libraries

  • KT-19133 Specialize any and none for Collection
  • KT-18267 Deprecate CharSequence.size extension function on the JS side
  • KT-18992 JS: Missing MutableMap.iterator()
  • KT-19881 Expand doc comment of @PublishedApi

Tools. CLI

  • KT-18859 Strange error message when kotlin-embeddable-compiler is run without explicit -kotlin-home
  • KT-19287 Common module compilation: K2MetadataCompiler ignores coroutines state

Tools. Gradle

  • KT-17150 Support 'packagePrefix' option in Gradle plugin
  • KT-19956 Support incremental compilation to JS in Gradle
  • KT-13918 Cannot access internal classes/methods in androidTest source set in an Android library module
  • KT-17355 Use archivesBaseName instead of project.name for module names, get rid of _main for main source set
  • KT-18183 Kotlin gradle plugin uses compile task output as "friends directory"
  • KT-19248 Documentation suggested way to enable coroutines (gradle) doesn't work
  • KT-19397 local.properties file not closed by KotlinProperties.kt

Tools. Incremental Compile

  • KT-19580 IC does not detect non-nested sealed class addition

Tools. J2K

  • KT-10375 0xFFFFFFFFFFFFFFFFL conversion issue
  • KT-13552 switch-to-when conversion creates broken code
  • KT-17379 Converting multiline expressions creates dangling operations
  • KT-18232 Kotlin code converter misses annotations
  • KT-18786 Convert Kotlin to Java generates error: Variable cannot be initialized before declaration
  • KT-19523 J2K produce invalid code when convert some numbers

Tools. JPS

  • KT-17397 Kotlin JPS Builder can mark dirty files already compiled in round
  • KT-19176 Java 9: JPS build fails for Kotlin source referring exported Kotlin class from another module: "unresolved supertypes: kotlin.Any"
  • KT-19833 Cannot access class/superclass from SDK on compilation of JDK 9 module together with non-9 module

Tools. REPL

  • KT-11369 REPL: Ctrl-C should interrupt the input, Ctrl-D should quit

Tools. kapt

  • KT-19996 Error with 'kotlin-kapt' plugin and dagger2, clean project required

1.1.4-3

  • KT-18062 SamWithReceiver compiler plugin not used by IntelliJ for .kt files
  • KT-18497 Gradle Kotlin Plugin does not work with the gradle java-library plugin
  • KT-19276 Console spam when opening idea-community project in debug IDEA
  • KT-19433 [Coroutines + Kapt3] Assertion failed in ClassClsStubBuilder.createNestedClassStub
  • KT-19680 kapt3 & Parcelize: Compilation error
  • KT-19687 Kotlin 1.1.4 noarg plugin breaks with sealed classes
  • KT-19700 Kapt error after updating to 1.1.4 - stub adds type parameters where there are none
  • KT-19713 Mocking of final named suspend methods with mockito fails
  • KT-19729 kapt3: not always including argument to @javax.inject.Named in generated stubs
  • KT-19759 "Convert to expression body" is not shown in 162 / AS23 branches for multi-liners
  • KT-19767 NPE caused by Map<String, Boolean>?.get
  • KT-19769 PerModulePackageCacheService calls getOrderEntriesForFile() for every file, even those that can't affect Kotlin resolve
  • KT-19774 Provide an opt-out flag for separate classes directories (Gradle 4.0+)
  • KT-19847 if an imported library already exists it should be redetected during gradle import

1.1.4-2

  • KT-19679 CompilationException: Couldn't inline method call 'methodName' into...
  • KT-19690 Lazy field in interface default method leads to ClassFormatError
  • KT-19716 Quickdoc Ctrl+Q broken while browsing code completion list Ctrl-Space
  • KT-19717 Library kind incorrectly detected for vertx-web in Kotlin project
  • KT-19723 "Insufficient maximum stack size" during compilation

1.1.4

Android

New Features

  • KT-11048 Android Extensions: cannot evaluate expression containing generated properties

Performance Improvements

  • KT-10542 Android Extensions: No cache for Views
  • KT-18250 Android Extensions: Allow to use SparseArray as a View cache

Fixes

  • KT-11051 Android Extensions: completion of generated properties is unclear for ambiguous ids
  • KT-14086 Android-extensions not generated using flavors dimension
  • KT-14912 Lint: "Code contains STOPSHIP marker" ignores suppress annotation
  • KT-15164 Kotlin Lint: problems in delegate expression are not reported
  • KT-16934 Android Extensions fails to compile when importing synthetic properties for layouts in other modules
  • KT-17641 Problem with Kotlin Android Extensions and Gradle syntax
  • KT-17783 Kotlin Lint: quick fixes to add inapplicable @RequiresApi and @SuppressLint make code incompilable
  • KT-17786 Kotlin Lint: "Surround with if()" quick fix is not suggested for single expression get()
  • KT-17787 Kotlin Lint: "Add @TargetApi" quick fix is not suggested for top level property accessor
  • KT-17788 Kotlin Lint: "Surround with if()" quick fix corrupts code in case of destructuring declaration
  • KT-17890 [kotlin-android-extensions] Renaming layout file does not rename import
  • KT-18012 Kotlin Android Extensions generates @NotNull properties for views present in a configuration and potentially missing in another
  • KT-18545 Accessing to synthetic properties on smart casted Android components crashed compiler

Compiler

New Features

  • KT-10942 Support meta-annotations from JSR 305 for nullability qualifiers
  • KT-14187 Redundant "is" check is not detected
  • KT-16603 Support inline suspend function
  • KT-17585 Generate state machine for named functions in their bodies

Performance Improvements

  • KT-3098 Generate efficient comparisons
  • KT-6247 Optimization for 'in' and '..'
  • KT-7571 Don't box Double instance to call hashCode on Java 8
  • KT-9900 Optimize range operations for 'until' extension from stdlib
  • KT-11959 Unnceessary boxing/unboxing due to Comparable.compareTo
  • KT-12158 Optimize away boxing when comparing nullable primitive type value to primitive value
  • KT-13682 Reuse StringBuilder for concatenation and string interpolation
  • KT-14323 IntelliJ lockup when using Apache Spark UDF
  • KT-14375 Kotlin compiler failure with spark when creating a flexible type for scala.Function22
  • KT-15235 Escaped characters in template strings are generating inefficient implementations
  • KT-17280 Inline constant expressions in string templates
  • KT-17903 Generate 'for-in-indices' as a precondition loop
  • KT-18157 Optimize out trivial INSTANCEOF checks
  • KT-18162 Do not check nullability assertions twice for effectively same value
  • KT-18164 Do not check nullability for values that have been already checked with !!
  • KT-18478 Unnecessary nullification of bound variables
  • KT-18558 Flatten nested string concatenation
  • KT-18777 Unnecessary boolean negation generated for 'if (expr !in range)'

Fixes

  • KT-1809 Confusing diagnostics when wrong number of type arguments are specified and there are several callee candiates
  • KT-2007 Improve diagnostics when + in not resolved on a pair of nullable ints
  • KT-5066 Bad diagnostic message for ABSTRACT_MEMBER_NOT_IMPLEMENTED for (companion) object
  • KT-5511 Inconsistent handling of inner enum
  • KT-7773 Disallow to explicitly extend Enum class
  • KT-7975 Unclear error message when redundant type arguments supplied
  • KT-8340 vararg in a property setter must be an error
  • KT-8612 Incorrect error message for var extension property without getter or setter
  • KT-8829 Type parameter of a class is not resolved in the constructor parameter's default value
  • KT-8845 Bogus diagnostic on infix operation "in"
  • KT-9282 Improve diagnostic on overload resolution ambiguity when a nullable argument is passed to non-null parameter
  • KT-10045 Not specific enough compiler error message in case of trying to call overloaded private methods
  • KT-10164 Incorrect error message for external inline method
  • KT-10248 Smart casts: Misleading error on overloaded function call
  • KT-10657 Confusing diagnostic when trying to invoke value as a function
  • KT-10839 Weird diagnostics on callable reference of unresolved class
  • KT-11119 Confusing error message when overloaded method is called on nullable receiver
  • KT-12408 Generic information lost for override values
  • KT-12551 Report "unused expression" on unused bound double colon expressions
  • KT-13749 Error highlighting range for no 'override' modifier is bigger than needed
  • KT-14598 Do not report "member is final and cannot be overridden" when overriding something from final class
  • KT-14633 "If must have both main and else branches" diagnostic range is too high
  • KT-14647 Confusing error message "'@receiver:' annotations could be applied only to extension function or extension property declarations"
  • KT-14927 TCE in QualifiedExpressionResolver
  • KT-15243 Report deprecation on usages of type alias expanded to a deprecated class
  • KT-15804 Prohibit having duplicate parameter names in functional types
  • KT-15810 destructuring declarations don't work in scripts on the top level
  • KT-15931 IllegalStateException: ClassDescriptor of superType should not be null: T by a
  • KT-16016 Compiler failure with NO_EXPECTED_TYPE
  • KT-16448 Inline suspend functions with inlined suspend invocations are miscompiled (VerifyError, ClassNotFound)
  • KT-16576 Wrong code generated with skynet benchmark
  • KT-17007 Kotlin is not optimizing away unreachable code based on const vals
  • KT-17188 Do not propose to specify constructor invocation for classes without an accessible constructor
  • KT-17611 Unnecessary "Name shadowed" warning on parameter of local function or local class member
  • KT-17692 NPE in compiler when calling KClass.java on function result of type Unit
  • KT-17820 False "useless cast" when target type is flexible
  • KT-17972 Anonymous class generated from lambda captures its outer and tries to set nonexistent this$0 field.
  • KT-18029 typealias not working in .kts files
  • KT-18085 Compilation Error:Kotlin: [Internal Error] kotlin.TypeCastException: null cannot be cast to non-null type com.intellij.psi.PsiElement
  • KT-18115 Generic inherited classes in different packages with coroutine causes java.lang.VerifyError: Bad local variable type
  • KT-18189 Incorrect generic signature generated for implementation methods overriding special built-ins
  • KT-18234 Top-level variables in script aren't local variables
  • KT-18413 Strange compiler error - probably incremental compiler
  • KT-18486 Superfluos generation of suspend function state-machine because of inner suspension of different coroutine
  • KT-18598 Report error on access to declarations from non-exported packages and from inaccessible modules on Java 9
  • KT-18698 java.lang.IllegalStateException: resolveToInstruction: incorrect index -1 for label L12 in subroutine
  • KT-18702 Proguard warning with Kotlin 1.2-M1
  • KT-18728 Integer method reference application fails with CompilationException: Back-end (JVM) Internal error
  • KT-18845 Exception on building gradle project with collection literals
  • KT-18867 Getting constant "VerifyError: Operand stack underflow" from Kotlin plugin
  • KT-18916 Strange bytecode generated for 'null' passed as SAM adapter for Java interface
  • KT-18983 Coroutines: miscompiled suspend for loop (local variables are not spilled around suspension points)
  • KT-19175 Compiler generates different bytecode when classes are compiled separately or together
  • KT-19246 Using generic inline function inside inline extension function throws java.lang.VerifyError: Bad return type
  • KT-19419 Support JSR 305 meta-annotations in libraries even when JSR 305 JAR is not on the classpath

IDE

New Features

  • KT-2638 Inline property (with accessors) refactoring
  • KT-7107 Rename refactoring for labels
  • KT-9818 Code style for method expression bodies
  • KT-11994 Data flow analysis support for Kotlin in IntelliJ
  • KT-14126 Code style wrapping options for enum constants
  • KT-14929 Deprecated ReplaceWith for type aliases
  • KT-14950 Code Style: Wrapping and Braces / "Local variable annotations" setting could be supported
  • KT-14965 "Configure Kotlin in project" should support build.gradle.kts
  • KT-15504 Add code style options to limit number of blank lines
  • KT-16558 Code Style: Add Options for "Spaces Before Parentheses"
  • KT-18113 Add new line options to code style for method parameters
  • KT-18605 Option to not use continuation indent in chained calls
  • KT-18607 Options to put blank lines between 'when' branches

Performance Improvements

  • KT-14606 Code completion calculates decompiled text when building lookup elements for PSI from compiled classes
  • KT-17751 Kotlin slows down java inspections big time
  • KT-17835 10s hang on IDEA project open
  • KT-18842 Very slow typing in certain files of Kotlin project
  • KT-18921 Configure library kind explicitly

Fixes

  • KT-6610 Language injection doesn't work with String Interpolation
  • KT-8893 Quick documentation shows type for top-level object-type elements, but "no name provided" for local ones
  • KT-9359 "Accidental override" error message does not mention class (type) names
  • KT-10736 Highlighting usages doesn't work for synthetic properties created by the Android Extensions
  • KT-11980 Spring: Generate Constructor, Setter Dependency in XML for Kotlin class: IOE at LightElement.add()
  • KT-12123 Formatter: always indent after newline in variable initialization
  • KT-12910 spring: create init-method/destroy-method from usage results in IOE
  • KT-13072 Kotlin struggles to index JDK 9 classes
  • KT-13099 formatting in angle brackets ignored and not fixed
  • KT-14083 Formatting of where clasuses
  • KT-14271 Value captured in closure doesn't always get highlighted
  • KT-14561 Use regular indent for the primary constructor parameters
  • KT-14974 "Find Usages" hangs in ExpressionsOfTypeProcessor
  • KT-15093 Navigation to library may not work if there's another module in same project that references same jar via a different library
  • KT-15270 Quickfix to migrate from @native***
  • KT-16352 Create from usage inserts extra space in first step
  • KT-16725 Formatter does not fix spaces before square brackets
  • KT-16999 "Parameter info" shows duplicates on toString
  • KT-17357 BuiltIns for module build with project LV settings, not with facet module settings
  • KT-17394 Core formatting is wrong for expression body properties
  • KT-17759 Breakpoints not working in JS
  • KT-17771 Kotlin IntelliJ plugin should resolve Gradle script classpath asynchronously
  • KT-17818 Formatting of long constructors is inconsistent with Kotlin code conventions
  • KT-17849 Automatically insert trimMargin() or trimIndent() on enter in multi-line strings
  • KT-17855 Main function is shown as unused
  • KT-17894 String trimIndent support inserts wrong indent in some cases
  • KT-17942 Enter in multiline string with injection doesn't add a proper indent
  • KT-17956 Type hints for properties that only consist of constructor calls don't add much value
  • KT-18006 Copying part of string literal with escape sequences converts this sequences to special characters
  • KT-18030 Parameters hints: kotlin.arrayOf(elements) should be on the blacklist by default
  • KT-18059 Kotlin Lint: False positive error "requires api level 24" for interface method with body
  • KT-18149 PIEAE "Element class CompositeElement of type REFERENCE_EXPRESSION (class KtNameReferenceExpressionElementType)" at PsiInvalidElementAccessException.createByNode()
  • KT-18151 Do not import jdkHome from Gradle/Maven model
  • KT-18158 Expand selection should select the comment after expression getter on the same line
  • KT-18186 Create function from usage should infer expected return type
  • KT-18221 AE at org.jetbrains.kotlin.analyzer.ResolverForProjectImpl.descriptorForModule
  • KT-18269 Find Usages fails to find operator-style usages of invoke() defined as extension
  • KT-18298 spring: strange menu at "Navige to the spring bean" gutter
  • KT-18309 Join lines breaks code
  • KT-18373 Facet: can't change target platform between JVM versions
  • KT-18376 Maven import fails with NPE at ArgumentUtils.convertArgumentsToStringList() if jvmTarget setting is absent
  • KT-18418 Generate equals and hashCode should be available for classes without properties
  • KT-18429 Android strings resources folding false positives
  • KT-18444 Type hints don't work for destructuring declarations
  • KT-18475 Gradle/IntelliJ sync can result in IntelliJ modules getting gradle artifacts added to the classpath, breaking compilation
  • KT-18479 Can't find usages of invoke operator with vararg parameter
  • KT-18501 Quick Documentation doesn't show when @Supress("unused") is above the javadoc
  • KT-18566 Long find usages for operators when there are several operators for the same type
  • KT-18596 "Generate hashCode" produces poorly formatted code
  • KT-18725 Android: kotlin-language facet disappears on reopening the project
  • KT-18974 Type hints shouldn't appear for negative literals
  • KT-19054 Lags in typing in string literal
  • KT-19062 Member navigation doesn't work in expression bodies of getters with inferred property type
  • KT-19210 Command line flags like -Xload-jsr305-annotations have no effect in IDE
  • KT-19303 Project language version settings are used to analyze libraries, disabling module-specific analysis flags like -Xjsr305-annotations

IDE. Completion

  • KT-8208 Support static member completion with not-imported-yet classes
  • KT-12104 Smart completion does not work with "invoke" when receiver is expression
  • KT-17074 Incorrect autocomplete suggestions for contexts affected by @DslMarker
  • KT-18443 IntelliJ not handling default constructor argument from companion object well
  • KT-19191 Disable completion binding context caching by default

IDE. Debugger

  • KT-14845 Evaluate expression freezes debugger while evaluating filter, for time proportional to number of elements in collection.
  • KT-17120 Evaluate expression: cannot find local variable
  • KT-18453 Support 'Step over' and 'Force step over' action for suspended calls
  • KT-18577 Debug: Smart Step Into does not enter functions passed as variable or parameter: "Method invoke() has not been called"
  • KT-18632 Debug: Smart Step Into does not enter functions passed as variable or parameter when signature of lambda and parameter doesn't match
  • KT-18949 Can't stop on breakpoint after call to inline in Android Studio
  • KT-19403 30s complete hangs of application on breakpoints stop attempt

IDE. Inspections and Intentions

New Features

  • KT-12119 Intention to replace .addAll() on a mutable collection with +=
  • KT-13436 Replace 'when' with return: handle case when all branches jump out (return Nothing)
  • KT-13458 Cascade "replace with return" for if/when expressions
  • KT-13676 Add better quickfix for 'let' and 'error 'only not null or asserted calls are allowed'
  • KT-14648 Add quickfix for @receiver annotation being applied to extension member instead of extension type
  • KT-14799 Add inspection to simplify successive null checks into safe-call and null check
  • KT-14900 "Lift return out of when/if" should work with control flow expressions
  • KT-15257 JS: quickfix to migrate from @native to external
  • KT-15368 Add intention to convert Boolean? == true to ?: false and vice versa
  • KT-15893 "Array property in data class" inspection could have a quick fix to generate equals() and hashcode()
  • KT-15958 Inspection to inline "unnecessary" variables
  • KT-16063 Inspection to suggest converting block body to expression body
  • KT-17198 Inspection to replace filter calls followed by functions with a predicate variant
  • KT-17580 Add remaning branches intention should be available for sealed classes
  • KT-17583 Support "Declaration access can be weaker" inspection for kotlin properties
  • KT-17815 Quick-fix "Replace with safe call & elvis"
  • KT-17842 Add quick-fix for NO_CONSTRUCTOR error
  • KT-17895 Inspection to replace 'a .. b-1' with 'a until b'
  • KT-17919 Add "Simplify if" intention/inspection
  • KT-17920 Add intention/inspection removing redundant spread operator for arrayOf call
  • KT-17970 Intention actions to format parameter/argument list placing each on separate line
  • KT-18236 Add inspection for potentially wrongly placed unary operators
  • KT-18274 Add inspection to replace map+joinTo with joinTo(transform)
  • KT-18386 Inspection to detect safe calls of orEmpty()
  • KT-18438 Add inspection for empty ranges with start > endInclusive
  • KT-18460 Add intentions to apply De Morgan's laws to conditions
  • KT-18516 Add inspection to detect & remove redundant Unit
  • KT-18517 Provide "Remove explicit type" inspection for some obvious cases
  • KT-18534 Quick-fix to add empty brackets after primary constructor
  • KT-18540 Add quickfix to create data class property from usage in destructuring declaration
  • KT-18615 Inspection to replace if with three or more options with when
  • KT-18749 Inspection for useless operations on collection with not-null elements
  • KT-18830 "Lift return out of try"

Fixes

  • KT-11906 Spring: "Create getter / setter" quick fixes cause IOE at LightElement.add()
  • KT-12524 Wrong "redundant semicolon" for semicolon inside an enum class before the companion object declaration
  • KT-13870 Wrong caption "Change to property access" for Quick Fix to convert class instantiation to object reference
  • KT-13886 Unused variable intention should remove constant initializer
  • KT-14092 "Make " intention inserts modifier between annotation and class keywords
  • KT-14093 "Make " intention available only on modifier when declaration already have a visibility modifier
  • KT-14643 "Add non-null asserted call" quickfix should not be offered on literal null constants
  • KT-15242 Create type from usage should include constraints into base types
  • KT-16046 Globally unused typealias is not marked as such
  • KT-16069 "Simplify if statement" doesn't work in specific case
  • KT-17026 "Replace explicit parameter" should not be shown on destructuring declaration
  • KT-17092 Create function from usage works incorrectly with ::class expression
  • KT-17353 "Create type parameter from usage" should not be offered for unresolved annotations
  • KT-17537 Create from Usage should suggest Boolean return type if function is used in if condition
  • KT-17623 "Remove explicit type arguments" is too conservative sometimes
  • KT-17651 Create property from usage should make lateinit var
  • KT-17726 Nullability quick-fixes operate incorrectly with implicit nullable receiver
  • KT-17740 CME at MakeOverriddenMemberOpenFix.getText()
  • KT-18506 Inspection on final Kotlin spring components is false positive
  • KT-17823 Intention "Make private" and friends should respect modifier order
  • KT-17917 Superfluos suggestion to add replaceWith for DeprecationLevel.HIDDEN
  • KT-17954 Setting error severity on "Kotlin | Function or property has platform type" does not show up as error in IDE
  • KT-17996 Android Studio Default Constructor Command Removes Custom Setter
  • KT-18033 Do not suggest to cast expression to non-nullable type when it's the same as !!
  • KT-18035 Quickfix for "CanBePrimaryConstructorProperty" does not work correctly with vararg constructor properties
  • KT-18044 "Move to class body" intention: better placement in the body
  • KT-18074 Suggestion in Intention 'Specify return type explicitly' doesn't support generic type parameter
  • KT-18120 Recursive property accessor gives false positives
  • KT-18148 Incorrect, not working quickfix - final and can't be overridden
  • KT-18160 Circular autofix actions between redundant modality and non-final variable with allopen plugin
  • KT-18194 "Protected in final" inspection works incorrectly with all-open
  • KT-18195 "Redundant modality" is not reported with all-open
  • KT-18197 Redundant "make open" for abstract class member with all-open
  • KT-18253 Wrong location of "Redundant 'toString()' call in string template" quickfix
  • KT-18347 Nullability quickfixes are not helpful when using invoke operator
  • KT-18368 "Cast expression x to Type" fails for expression inside argument list
  • KT-18375 Backticked function name is suggested to be renamed to the same name
  • KT-18385 Spring: Generate Dependency causes Throwable "AWT events are not allowed inside write action"
  • KT-18407 "Move property to constructor" action should not appear on properties declared in interfaces
  • KT-18425 Make intention inserts modifier at wrong position for sealed class
  • KT-18529 Add '!!' quick fix applies to wrong expression on operation 'in'
  • KT-18642 Remove unused parameter intention transfers default value to another parameter
  • KT-18683 Wrong 'equals' is generated for Kotlin JS project
  • KT-18709 "Lift assignment out of if" changes semantics
  • KT-18711 "Lift return out of when" changes semantics for functional type
  • KT-18717 Report MemberVisibilityCanBePrivate on visibility modifier if present
  • KT-18722 Correct "before" sample in description for intention Convert to enum class
  • KT-18723 Correct "after" sample for intention Convert to apply
  • KT-18852 "Lift return out of when" does not work for exhaustive when without else
  • KT-18928 In IDE, "Replace 'if' expression with safe access expression incorrectly replace expression when using property
  • KT-18954 Kotlin plugin updater activates in headless mode
  • KT-18970 Do not report "property can be private" on JvmField properties
  • KT-19232 Replace Math.min with coerceAtMost intention is broken
  • KT-19272 Do not report "function can be private" on JUnit 3 test methods

IDE. Refactorings

New Features

  • KT-4379 Support renaming import alias
  • KT-8180 Copy Class
  • KT-17547 Refactor / Move: Problems Detected / Conflicts in View: only referencing file is mentioned

Fixes

  • KT-9054 Copy / pasting a Kotlin file should bring up the Copy Class dialog
  • KT-13437 Change signature replaces return type with Unit when it's not requested
  • KT-15859 Renaming variables or functions with backticks removes the backticks
  • KT-16180 Opened decompiled editor blocks refactoring of involved element
  • KT-17062 Field/property inline refactoring works incorrectly with Kotlin & Java usages
  • KT-17128 Refactor / Rename in the last position of label name throws Throwable "PsiElement(IDENTIFIER) by com.intellij.refactoring.rename.inplace.MemberInplaceRenamer" at InplaceRefactoring.buildTemplateAndStart()
  • KT-17489 Refactor / Inline Property: cannot inline val with the following plusAssign
  • KT-17571 Refactor / Move warns about using private/internal class from Java, but this is not related to the move
  • KT-17622 Refactor / Inline Function loses type arguments
  • KT-18034 Copy Class refactoring replaces all usages of the class with the new one!
  • KT-18076 Refactor / Rename on alias of Java class suggests to select between refactoring handlers
  • KT-18096 Refactor / Rename on import alias usage of a class member element tries to rename the element itself
  • KT-18098 Refactor / Copy can't generate proper import if original code uses import alias of java member
  • KT-18135 Refactor: no Problems Detected for Copy/Move source using platform type to another platform's module
  • KT-18200 Refactor / Copy is enabled for Java source selected with Kotlin file, but not for Java source selected with Kotlin class
  • KT-18241 Refactor / Copy (and Move) fails for chain of lambdas and invoke()'s with IllegalStateException: "No selector for PARENTHESIZED" at KtSimpleNameReference.changeQualifiedName()
  • KT-18325 Renaming a parameter name in one implementation silently rename it in all implementations
  • KT-18390 Refactor / Copy called for Java class opens only Copy File dialog
  • KT-18699 Refactor / Copy, Move loses necessary parentheses
  • KT-18738 Misleading quick fix message for an 'open' modifier on an interface member
  • KT-19130 Refactor / Inline val: "Show inline dialog for local variables" setting is ignored

JavaScript

Performance Improvements

  • KT-18331 JS: compilation performance degrades fast when inlined nested labels are used

Fixes

  • KT-4078 JS sourcemaps should contain relative path. The relative base & prefix should be set from project/module preferences
  • KT-8020 JS: String? plus operator crashes on runtime
  • KT-13919 JS: Source map weirdness
  • KT-15456 JS: inlining doesn't work for array constructor with size and lambda
  • KT-16984 KotlinJS - 1 > 2 > false causes unhandled javascript exception
  • KT-17285 JS: wrong result when call function with default parameter overridden by delegation by function from another interface
  • KT-17445 JS: minifier for Kotlin JS apps
  • KT-17476 JS: Some symbols in identifiers compile, but are not legal
  • KT-17871 JS: spread vararg call doesn't work on functions imported with @JsModule
  • KT-18027 JS: Illegal symbols are possible in backticked labels, but cause crash in runtime and malformed js code
  • KT-18032 JS: Illegal symbols are possible in backticked package names, but cause crash in runtime and malformed js code
  • KT-18169 JS: reified generic backticked type name containing non-identifier symbols causes malformed JS and runtime crash
  • KT-18187 JS backend does not copy non-abstract method of interface to implementing class in some cases
  • KT-18201 JS backend generates wrong code for inline function which calls non-inline function from another module
  • KT-18652 JS: Objects from same package but from different libraries are incorrectly accessed

Libraries

  • KT-18526 Small typo in documentation for kotlin-stdlib / kotlin.collections / retainAll
  • KT-18624 JS: Bad return type for Promise.all
  • KT-18670 Incorrect documentation of MutableMap.values
  • KT-18671 Provide implementation for CoroutineContext.Element functions.

Reflection

  • KT-15222 Support reflection for local delegated properties
  • KT-14094 IllegalAccessException when try to get members annotated by private annotation with parameter
  • KT-16399 Embedded Tomcat fails to load Class-Path: kotlin-runtime.jar from kotlin-reflect-1.0.6.jar
  • KT-16810 Do not include incorrect ExternalOverridabilityCondition service file into kotlin-reflect.jar
  • KT-18404 “KotlinReflectionInternalError: This callable does not support a default call” when function or constructor has more than 32 parameters
  • KT-18476 KClass<*>.superclasses does not contain Any::class
  • KT-18480 Kotlin Reflection unable to call getter of protected read-only val with custom getter from parent class

Tools

  • KT-18245 NoArg: IllegalAccessError on instantiating sealed class child via Java reflection
  • KT-18874 Crash during compilation after switching to 1.1.3-release-IJ2017.2-2
  • KT-19047 Private methods are final event if used with the all-open-plugin.

Tools. CLI

  • KT-17297 Report error when CLI compiler is not being run under Java 8+
  • KT-18599 Support -Xmodule-path and -Xadd-modules arguments for modular compilation on Java 9
  • KT-18794 kotlinc-jvm prints an irrelevant error message when a JVM Home directory does not exist
  • KT-3045 Report error instead of failing with exception on "kotlinc -script foo.kt"
  • KT-18754 Rename CLI argument "-module" to "-Xbuild-file"
  • KT-18927 run kotlin app crashes eclipse

Tools. Gradle

  • KT-10537 Gradle plugin doesn't pick up changed project.buildDir
  • KT-17031 JVM crash on in-process compilation in Gradle with debug
  • KT-17035 Gradle Kotlin Plugin can not compile tests calling source internal fields/variables if compileJava dumps classes to a different directory and then copied classes are moved to sourceSets.main.output.classesDir by a different task
  • KT-17197 Gradle Kotlin plugin does not wire task dependencies correctly, causing compilation failures
  • KT-17618 Pass freeCompilerArgs to compiler unchanged
  • KT-18262 kotlin-spring should also open @SpringBootTest classes
  • KT-18647 Kotlin incremental compile cannot be disabled.
  • KT-18832 Java version parsing error with Gradle Kotlin plugin + JDK 9

Tools. J2K

  • KT-10762 J2K removes empty lines from Doc-comments
  • KT-13146 J2K goes into infinite loop with anonymous inner class that references itself
  • KT-15761 Converting Java to Kotlin corrupts string which includes escaped backslash
  • KT-16133 Converting switch statement inserts dead code (possibly as a false positive for fall-through)
  • KT-16142 Kotlin Konverter produces empty line in Kdoc
  • KT-18038 Java to Kotlin converter messes up empty lines while converting from JavaDoc to KDoc
  • KT-18051 Doesn't work the auto-convert Java to Kotlin in Android Studio 3.0
  • KT-18141 J2K changes semantic when while does not have a body
  • KT-18142 J2K changes semantics when if does not have a body
  • KT-18512 J2K Incorrect null parameter conversion

Tools. JPS

  • KT-14848 JPS: invalid compiler argument causes exception (see also EA-92062)
  • KT-16057 Provide better error message when the same compiler argument is set twice
  • KT-19155 IllegalArgumentException: Unsupported kind: PACKAGE_LOCAL_VARIABLE_LIST in incremental compilation

Tools. Maven

  • KT-18022 kotlin maven plugin - adding dependencies overwrites arguments.pluginClassPath preventing kapt goal from running
  • KT-18224 Maven compilation with JDK 9 fails with InaccessibleObjectException

Tools. REPL

  • KT-5620 REPL: Support destructuring declarations
  • KT-12564 Kotlin REPL Doesn't Perform Many Checks
  • KT-15172 REPL: function declarations that contain empty lines throw error
  • KT-18181 REPL: support non-headless execution for Swing code
  • KT-18349 REPL: do not show warnings when there are errors

Tools. kapt

  • KT-18682 Kapt: Anonymous class types are not rendered properly in stubs
  • KT-18758 Kotlin 1.1.3 / Kapt fails with gradle
  • KT-18799 Kapt3, IC: Kapt does not generate annotation value for constant values in documented types
  • KT-19178 Kapt: Build dependencies from 'kapt' configuration should go into the 'kaptCompile' task dependencies
  • KT-19179 Kapt: Gradle silently skips 'kotlinKapt' task sometimes
  • KT-19211 Kapt3: Generated classes output is not synchronized with Java classes output in pure Java projects (Gradle 4+)

1.1.3-2

Fixes

  • Noarg compiler plugin reverted to 1.1.2 behavior: by default, it will not run any initialization code from the generated default constructor. If you want to run initializers, you need to enable the corresponding option as described in the documentation. Note that if a @noarg class has initializers that depend on constructor parameters, you will get incorrect compiler behavior, so you shouldn't enable this option if you have such classes in your project. This resolves KT-18667 and KT-18668.
  • KT-18689 Incorrect bytecode generated when passing a bound member reference to an inline function with default argument values
  • KT-18377 Syntax error while generating kapt stubs
  • KT-18411 Slow debugger step-in into inlined function
  • KT-18687 Deadlock in resolve with Kotlin 1.1.3
  • KT-18726 Frequent UI hangs in 2017.2 EAPs

1.1.3

Android

New Features

  • KT-12049 Kotlin Lint: "Missing Parcelable CREATOR field" could suggest "Add implementation" quick fix
  • KT-16712 Show warning in IDEA when using Java 1.8 api in Android
  • KT-16843 Android: provide gutter icons for resources like colors and drawables
  • KT-17389 Implement Intention "Add Activity / BroadcastReceiver / Service to manifest"
  • KT-17465 Add intentions Add/Remove/Redo parcelable implementation

Fixes

  • KT-14970 ClassCastException: butterknife.lint.LintRegistry cannot be cast to com.android.tools.klint.client.api.IssueRegistry
  • KT-17287 Configure kotlin in Android Studio: don't show menu Choose Configurator with single choice
  • KT-17288 Android Studio: please remove menu item Configure Kotlin (JavaScript) in Project
  • KT-17289 Android Studio: Hide "Configure Kotlin" balloon if Kotlin is configured from a kt file banner
  • KT-17291 Android Studio 2.4: Cannot get property 'metaClass' on null object error after Kotlin configuring
  • KT-17610 "Unknown reference: kotlinx"

Compiler

New Features

  • KT-11167 Support compilation against JRE 9
  • KT-17497 Warn about redundant else branch in exhaustive when

Performance Improvements

  • KT-7931 Optimize iteration over strings/charsequences on JVM
  • KT-10848 Optimize substitution of inline function with default parameters
  • KT-12497 Optimize inlined bytecode for functions with default parameters
  • KT-17342 Optimize control-flow for case of many variables
  • KT-17562 Optimize KtFile::isScript

Fixes

  • KT-4960 Redeclaration is not reported for type parameters of interfaces
  • KT-5160 No warning when a lambda parameter hides a variable
  • KT-5246 is check fails on cyclic type parameter bounds
  • KT-5354 Wrong label resolution when label name clash with fun name
  • KT-7645 Prohibit default value for catch-block parameter
  • KT-7724 Can never import private member
  • KT-7796 Wrong scope for default parameter value resolution
  • KT-7984 Unexpected "Unresolved reference" in a default value expression in a local function
  • KT-7985 Unexpected "Unresolved reference to a type parameter" in a default value expression in a local function
  • KT-8320 It should not be possible to catch a type parameter type
  • KT-8877 Automatic labeling doesn't work for infix calls
  • KT-9251 Qualified this does not work with labeled function literals
  • KT-9551 False warning "No cast needed"
  • KT-9645 Incorrect inspection: No cast Needed
  • KT-9986 'null as T' should be unchecked cast
  • KT-10397 java.lang.reflect.GenericSignatureFormatError when generic inner class is mentioned in function signature
  • KT-11474 ISE: Requested A, got foo.A in JavaClassFinderImpl on Java file with package not matching directory
  • KT-11622 False "No cast needed" when ambiguous call because of smart cast
  • KT-12245 Code with annotation that has an unresolved identifier as a parameter compiles successfully
  • KT-12269 False "Non-null type is checked for instance of nullable type"
  • KT-12683 A problem with is operator and non-reified type-parameters
  • KT-12690 USELESS_CAST compiler warning may break code when fix is applied
  • KT-13348 Report useless cast on safe cast from nullable type to the same not null type
  • KT-13597 No check for accessing final field in local object in constructor
  • KT-13997 Incorrect "Property must be initialized or be abstract" error for property with external accessors
  • KT-14381 Possible val reassignment not detected inside init block
  • KT-14564 java.lang.VerifyError: Bad local variable type
  • KT-14801 Invoke error message if nested class has the same name as a function from base class
  • KT-14977 IDE doesn't warn about checking null value of variable that cannot be null
  • KT-15085 Label and function naming conflict is resolved in unintuitive way
  • KT-15161 False warning "no cast needed" for array creation
  • KT-15480 Cannot destruct a list when "if" has an "else" branch
  • KT-15495 Internal typealiases in the same module are inaccessible on incremental compilation
  • KT-15566 Object member imported in file scope used in delegation expression in object declaration should be a compiler error
  • KT-16016 Compiler failure with NO_EXPECTED_TYPE
  • KT-16426 Return statement resolved to function instead of property getter
  • KT-16813 Anonymous objects returned from private-in-file members should behave as for private class members
  • KT-16864 Local delegate + ad-hoc object leads to CCE
  • KT-17144 Breakpoint inside when
  • KT-17149 Incorrect warning "Kotlin: This operation has led to an overflow"
  • KT-17156 No re-parse after lambda was converted to block
  • KT-17318 Typo in DSL Marker message cant
  • KT-17384 break/continue expression in inlined function parameter argument causes compilation exception
  • KT-17457 Suspend + LongRange couldn't transform method node issue in Kotlin 1.1.1
  • KT-17479 val reassign is allowed via explicit this receiver
  • KT-17560 Overload resolution ambiguity on semi-valid class-files generated by Scala
  • KT-17572 try-catch expression in inlined function parameter argument causes compilation exception
  • KT-17573 try-finally expression in inlined function parameter argument fails with VerifyError
  • KT-17588 Compiler error while optimizer tries to get rid of captured variable
  • KT-17590 conditional return in inline function parameter argument causes compilation exception
  • KT-17591 non-conditional return in inline function parameter argument causes compilation exception
  • KT-17613 'this' expression referring to deprecated class instance is highlighted as deprecated in IDE
  • KT-18358 Keep smart pointers instead of PSI elements in JavaElementImpl and its descendants

IDE

New Features

  • KT-7810 Separate icon for abstract class
  • KT-8617 Recognize TODO method usages and highlight them same as TODO-comment
  • KT-12629 Add rainbow/semantic-highlighting for local variables
  • KT-14109 support parameter hints in idea plugin
  • KT-16645 Support inlay type hints for implicitly typed vals, properties, and functions
  • KT-17807 Add Smart Enter processor for object expessions

Performance Improvements

  • KT-16995 Typing during in-place refactorings is impossibly laggy
  • KT-17331 Frequent long editor freezes
  • KT-17383 Slow editing in Kotlin files If breadcrumbs are enabled in module with many dependencies
  • KT-17495 Much time spent in LibraryDependenciesCache.getLibrariesAndSdksUsedWith

Fixes

  • KT-7848 When you paste text into a string literal special symbols should be escaped
  • KT-7954 'Go to symbol' doesn't show containing declaration for local symbols
  • KT-9091 Sometimes backticks of the method name with spaces are highlighted with rose background
  • KT-10577 Refactor / Move Kotlin + Java files adds wrong import in very specific case
  • KT-12856 Import fold region is not updated to include imports added while editing file
  • KT-14161 Navigate to symbol doesn't see local named functions
  • KT-14601 Formatter inserts unnecessary indent before 'else'
  • KT-14639 Incorrect name of code style setting: Align in columns 'case' branches
  • KT-15029 "Go to symbol" action doesn't find properties declared in primary constructors
  • KT-15255 Move cursor to a better place when creating a new Kotlin file
  • KT-15273 Kotlin IDE plugin adds import java.lang.String with "Optimize Imports", making project broken
  • KT-16159 Wrong "Constructor call" highlighting if operator is called on newly created object
  • KT-16392 Gradle/Maven java module: Add framework support/ Kotlin (Java or JavaScript) adds nothing
  • KT-16423 Show expression type doesn't work when selecting from the middle of expression with "Expand Selection"
  • KT-16635 Do not show kotlin-specific live templates macros for all context types
  • KT-16755 No "Is sublassed by" icon for sealed class
  • KT-16775 Rewrite at slice CLASS key: OBJECT_DECLARATION while writing code in IDE
  • KT-16803 Suspending iteration is not marked in the gutter by IDEA as suspending invocation
  • KT-17037 Editor suggests to import EmptyCoroutineContext.plus for any unresolved +
  • KT-17046 Kotlin facet, Compiler plugins: last line is shown empty when not selected
  • KT-17088 Settings: Kotlin Compiler: "Destination directory" should be enabled if "Copy library runtime files" is on on the dialog opening
  • KT-17094 Kotlin facet, additional command line parameters dialog: please provide a title
  • KT-17138 Configure Kotlin in Project: Choose Configurator popup: names could be unified
  • KT-17145 Kotlin facet: IllegalArgumentException on attempt to show settings common for several javascript kotlin facets with different moduleKind
  • KT-17223 Absolute path to Kotlin compiler plugin in IML
  • KT-17293 Project Structure dialog is opened too slow for a project with a lot of empty gradle modules
  • KT-17304 IDEA shows wrong type for expressions
  • KT-17439 Kotlin: 'autoscroll from source' doesn't work in Structure view
  • KT-17448 Regression: Sample Resolve
  • KT-17482 Set jvmTarget to 1.8 by default when configuring a project with JDK 1.8
  • KT-17492 -jvm-target is ignored by IntelliJ
  • KT-17505 LazyLightClassMemberMatchingError from collection implementation
  • KT-17517 Compiler options specified as properties are not handled by Maven importer
  • KT-17521 Quickfix to enable coroutines should work for Maven projects
  • KT-17525 IDE: KNPE at KotlinAddImportActionKt.createSingleImportActionForConstructor() on invalid reference to inner class constructor
  • KT-17578 Throwable: "Reported element PsiIdentifier:AnnotationConfiguration is not from the file 'PsiFile:InSource.kt' the inspection 'ImplicitSubclassInspection'"
  • KT-17638 ISE in KotlinElementDescriptionProvider.renderShort
  • KT-17698 Unknown library format - prevents IDEA from configuring Kotlin JS
  • KT-17714 UAST inspection on non-physical element
  • KT-17722 IntelliJ plugin uses wrong JVM target when Kotlin Facet is not configured
  • KT-17770 Kotlin IntelliJ plugin fails to re-index Gradle script classpath after change to the plugins block
  • KT-17777 Logger$EmptyThrowable: "Facet Kotlin (app) [kotlin-language] not found" at FacetModelImpl.removeFacet()
  • KT-17810 Exception from unused import inspection leads to code analysis hangs
  • KT-17821 In Kotlin's plugin KotlinJsMetadataVersionIndex loads file with VfsUtilCore.loadText
  • KT-17840 Show expression type on this shows bogus disambiguation
  • KT-17845 Searching for usages of override property in primary constructor doesn't suggest base property search
  • KT-17847 Kotlin facet: strange warning if API version = 1.2
  • KT-17857 Java should see classes affected by "allopen" plugin as open
  • KT-17861 Setting 'kotlin.experimental.coroutines "enable"' doesn't work for Android projects
  • KT-17875 New Project/Module with Kotlin: on attempt to use libraries from plugin IDE suggests to rewrite them
  • KT-17876 New Project/Module with Kotlin: with "Copy to" option only part of jars are copied
  • KT-17899 Navigate to symbol: vararg signatures are indistinguishable from non-vararg ones
  • KT-18070 KtLightModifierList.hasExplicitModifier("default") is true for interface method with body

IDE. Completion

New Features

  • KT-11250 Auto-completion for convention function names in 'operator fun' definitions
  • KT-12293 Autocompletion should propose lateinit var in addition to lateinit
  • KT-13673 Add 'companion { ... }' code completion opsion

Performance Improvements

  • KT-10978 Kotlin + JOOQ + Intellij performance is unusable
  • KT-16715 Typing is very slow since 1.1
  • KT-16850 UI freeze for several seconds during inserting selected completion variant

Fixes

  • KT-13524 Completing the keyword 'constructor' before a primary constructor wrongly inserts parentheses
  • KT-14665 No completion for "else" keyword
  • KT-15603 Annoying completion when making a primary constructor private
  • KT-16161 Completion of 'onEach' inserts unneeded angular brackets
  • KT-16856 Code completion optimization

IDE. Debugger

  • KT-15823 Breakpoints not work inside crossinline from init of object passed into collection
  • KT-15854 Debugger not able to evaluate internal member functions
  • KT-16025 Step into suspend functions stops at the function end
  • KT-17295 Can't stop in kotlin.concurrent.timer lambda parameter

IDE. Inspections and Intentions

New Features

  • KT-10981 Quickfix for INAPPLICABLE_JVM_FIELD to replace with 'const' when possible
  • KT-14046 Add intention to add inline keyword if a function has parameter with noinline and/or crossinline modifier
  • KT-14137 Add intention to convert top level val with object expression to object
  • KT-15903 QuickFix to add/remove suspend in hierarchies
  • KT-16786 Intention to add "open" modifier to a non-private method or property in an open class
  • KT-16851 Quickfix adding qualifier @call to unallowed 'return' in closures
  • KT-17053 Inspection to detect use of callable reference as a lambda body
  • KT-17054 Intention/ inspection to convert 'if' with 'is' check to 'as?' with safe call
  • KT-17191 Intention to name anonymous (_) parameter
  • KT-17221 Inspection for recursive calls in property accessors
  • KT-17520 Quickfix to update language/API version should work for Maven projects
  • KT-17650 Add quickfix inserting 'lateinit' modifier for not-initialized property
  • KT-17660 Inspection: data class copy without named argument(s)

Fixes

  • KT-10211 "Replace infix call with ordinary call" appears both as a quickfix and as an intention in the pop-up
  • KT-11003 Invalid quickfix in companion object for open properties
  • KT-12805 False positive redundant semicolon after while without block expression
  • KT-14335 Unexpected range of "convert lambda to reference" intention
  • KT-14435 "Use destructuring declaration" should be available as intention even without usages
  • KT-14443 IDEA intention suggest to make a method in an interface final
  • KT-14820 Convert function to property shouldn't insert explicit type if it was inferred previously
  • KT-15076 Replace if with elvis inspection should not be reported in some complex cases
  • KT-15543 "Convert receiver to parameter" refactoring breaks code
  • KT-15942 "Convert to secondary constructor" intention is available for data class
  • KT-16136 Wrong type parameter variance suggested if type parameter is used in nested anonymous object
  • KT-16339 Incorrect warning: 'protected' visibility is effectively 'private' in a final class
  • KT-16577 "Redundant semicolon" is not reported for semicolon after package statement in file with no imports
  • KT-17079 Kotlin: Bad conversion of double comparison to range check if bounds have mixed types
  • KT-17372 Specify explicit lambda signature handles anonymous parameters incorrectly
  • KT-17404 Editor: attempt to pass type parameter as reified argument causes AE "Classifier descriptor of a type should be of type ClassDescriptor" at DescriptorUtils.getClassDescriptorForTypeConstructor()
  • KT-17408 "Convert to secondary constructor" intention is available for annotation parameters
  • KT-17503 Intention "To raw string literal" should handle string concatenations
  • KT-17599 "Make primary constructor internal" intention is available for annotation class
  • KT-17600 "Make primary constructor private" intention is available for annotation class
  • KT-17707 "Final declaration can't be overridden at runtime" inspection reports Kotlin classes non final due to compiler plugin
  • KT-17708 "Move to class body" intention is available for annotation parameters
  • KT-17762 'Convert to range' intention generates inequivalent code for doubles

IDE. Refactorings

Performance Improvements

  • KT-17234 Refactor / Inline on library property is rejected after GUI freeze for a while
  • KT-17333 KotlinChangeInfo retains 132MB of the heap

Fixes

  • KT-8370 "Can't move to original file" should not be an error
  • KT-8930 Refactor / Move preivew: moved element is shown as reference, and its file as subject
  • KT-9158 Refactor / Move preview mentions the package statement of moved class as a usage
  • KT-13192 Refactor / Move: to another class: "To" field code completion suggests facade and Java classes
  • KT-13466 Refactor / Move: class to upper level: the package statement is not updated
  • KT-15519 KDoc comments for data class values get removed by Change Signature
  • KT-17211 Refactor / Move several files: superfluous FQN is inserted into reference to same file's element
  • KT-17213 Refactor / Inline Function: parameters of lambda as call argument turn incompilable
  • KT-17272 Refactor / Inline Function: unused String literal in parameters is kept (while unsed Int is not)
  • KT-17273 Refactor / Inline Function: PIEAE: "Element: class org.jetbrains.kotlin.psi.KtCallExpression because: different providers" at PsiUtilCore.ensureValid()
  • KT-17296 Refactor / Inline Function: UOE at ExpressionReplacementPerformer.findOrCreateBlockToInsertStatement() for call of multi-statement function in declaration
  • KT-17330 Inline kotlin function causes an infinite loop
  • KT-17395 Refactor / Inline Function: arguments passed to lambda turns code to incompilable
  • KT-17496 Refactor / Move: calls to moved extension function type properties are updated (incorrectly)
  • KT-17515 Refactor / Move inner class to another class, Move companion object: disabled in editor, but available in Move dialog
  • KT-17526 Refactor / Move: reference to companion member gets superfluous companion name in certain cases
  • KT-17538 Refactor / Move: moving file with import alias removes alias usage from code
  • KT-17545 Refactor / Move: false Problems Detected on moving class using parent's protected class, object
  • KT-18018 F5 (for Copy) does not work for Kotlin files anymore
  • KT-18205 Moving multiple classes causes imports to be converted to fully qualified class names

Infrastructure

  • KT-14988 Support running the Kotlin compiler on Java 9
  • KT-17112 IncompatibleClassChangeError on invoking Kotlin compiler daemon on JDK 9

JavaScript

Fixes

  • KT-12926 JS: use # instead of @ when linking to sourcemap from generated code
  • KT-13577 Double.hashCode is zero for big numbers
  • KT-15135 JS: support friend modules
  • KT-15484 JS: (node): println with object /number argument leads to "TypeError: Invalid data, chunk must be a string or buffer, not object/number"
  • KT-16658 JS: Suspend function with default param value in interface
  • KT-16717 KotlinJs - copy() on data class doesn't work with when there is a secondary constructor
  • KT-16745 JS: initialize enum fields before calling companion objects's initializer
  • KT-16951 JS: coroutine suspension point is not inserted when inlining suspend function with tail call to another suspend function
  • KT-16979 Kotlin.js : Intellij test and productions sources produce a AMD module with the same name
  • KT-17067 JS: suspendCoroutine not working as expected
  • KT-17219 Hexadecimal literals in js(...) argument are replaced by wrong decimal constants
  • KT-17281 JS: wrong code generated for a recursive call in suspend function
  • KT-17446 JS: incorrect code generated for call to suspendCoroutineOrReturn when the same function calls another suspend function
  • KT-17540 Incorrect inlining optimization of also/apply function
  • KT-17700 Wrong code generated for 'str += (nullableChar ?: break)'
  • KT-17966 JS: Char literal inside of string template

Libraries

  • KT-17453 Array iterators throw IndexOutOfBoundsException instead of NoSuchElementException
  • KT-17635 Document String#toIntOfNull may throw an exception
  • KT-17686 takeLast(n) incorrectly performs drop(n) for Lists without random access
  • KT-17704 Update JavaDoc for ReentrantReadWriteLock.write to put more stress on the fact that to upgrade to write lock, read lock is first released.
  • KT-17853 JS: Confusing parameter names in 'Math.atan2`
  • KT-18092 Issue using kotlin-reflect with proguard: missing annotations Mutable and ReadOnly
  • KT-18210 JS String::match(regex) should have nullable return type

Reflection

  • KT-17055 NPE in hashCode and equals of kotlin.jvm.internal.FunctionReference (on local functions)
  • KT-17594 Cache the result of val Class.kotlin: KClass
  • KT-18494 KNPE from Kotlin reflection (sometimes) in UtilKt.toJavaClass

Tools

  • KT-16692 No-Arg-Constructor plugin should generate code to initialize delegates

Tools. CLI

  • KT-17696 Allow kotlinc to take friend modules as .jar files
  • KT-17697 Allow kotlinc to take .java files as arguments
  • KT-9370 not possible to pass an argument that starts with "-" to a script using kotlinc
  • KT-17100 "kotlin" launcher script: do not add current working directory to classpath if explicit "-classpath" is specified
  • KT-17140 Warning "classpath entry points to a file that is not a jar file" could just be disabled
  • KT-17264 Change the format of advanced CLI arguments ("-X...") to require value after "=", not a whitespace
  • KT-18180 Modules not exported by java.se are not readable when compiling against JRE 9

Tools. Gradle

  • KT-15151 Kapt3: Support incremental compilation of Java stubs
  • KT-16298 Gradle: IOException "Parent file doesn't exist:/.../artifact-difference.tab.len" on non-incremental clean after incremental build
  • KT-17681 Support the new API of Android Gradle plugin (2.4.0+)
  • KT-17936 Circular dependency between gradle tasks dataBindingExportBuildInfoDebug and compileDebugKotlin
  • KT-17960 Improve test of memory leak with Gradle daemon
  • KT-18047 Gradle kotlin options should use unset value as default for languageVersion and apiVersion

Tools. J2K

  • KT-16754 J2K: Apply quick-fixes from EDT thread only
  • KT-16816 Java To Kotlin bug: if + chained assignment doesn't include brackets
  • KT-17230 J2K Deadlock
  • KT-17712 Exception in J2K during InlineCodegen convertion: com.intellij.psi.impl.source.JavaDummyHolder cannot be cast to com.intellij.psi.PsiJavaFile

Tools. JPS

  • KT-16568 modulesWhoseInternalsAreVisible in ModuleDependencies are not filled in for JS projects
  • KT-17387 When compiling in the IDE, progress tracker says "configuring the compilation environment" when it clearly isn't
  • KT-17665 JPS: Kotlin: The '-d' option with a directory destination is ignored because '-module' is specified
  • KT-17801 Unresolved supertypes from JRE on JDK 9 in JPS

Tools. Maven

  • KT-17093 Import from maven: please provide a special tag for coroutine option
  • KT-10028 Support parallel builds in maven
  • KT-15050 Random build failures using maven 3 (multi-thread) + bamboo
  • KT-15318 Intermitent Kotlin compilation errors
  • KT-16283 Maven compiler plugin warns, "Source root doesn't exist"
  • KT-16743 Update configuration options in Kotlin Maven plugin
  • KT-16762 Maven: JS compiler option main is missing

Tools. REPL

  • KT-5822 Exception on package directive in REPL
  • KT-10060 REPL: Cannot execute more than 255 lines
  • KT-17365 REPL crash when referencing a variable whose definition threw an exception

Tools. kapt

  • KT-17245 Kapt: Javac compiler arguments can't be specified in Gradle
  • KT-17418 "The following options were not recognized by any processor: '[kapt.kotlin.generated]'" warning from Javac shouldn't be shown even if no processor supports the generated annotation
  • KT-17456 kapt3: NoClassDefFound com/sun/tools/javac/util/Context
  • KT-17567 Kapt (1.1.2-eap-77) generates invalid Java stub for internal class
  • KT-17620 Kapt3 IC: avoid running AP when API is not changed
  • KT-17959 Kapt3 doesn't preserve method parameter names for abstract methods
  • KT-17999 Cannot use KAPT3 1.1.2-4 in Android Studio java libs (null TypeCastException to WrappedVariantData<*> on Gradle Sync)

1.1.2

Compiler

Front-end

  • KT-16113 Support destructuring parameters of suspend lambda with suspend componentX
  • KT-3805 Report error on double constants out of range
  • KT-6014 Wrong ABSTRACT_MEMBER_NOT_IMPLEMENTED for toString implemented by delegation
  • KT-8959 Missing diagnostic when trying to call inner class constructor qualificated with outer class name
  • KT-12477 Do not report 'const' inapplicability on property of error type
  • KT-11010 NDFDE for local object with type parameters
  • KT-12881 Descriptor wasn't found for declaration TYPE_PARAMETER
  • KT-13342 Unqualified super call should not resolve to a method of supertype overriden in another supertype
  • KT-14236 Allow to use emptyArray in annotation
  • KT-14536 IllegalStateException: Type parameter T not found for lazy class Companion at LazyDeclarationResolver visitTypeParameter
  • KT-14865 Throwable exception at KotlinParser parseLambdaExpression on typing { inside a string inside a lambda
  • KT-15516 Compiler error when passing suspending extension-functions as parameter and casting stuff to Any
  • KT-15802 Java constant referenced using subclass is not considered a constant expression
  • KT-15872 Constant folding is mistakenly triggered for user function
  • KT-15901 Unstable smart cast target after type check
  • KT-15951 Callable reference to class constructor from object is not resolved
  • KT-16232 Prohibit objects inside inner classes
  • KT-16233 Prohibit inner sealed classes
  • KT-16250 Import methods from typealias to object throws compiler exception "Should be class or package: typealias"
  • KT-16272 Missing deprecation and SinceKotlin-related diagnostic for variable as function call
  • KT-16278 Public member method can't be used for callable reference because of private static with the same name
  • KT-16372 'mod is deprecated' warning should not be shown when language version is 1.0
  • KT-16484 SimpleTypeImpl should not be created for error type: ErrorScope
  • KT-16528 Error: Loop in supertypes when using Java classes with type parameters having raw interdependent supertypes
  • KT-16538 No smart cast when equals is present
  • KT-16782 Enum entry is incorrectly forbidden on LHS of '::' with language version 1.0
  • KT-16815 Assertion error from compiler: unexpected classifier: class DeserializedTypeAliasDescriptor
  • KT-16931 Compiler cannot see inner class when for outer class exist folder with same name
  • KT-16956 Prohibit using function calls inside default parameter values of annotations
  • KT-8187 IAE on anonymous object in the delegation specifier list
  • KT-8813 Do not report unused parameters for anonymous functions
  • KT-12112 Do not consider nullability of error functions and properties for smart casts
  • KT-12276 No warning for unnecessary non-null assertion after method call with generic return type
  • KT-13648 Spurious warning: "Elvis operator (?:) always returns the left operand of non-nullable type (???..???)"
  • KT-16264 Forbid usage of _ without backticks
  • KT-16875 Decrease severity of unused parameter in lambda to weak warning
  • KT-17136 ModuleDescriptorImpl.allImplementingModules should be evaluated lazily
  • KT-17214 Do not show warning about useless elvis for error function types
  • KT-13740 Plugin crashes at accidentally wrong annotation argument type
  • KT-17597 Pattern::compile resolves to private instance method in 1.1.2

Back-end

  • KT-8689 NoSuchMethodError on local functions inside inlined lambda with variables captured from outer context
  • KT-11314 Abstract generic class with Array<Array> parameter compiles fine but fails at runtime with "Bad type on operand stack" VerifyError
  • KT-12839 Two null checks are generated when manually null checking platform type
  • KT-14565 Cannot pop operand off empty stack when compiling enum class
  • KT-14566 Make kotlin.jvm.internal.Ref$...Ref classes serializable
  • KT-14567 VerifyError: Bad type on operand stack (generics with operator methods)
  • KT-14607 Incorrect class name "ava/lang/Void from AsyncTask extension function
  • KT-14811 Unecessary checkcast generated in parameterized functions.
  • KT-14963 unnecessary checkcast java/lang/Object
  • KT-15105 Comparing Chars in a Pair results in ClassCastException
  • KT-15109 Subclass from a type alias with named parameter in constructor will produce compiler exception
  • KT-15192 Compiler crashes on certain companion objects: "Error generating constructors of class Companion with kind IMPLEMENTATION"
  • KT-15424 javac crash when calling Kotlin function having generic varargs with default and @JvmOverloads
  • KT-15574 Can't instantiate Array through Type Alias
  • KT-15594 java.lang.VerifyError when referencing normal getter in @JvmStatic getters inside an object
  • KT-15759 tailrec suspend function fails to compile
  • KT-15862 Inline generic functions can unexpectedly box primitives
  • KT-15871 Unnecessary boxing for equality operator on inlined primitive values
  • KT-15993 Property annotations are stored in private fields and killed by obfuscators
  • KT-15997 Reified generics don't work properly with crossinline functions
  • KT-16077 Redundant private getter for private var in a class within a JvmMultifileClass annotated file
  • KT-16194 Code with unnecessary safe call contains redundant boxing/unboxing for primitive values
  • KT-16245 Redundant null-check generated for a cast of already non-nullable value
  • KT-16532 Kotlin 1.1 RC - Android cross-inline synchronized won't run
  • KT-16555 VerifyError: Bad type on operand stack
  • KT-16713 Insufficient maximum stack size
  • KT-16720 ClassCastException during compilation
  • KT-16732 Type 'java/lang/Number' (current frame, stack[0]) is not assignable to 'java/lang/Character
  • KT-16929 VerifyError when using bound method reference on generic property
  • KT-16412 Exception from compiler when try call SAM constructor where argument is callable reference to nested class inside object
  • KT-17210 Smartcast failure results in "Bad type operand on stack" runtime error

Tools

  • KT-15420 Maven, all-open plugin: in console the settings of all-open are always reported as empty
  • KT-11916 Provide incremental compilation for Maven
  • KT-15946 Kotlin-JPA plugin support for @Embeddable
  • KT-16627 Do not make private members open in all-open plugin
  • KT-16699 Script resolving doesn't work with custom templates located in an external jar
  • KT-16812 import in .kts file does not works
  • KT-16927 Using KotlinJsr223JvmLocalScriptEngineFactory causes multiple warnings
  • KT-15562 Service is dying
  • KT-17125 > Failed to apply plugin [id 'kotlin'] > For input string: “”

Kapt

  • KT-12432 Dagger 2 does not generate Component which was referenced from Kotlin file.
  • KT-8558 KAPT only works with service-declared annotation processors
  • KT-16753 kapt3 generates invalid stubs when IC is enabled
  • KT-16458 kotlin-kapt / kapt3: "cannot find symbol" error for companion object with same name as enclosing class
  • KT-14478 Add APT / Kapt support to the maven plugin
  • KT-14070 Kapt3: kapt doesn't compile generated Kotlin files and doesn't use the "kapt.kotlin.generated" folder anymore
  • KT-16990 Kapt3: java.io.File cannot be cast to java.lang.String
  • KT-16965 Error:Kotlin: Multiple values are not allowed for plugin option org.jetbrains.kotlin.kapt:output
  • KT-16184 AbstractMethodError in Kapt3ComponentRegistrar while compiling from IntelliJ 2016.3.4 using Kotlin 1.1.0-beta-38

Gradle

  • KT-15084 Navigation into sources of gradle-script-kotlin doesn't work
  • KT-16003 Gradle Plugin Fails When Run From Jenkins On Multiple Nodes
  • KT-16585 Kotlin Gradle Plugin makes using Gradle Java incremental compiler not work
  • KT-16902 Gradle plugin compilation on daemon fails on Linux ARM
  • KT-14619 Gradle: The '-d' option with a directory destination is ignored because '-module' is specified
  • KT-12792 Automatically configure standard library dependency and set its version equal to compiler version if not specified
  • KT-15994 Compiler arguments are not copied from the main compile task to kapt task
  • KT-16820 Changing compileKotlin.destinationDir leads to failure in :copyMainKotlinClasses task due to an NPE
  • KT-16917 First connection to daemon after start timeouts when DNS is slow
  • KT-16580 Kotlin gradle plugin cannot resolve the kotlin compiler

Android support

  • KT-16624 Implement quickfix "Add TargetApi/RequiresApi annotation" for Android api issues
  • KT-16625 Implement quickfix "Surround with if (VERSION.SDK_INT >= VERSION_CODES.SOME_VERSION) { ... }" for Android api issues
  • KT-16840 Kotlin Gradle plugin fails with Android Gradle plugin 2.4.0-alpha1
  • KT-16897 Gradle plugin 1.1.1 duplicates all main classes into Android instrumentation test APK
  • KT-16957 Android Extensions: Support Dialog class
  • KT-15023 Android gradle installDebugAndroidTest fails unless you first call gradle assembleDebugAndroidTest
  • KT-12769 "Name for method must be provided" error occurs on trying to use spaces in method name in integration tests in Android
  • KT-12819 Kotlin Lint: False positive for "Unconditional layout inflation" when using elvis operator
  • KT-15116 Kotlin Lint: problems in property accessors are not reported
  • KT-15156 Kotlin Lint: problems in annotation parameters are not reported
  • KT-15179 Kotlin Lint: problems inside local function are not reported
  • KT-14870 Kotlin Lint: problems inside local class are not reported
  • KT-14920 Kotlin Lint: "Android Lint for Kotlin | Incorrect support annotation usage" inspection does not report problems
  • KT-14947 Kotlin Lint: "Calling new methods on older versions" could suggest specific quick fixes
  • KT-12741 Android Extensions: Enable IDE plugin only if it is enabled in the build.gradle file
  • KT-13122 Implement '@RequiresApi' intention for android and don't report warning on annotated classes
  • KT-16680 Stack overflow in UAST containsLocalTypes()
  • KT-15451 Support "Android String Reference" folding in Kotlin files
  • KT-16132 Renaming property provided by kotlinx leads to renaming another members
  • KT-17200 Unable to build an android project
  • KT-13104 Incorrect resource name in Activity after renaming ID attribute value in layout file
  • KT-17436 Refactor | Rename android:id corrupts R.id references in kotlin code
  • KT-17255 Kotlin 1.1.2 EAP is broken with 2.4.0-alpha3
  • KT-17610 "Unknown reference: kotlinx"

IDE

  • KT-6159 Inline Method refactoring
  • KT-4578 Intention to move property between class body and constructor parameter
  • KT-8568 Provide a QuickFix to replace type Array<Int> in annotation with IntArray
  • KT-10393 Detect calls to functions returning a lambda from expression body which ignore the return value
  • KT-11393 Inspection to highlight and warn on usage of internal members in other module from Java
  • KT-12004 IDE inspection that destructuring variable name matches the other name in data class
  • KT-12183 Intention converting several calls with same receiver to 'with'/apply/run
  • KT-13111 Support bound references in lambda-to-reference intention / inspection
  • KT-15966 Create quickfix for DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE
  • KT-16074 Introduce a quick-fix adding noinline modifier for a value parameter of suspend function type
  • KT-16131 Add quickfix for: Cannot access member: it is invisible (private in supertype)
  • KT-16188 Add create class quickfix
  • KT-16258 Add intention to add missing components to destructuring assignment
  • KT-16292 Support "Reference to lambda" for bound references
  • KT-11234 Debugger won't hit breakpoint in nested lamba
  • KT-12002 Improve completion for closure parameters to work in more places
  • KT-15768 It would be nice to show in Kotlin facet what compiler plugins are on and their options
  • KT-16022 Kotlin facet: provide UI to navigate to project settings
  • KT-16214 Do not hide package kotlin.reflect.jvm.internal from auto-import and completion, inside package "kotlin.reflect"
  • KT-16647 Don't create kotlinc.xml if the settings don't differ from the defaults
  • KT-16649 All Gradle related classes should be moved to optional dependency section of plugin.xml
  • KT-16800 Autocomplete for closure with single arguments

Bug fixes

  • KT-16316 IDE: don't show Kotlin Scripting section when target platform is JavaScript
  • KT-16317 IDE: some fields stay enabled in an facet when use project settings was chosen
  • KT-16596 Hang in IntelliJ while scanning zips
  • KT-16646 The flag to enable coroutines does not sync from gradle file in Android Studio
  • KT-16788 Importing Kotlin Maven projects results in invalid .iml
  • KT-16827 kotlin javascript module not recognized by gradle sync when an android module is present
  • KT-16848 Regression: completion after dot in string interpolation expression doesn't work if there are no curly braces
  • KT-16888 "Multiple values are not allowed for plugin option org.jetbrains.kotlin.android:package" when rebuilding project
  • KT-16980 Accessing language version settings for a module performs runtime version detection on every access with no caching
  • KT-16991 Navigate to receiver from this in extension function
  • KT-16992 Navigate to lambda start from auto-generated 'it' parameter
  • KT-12264 AssertionError: Resolver for 'completion/highlighting in LibrarySourceInfo for platform JVM' does not know how to resolve ModuleProductionSourceInfo
  • KT-13734 Annotated element search is slow
  • KT-14710 Sample references aren't resolved in IDE
  • KT-16415 Dependency leakage with Kotlin IntelliJ plugin, using gradle-script-kotlin, and the gradle-intellij-plugin
  • KT-16837 Slow typing in Kotlin file because of ImportFixBase
  • KT-16926 'implement' dependency is not transitive when importing gradle project to IDEA
  • KT-17141 Running test from gutter icon fails in AS 2.4 Preview 3
  • KT-17162 Plain-text Java copy-paste to Kotlin file results in exception
  • KT-16714 J2K: Write access is allowed from event dispatch thread only
  • KT-14058 Unexpected error MISSING_DEPENDENCY_CLASS
  • KT-9275 Unhelpful IDE warning "Configure Kotlin"
  • KT-15279 'Kotlin not configured message' should not be displayed while gradle sync is in progress
  • KT-11828 Configure Kotlin in Project: failure for Gradle modules without build.gradle (IDEA creates them)
  • KT-16571 Configure Kotlin in Project does not suggest just published version
  • KT-16590 Configure kotlin warning popup after each sync gradle
  • KT-16353 Configure Kotlin in Project: configurators are not suggested for Gradle module in non-Gradle project with separate sub-modules for source sets
  • KT-16381 Configure Kotlin dialog suggests modules already configured with other platforms
  • KT-16401 Configure Kotlin in the project adds incorrect dependency kotlin-stdlib-jre8 to 1.0.x language
  • KT-12261 Partial body resolve doesn't resolve anything in object literal used as an expression body of a method
  • KT-13013 "Go to Type Declaration" doesn't work for extension receiver and implict lambda parameter
  • KT-13135 IDE goes in an infinite indexing loop if a .kotlin_module file is corrupted
  • KT-14129 for/iter postfix templates should be applied for string, ranges and mutable collections
  • KT-14134 Allow to apply for/iter postfix template to map
  • KT-14871 Idea and Maven is not in sync with ModuleKind for Kotlin projects
  • KT-14986 Disable postfix completion when typing package statements
  • KT-15200 Show implementation should show inherited classes if a typealias to base class/interface is used
  • KT-15398 Annotations find usages in annotation instance site
  • KT-15536 Highlight usages: Class with primary constructor isn't highlighted when caret is on constructor invocation
  • KT-15628 Change error message if both KotlinJavaRuntime and KotlinJavaScript libraries are present in the module dependencies
  • KT-15947 Kotlin facet: Target platform on importing from a maven project should be filled the same way for different artifacts
  • KT-16023 Kotlin facet: When "Use project settings" is enabled, respective fields should show values from the project settings
  • KT-16698 Kotlin facet: modules created from different gradle sourcesets have the same module options
  • KT-16700 Kotlin facet: jdkHome path containing spaces splits into several additional args after import
  • KT-16776 Kotlin facet, import from maven: free arguments from submodule doesn't override arguments from parent module
  • KT-16550 Kotlin facet from Maven: provide error messages if additional command line parameters are set several times
  • KT-16313 Kotlin facet: unify filling up information about included AllOpen/NoArg plugins on importing from Maven and Gradle
  • KT-16342 Kotlin facet: JavaScript platform is not detected if there are 2 versions of stdlib in dependencies
  • KT-16032 Kotlin code formatter merges comment line with non-comment line
  • KT-16038 UI blocked on pasting java code into a kotlin file
  • KT-16062 Kotlin breakpoint doesn't work in some lambda in Rider project.
  • KT-15855 Can't evaluate expression in @JvmStatic method
  • KT-16667 Kotlin debugger "smart step into" fail on method defined in the middle of class hierarchy
  • KT-16078 Formatter puts empty body braces on different lines when KDoc is present
  • KT-16265 Parameter info doesn't work with type alias constructor
  • KT-14727 Wrong samples for some postfix templates
Inspections / Quickfixes
  • KT-17002 Make "Lambda to Reference" inspection off by default
  • KT-14402 Inspection "Use destructuring declaration" for lambdas doesn't work when parameter is of type Pair
  • KT-16857 False "Remove redundant 'let'" suggestion
  • KT-16928 Surround with null check quickfix works badly in case of qualifier
  • KT-15870 Move quick fix of "Package name does not match containing directory" inspection: Throwable "AWT events are not allowed inside write action"
  • KT-16128 'Add label to loop' QF proposed when there's already a label
  • KT-16828 Don't suggest destructing declarations if not all components are used
  • KT-17022 Replace deprecated in the whole project may miss some usages in expression body
Refactorings, Intentions
  • KT-7516 Rename refactoring doesn't rename related labels
  • KT-7520 Exception when try rename label from usage
  • KT-8955 Refactor / Move package: KNPE at KotlinMoveDirectoryWithClassesHelper.postProcessUsages() with not matching package statement
  • KT-11863 Refactor / Move: moving referred file level elements to another package keeps reference to old FQN
  • KT-13190 Refactor / Move: no warning on moving class containing internal member to different module
  • KT-13341 Convert lambda to function reference intention is not available for object member calls
  • KT-13755 When (java?) class is moved redundant imports are not removed
  • KT-13911 Refactor / Move: "Problems Detected" dialog is not shown on moving whole .kt file
  • KT-14401 Can't rename implicit lambda parameter 'it' when caret is placed right after the last character
  • KT-14483 "Argument of NotNull parameter must be not null" in KotlinTryCatchSurrounder when using "try" postfix template
  • KT-15075 KNPE in "Specify explicit lambda signature"
  • KT-15190 Refactor / Move: false Problems Detected on moving class using parent's protected member
  • KT-15250 Convert anonymous object to lambda is shown when conversion not possible due implicit calls on this
  • KT-15339 Extract Superclass is enabled for any element: CommonRefactoringUtil$RefactoringErrorHintException: "Superclass cannot be extracted from interface" at ExtractSuperRefactoring.performRefactoring()
  • KT-15559 Kotlin: Moving classes to different packages breaks references to companion object's properties
  • KT-15556 Convert lambda to reference isn't proposed for parameterless constructor
  • KT-15586 ISE during "Move to a separate file"
  • KT-15822 Move class refactoring leaves unused imports
  • KT-16108 Cannot rename class on the companion object reference
  • KT-16198 Extract method refactoring should order parameters by first usage
  • KT-17006 Refactor / Move: usage of library function is reported as problem on move between modules with different library versions
  • KT-17032 Refactor / Move updates references to not moved class from the same file
  • KT-11907 Move to package renames file to temp.kt
  • KT-16468 Destructure declaration intention should be applicable for Pair
  • KT-16162 IAE for destructuring declaration entry from KotlinFinalClassOrFunSpringInspection
  • KT-16556 Move refactoring shows Refactoring cannot be performed warning.
  • KT-16605 NPE caused by Rename Refactoring of backing field when caret is after the last character
  • KT-16809 Move refactoring fails badly
  • KT-16903 "Convert to primary constructor" doesn't update supertype constructor call in supertypes list in case of implicit superclass constructor call

JS

  • KT-6627 JS: test sources doesn't compile from IDE
  • KT-13610 JS: boxed Double.NaN is not equal to itself
  • KT-16012 JS: prohibit nested declarations, except interfaces inside external interface
  • KT-16043 IDL: mark inline helper function as InlineOnly
  • KT-16058 JS: getValue/setValue don't work if they are declared as suspend
  • KT-16164 JS: Bad getCallableRef in suspend function
  • KT-16350 KotlinJS - wrong code generated when temporary variables generated for RHS of && operation
  • KT-16377 JS: losing declarations of temporary variables in secondary constructors
  • KT-16545 JS: ::class crashes at runtime for primitive types (e.g. Int::class, or Double::class)
  • KT-16144 JS: inliner can't find function called through inheritor ("fake" override) from another module

Reflection

  • KT-9453 ClassCastException: java.lang.Class cannot be cast to kotlin.reflect.KClass
  • KT-11254 Make callable references Serializable on JVM
  • KT-11316 NPE in hashCode of KProperty object created for delegated property
  • KT-12630 KotlinReflectionInternalError on referencing some functions from stdlib
  • KT-14731 When starting application from test source root, kotlin function reflection fails in objects defined in sources

Libraries

  • KT-16922 buildSequence/Iterator: Infinite sequence terminates prematurely
  • KT-16923 Progression iterator doesn't throw after completion
  • KT-16994 Classify sequence operations as stateful/stateless and intermediate/terminal
  • KT-9786 String.trimIndent doc is misleading
  • KT-16572 Add links to Mozilla Developer Network to kdocs of classes that we generate from IDL
  • KT-16252 IDL2K: Add ItemArrayLike interface implementation to collection-like classes

1.1.1

IDE

  • KT-16714 J2K: Write access is allowed from event dispatch thread only

Compiler

  • KT-16801 Accessors of @PublishedApi property gets mangled
  • KT-16673 Potentially problematic code causes exception when work with SAM adapters

Libraries

  • KT-16557 Correct SinceKotlin(1.1) for all declarations in kotlin.reflect.full

1.1.1-RC

IDE

  • KT-16481 Kotlin debugger & bytecode fail on select statement blocks (IllegalStateException: More than one package fragment)

Gradle support

  • KT-15783 Gradle builds don't use incremental compilation due to an error: "Could not connect to kotlin daemon"
  • KT-16434 Gradle plugin does not compile androidTest sources when Jack is enabled
  • KT-16546 Enable incremental compilation in gradle by default

Compiler

  • KT-16184 AbstractMethodError in Kapt3ComponentRegistrar while compiling from IntelliJ using Kotlin 1.1.0
  • KT-16578 Fix substitutor for synthetic SAM adapters
  • KT-16581 VerifyError when calling default value parameter with jvm-target 1.8
  • KT-16583 Cannot access private file-level variables inside a class init within the same file if a secondary constructor is present
  • KT-16587 AbstractMethodError: Delegates not generated correctly for private interfaces
  • KT-16598 Incorrect error: The feature "bound callable references" is only available since language version 1.1
  • KT-16621 Kotlin compiler doesn't report an error if a class implements Annotation interface but doesn't implement annotationType method
  • KT-16441 NoSuchFieldError: $$delegatedProperties when delegating through provideDelegate in companion object

JavaScript support

  • Prohibit function types with receiver as parameter types of external declarations
  • Remove extension receiver for function parameters in jQuery declarations

1.1

Compiler exceptions

  • KT-16411 Exception from compiler when try to inline callable reference to class constructor inside object
  • KT-16412 Exception from compiler when try call SAM constructor where argument is callable reference to nested class inside object
  • KT-16413 When we create sam adapter for java.util.function.Function we add incorrect null-check for argument

Standard library

  • KT-6561 Drop java.util.Collections package from js stdlib
  • javaClass extension property is no more deprecated due to migration problems

IDE

  • KT-16329 Inspection "Calls to staic methods in Java interfaces..." always reports warning undependent of jvm-target

1.1-RC

Reflection

  • KT-16358 Incompatibility between kotlin-reflect 1.0 and kotlin-stdlib 1.1 fixed

Compiler

Coroutine support

  • KT-15938 Changed error message for calling suspend function outside of suspendable context
  • KT-16092 Backend crash fixed: "Don't know how to generate outer expression" for destructuring suspend lambda
  • KT-16093 Annotations are retained during reading the binary representation of suspend functions
  • KT-16122 java.lang.VerifyError fixed in couroutines: (String, null, suspend () -> String)
  • KT-16124 Marked as UNSUPPORTED: suspension points in default parameters
  • KT-16219 Marked as UNSUPPORTED: suspend get/set, in/!in operators for
  • KT-16145 Beta-2 coroutine regression fixed (wrong code generation)

Kapt3

  • KT-15524 Fix javac error reporting in Kotlin daemon
  • KT-15721 JetBrains nullability annotations are now returned from Element.getAnnotationMirrors()
  • KT-16146 Fixed work in verbose mode
  • KT-16153 Ignore declarations with illegal Java identifiers
  • KT-16167 Fixed compilation error with kapt arguments in build.gradle
  • KT-16170 Stub generator now adds imports for corrected error types to stubs
  • KT-16176 javac's finalCompiler log is now used to determine annotation processing errors

Backward compatibility

  • KT-16017 More graceful error message for disabled features
  • KT-16073 Improved backward compatibility mode with version 1.0 on JDK dependent built-ins
  • KT-16094 Compiler considers API availability when compiling language features requiring runtime support
  • KT-16171 Fixed regression "Unexpected container error on Kotlin 1.0 project"
  • KT-16199 Do not import "kotlin.comparisons.*" by default in language version 1.0 mode

Various issues

  • KT-16225 enumValues non-reified stub implementation references nonexistent method no more
  • KT-16291 Smart cast works now when getting class of instance
  • KT-16380 Show warning when running the compiler under Java 6 or 7

JavaScript backend

  • KT-16144 Fixed inlining of functions called through inheritor ("fake" override) from another module
  • KT-16158 Error is not reported now when library path contains JAR file without JS metadata, report warning instead
  • KT-16160 Companion object dispatch receiver translation fixed

Standard library

  • KT-7858 Add extension function takeUnless
  • javaClass extension property is deprecated, use instance::class.java instead
  • Massive deprecations are coming in JS standard library in kotlin.dom and kotlin.dom.build packages

IDE

Configuration issues

  • KT-15899 Kotlin facet: language and api version for submodule setup for 1.0 are filled now as 1.0 too
  • KT-15914 Kotlin facet works now with multi-selected modules in Project Settings too
  • KT-15954 Does not suggest to configure kotlin for the module after each new kt-file creation
  • KT-16157 freeCompilerArgs are now imported from Gradle into IDEA
  • KT-16206 Idea no more refuses to compile a kotlin project defined as a maven project
  • KT-16312 Kotlin facet: import from gradle: don't import options which are set implicitly already
  • KT-16325 Kotlin facet: correct configuration after upgrading the IDE plugin
  • KT-16345 Kotlin facet: detect JavaScript if the module has language 1.0 kotlin-js-library dependency

Coroutine support

  • KT-16109 Error fixed: The -Xcoroutines can only have one value
  • KT-16251 Fix detection of suspend calls containing extracted parameters

Intention actions, inspections and quick-fixes

2017.1 compatibility
  • KT-15870 "Package name does not match containing directory" inspection: fixed throwable "AWT events are not allowed inside write action"
  • KT-15924 Create Test action: fixed throwable "AWT events are not allowed inside write action"
Bug fixes
  • KT-14831 Import statement and FQN are not added on converting lambda to reference for typealias
  • KT-15545 Inspection "join with assignment" does not change now execution order for properties
  • KT-15744 Fix: intention to import sleep wrongly suggests Thread.sleep
  • KT-16000 Inspection "join with assignment" handles initialization with 'this' correctly
  • KT-16009 Auto-import for JDK classes in .kts files
  • KT-16104 Don't insert modifiers (e.g. suspend) before visibility

Completion

  • KT-16076 Completion does not insert more FQN kotlin.text.String
  • KT-16088 Completion does not insert more FQN for kotlin package
  • KT-16110 Keyword 'suspend' completion inside generic arguments
  • KT-16243 Performance enhanced after variable of type ArrayList

Various issues

  • KT-15291 'Find usages' now does not report property access as usage of getter method in Java class with parameter
  • KT-15647 Exception fixed: KDoc link to member of class from different package and module
  • KT-16071 IDEA deadlock fixed: when typing "parse()" in .kt file
  • KT-16149 Intellij Idea 2017.1/Android Studio 2.3 beta3 and Kotlin plugin 1.1-beta2 deadlock fixed

Coroutine libraries

  • KT-15716 Introduced startCoroutineUninterceptedOrReturn coroutine intrinsic
  • KT-15718 createCoroutine now returns safe continuation
  • KT-16155 Introduced createCoroutineUnchecked intrinsic

Gradle support

  • KT-15829 Gradle Kotlin JS plugin: removed false "Duplicate source root:" warning for kotlin files
  • KT-15902 JS: gradle task output is now considered as source set output
  • KT-16174 Error fixed during IDEA-Gradle synchronization for Kotlin JS
  • KT-16267 JS: fixed regression in 1.1-beta2 for multi-module gradle project
  • KT-16274 Kotlin JS Gradle unexpected compiler error / absolute path to output file
  • KT-16322 Circlet project Gradle import issue fixed

REPL

  • KT-15861 Use windows line separator in kotlin's JSR implementation
  • KT-16126 Proper jvmTarget for REPL compilation

1.1-Beta2

Language related changes

  • KT-7897 Do not require to call enum constructor for each entry if all parameters have default values
  • KT-8985 Support T::class.java for T with no non-null upper bound
  • KT-10711 Type inference works now on generics for callable references
  • KT-13130 Support exhaustive when for sealed trees
  • KT-15898 Cannot use type alias to qualify enum entry
  • KT-16061 Smart type inference on callable references in 1.1 mode only

Reflection

  • KT-8384 Access to the delegate object for a KProperty

Compiler

Coroutine support

  • KT-15016 VerifyError with coroutine: fix processing of uninitialized instances
  • KT-15527 Coroutine compile error: wrong code generated for safe qualified suspension points
  • KT-15552 Accessor implementation of suspended function produces AbstractMethodError
  • KT-15715 Coroutine generate invalid invoke
  • KT-15820 Coroutine Internal Error regression with dispatcher + this@
  • KT-15821 Coroutine internal error regression: Could not inline method call apply
  • KT-15824 Coroutine iterator regression: Object cannot be cast to java.lang.Boolean
  • KT-15827 Show Kotlin Bytecode shows wrong bytecode for suspending functions
  • KT-15907 Bogus error about platform declaration clash with private suspend functions
  • KT-15933 Suspend getValue/setValue/provideDelegate do not work properly
  • KT-15935 Private suspend function in file causes UnsupportedOperationException: Context does not have a "this"
  • KT-15963 Coroutine: runtime error if returned object "equals" does not like comparison to SUSPENDED_MARKER
  • KT-16068 Prohibit inline lambda parameters of suspend function type

Diagnostics

  • KT-1560 Report diagnostic for a declaration of extension function which will be always shadowed by member function
  • KT-12846 Forbid vararg of Nothing
  • KT-13227 NO_ELSE_IN_WHEN in when by sealed class instance if is-check for base sealed class is used
  • KT-13355 Type mismatch on inheritance is not reported on abstract class
  • KT-15010 Missing error on an usage of non-constant property in annotation default argument
  • KT-15201 Compiler is complaining about when statement without null condition even if null is checked before.
  • KT-15736 Report an error on type alias expanded to a nullable type on LHS of a class literal
  • KT-15740 Report error on expression of a nullable type on LHS of a class literal
  • KT-15844 Do not allow to access primary constructor parameters from property with custom getter
  • KT-15878 Extension shadowed by member should not be reported for infix/operator extensions when member is non-infix/operator
  • KT-16010 Do not highlight lambda parameters as unused in 1.0 compatibility mode

Kapt

  • KT-15675 Kapt3 does not generate classes annotated with AutoValue
  • KT-15697 If an annotation with AnnotationTarget.PROPERTY is tagged on a Kotlin property, it breaks annotation processing
  • KT-15803 Kotlin 1.0.6 broke Dagger
  • KT-15814 Regression: Kapt is not working in 1.0.6 / 1.1-M04 / 1.1-Beta
  • KT-15838 kapt3 1.1-beta: KaptError: Java file parsing error
  • KT-15841 1.1-Beta + kapt3 fails to build the project with StackOverflowError
  • KT-15915 Kapt: Kotlin class target directory is cleared before compilation (and after kapt task)
  • KT-16006 Cannot determine if type is an error type during annotation processing

Exceptions / Errors

  • KT-8264 Internal compiler error: java.lang.ArithmeticException: BigInteger: modulus not positive
  • KT-14547 NoSuchElementException when compiling callable reference without stdlib in the classpath
  • KT-14966 Regression: VerifyError on access super implementation from delegate
  • KT-15017 Throwing exception in the end of inline suspend-functions lead to internal compiler error
  • KT-15439 Resolved call is not completed for generic callable reference in if-expression
  • KT-15500 Exception passing freeCompilerArgs to gradle plugin
  • KT-15646 InconsistentDebugInfoException when stepping over throw
  • KT-15726 Kotlin compiles invalid bytecode for nested try-catch with return
  • KT-15743 Overloaded Kotlin extensions annotates wrong parameters in java
  • KT-15868 NPE when comparing nullable doubles for equality
  • KT-15995 Can't build project with DataBinding using Kotlin 1.1: incompatible language version
  • KT-16047 Internal Error: org.jetbrains.kotlin.util.KotlinFrontEndException while analyzing expression

Type inference issues

  • KT-10268 Wrong type inference related to captured types
  • KT-11259 Wrong type inference for Java 8 Stream.collect.
  • KT-12802 Type inference failed when irrelevant method reference is used
  • KT-12964 Support type inference for callable references from parameter types of an expected function type

Smart cast issues

  • KT-13468 Smart cast is broken after assignment of 'if' expression
  • KT-14350 Make smart-cast work as it does in 1.0 when -language-version 1.0 is used
  • KT-14597 When over smartcast enum is broken and breaks all other "when"
  • KT-15792 Wrong smart cast after y = x, x = null, y != null sequence

Various issues

  • KT-15236 False positive: Null can not be a value of a non-null type
  • KT-15677 Modifiers and annotations are lost on a (nullable) parenthesized type
  • KT-15707 IDEA unable to parallel compile different projects
  • KT-15734 Nullability is lost during expansion of a type alias
  • KT-15748 Type alias constructor return type should have a corresponding abbreviation
  • KT-15775 Annotations are lost on value parameter types of a function type
  • KT-15780 Treat Map.getOrDefault overrides in Java the same way as in 1.0.x compiler with language version 1.0
  • KT-15794 Refine backward compatibility mode for additional built-ins members from JDK
  • KT-15848 Implement additional annotation processing in the KotlinScriptDefinitionFromAnnotatedTemplate for SamWithReceiver plugin
  • KT-15875 Operation has lead to overflow for 'mod' with negative first operand
  • KT-15945 Feature Request: Andrey Breslav to grow a beard.

JavaScript backend

Coroutine support

  • KT-15834 JS: Local delegate in suspend function
  • KT-15892 JS: safe call of suspend functions causes compiler to crash

Diagnostics

  • KT-14668 Do not allow declarations in 'kotlin' package or subpackages in JS
  • KT-15184 JS: prohibit .. operation with dynamic on left-hand side
  • KT-15253 JS: no error when use class external class with JsModule in type context when compiling with plain module kind
  • KT-15283 JS: additional restrictions on dynamic
  • KT-15961 Could not implement external open class with function with optional parameter

Language feature support

  • KT-14035 JS: support implementing CharSequence
  • KT-14036 JS: use Int16 for Char when it possible and box to our Char otherwise
  • KT-14097 Wrong code generated for enum entry initialization using non-primary no-argument constructor
  • KT-15312 JS: map kotlin.Throwable to JS Error
  • KT-15765 JS: support callable references on built-in and intrinsic functions and properties
  • KT-15900 JS: Support enum entry with empty initializer with vararg constructor

Standard library support

  • KT-4141 JS: wrong return type for Date::getTime
  • KT-4497 JS: add String.toInt, String.toDouble etc extension functions, parseInt and parseFloat are deprecated in favor of these new ones
  • KT-15940 JS: rename all js standard library artifacts (both in maven and in compiler distribution) to kotlin-stdlib-js.jar
  • Add Promise<T> external declaration to the standard library
  • Types like Date, Math, Console, Promise, RegExp, Json require explicit import from kotlin.js package

External declarations

  • KT-15144 JS: rename noImpl to definedExternally
  • KT-15306 JS: allow to use definedExternally only inside a body of external declarations
  • KT-15336 JS: allow to inherit external classes from kotlin.Throwable
  • KT-15905 JS: add a way to control qualifier for external declarations inside file
  • Deprecate @native annotation, to be removed in 1.1 release.

Exceptions / Errors

  • KT-10894 Infinite indexing at projects with JS modules
  • KT-14124 AssertionError: strings file not found on K2JS serialized data

Various issues

  • KT-8211 JS: generate dummy init for properties w/o initializer to avoid to have different hidden classes for different instances
  • KT-12712 JS: Json should not be a class
  • KT-13312 JS: can't use extension lambda where expected lambda and vice versa
  • KT-13632 Add template kotlin js project under gradle in "New Project" window
  • KT-15278 JS: don't treat property access through dynamic as side effect free
  • KT-15285 JS: take into account as many characteristics from the signature as possible when mangling
  • KT-15678 JS: Generated local variable named 'element' clashes with actual local variable named 'element'
  • KT-15755 JS compiler produces a lot of empty kotlin_file_table files for irrelevant packages
  • KT-15770 Name clash between recursive local functions with same name
  • KT-15797 JS: wrong code for accessing nested class inside js module
  • KT-15863 JS: Extension function reference shifts parameters loosing the receiver
  • KT-16049 JS: drop "-kjsm" command line option, merge the logic into "-meta-info"
  • KT-16083 JS: rename "-library-files" argument to "-libraries" and change separator from comma to system file separator

Standard Library

  • KT-13353 Add Map.minus(key) and Map.minus(keys)
  • KT-13826 Add parameter names in function types used in the standard library
  • KT-14279 Make String.matches(Regex) and Regex.matches(String) infix
  • KT-15399 Iterable.average() now returns NaN for an empty collection
  • KT-15975 Move coroutine-related runtime parts to kotlin.coroutines.experimental package
  • KT-16030 Move bitwise operations on Byte and Short to kotlin.experimental package
  • KT-16026 Classes compiled in 1.1 in 1.0-compatibility mode may contain references to CloseableKt class from 1.1

IDE

Configuration issues

  • KT-15621 Copy compiler options values from project settings on creating a kotlin facet for Kotlin (JVM) project
  • KT-15623 Copy compiler options values from project settings on creating a kotlin facet for Kotlin (JavaScript) project
  • KT-15624 Set option "Use project settings" in newly created Kotlin facet
  • KT-15712 Configuring a project with Maven or Gradle should automatically use stdlib-jre7 or stdlib-jre8 instead of standard stdlib
  • KT-15772 Facet does not pick up api version from maven
  • KT-15819 It would be nice if compileKotlin options are imported into Kotlin facet from gradle/maven
  • KT-16015 Prohibit api-version > language-version in Facet and Project Settings

Coroutine support

  • KT-14704 Extract Method should work in coroutines
  • KT-15955 Quick-fix to enable coroutines through Gradle project configuration
  • KT-16018 Hide coroutines intrinsics from import and completion
  • KT-16075 Error:Kotlin: The -Xcoroutines can only have one value

Backward compatibility issues

  • KT-15134 Do not suggest using destructuring lambda if this will result in "available since 1.1" error
  • KT-15918 Quick fix "Set module language level to 1.1" should also set API version to 1.1
  • KT-15969 Replace operator with function should use either rem or mod for % depending on language version
  • KT-15978 Type alias from Kotlin 1.1 are suggested in completion even if language level is set to 1.0 in settings
  • KT-15979 Usages of type aliases are not shown as errors in editor if language version is set to 1.0
  • KT-16019 Do not suggest renaming to underscore in 1.0 compatibility mode
  • KT-16036 "Create type alias from usage" quick-fix should not be suggested at language level 1.0

Intention actions, inspections and quick-fixes

New features
  • KT-9912 Merge ifs intention
  • KT-13427 "Specify type explicitly" should support type aliases
  • KT-15066 "Make private/.." intention on type aliases
  • KT-15709 Add inspection for private primary constructors in data classes as they are accessible via the copy method
  • KT-15738 Intention to add suspend modifier to functional type
  • KT-15800 Quick-fix to convert a function to suspending on error when calling suspension inside
Bug fixes
  • KT-13710 Import intention action should not appear in import list
  • KT-14680 import statement to type alias reported as unused when using only TA constructor
  • KT-14856 TextView internationalisation intention does not report the problem
  • KT-14993 Keep destructuring declaration parameter on inspection "Remove explicit lambda parameter types"
  • KT-14994 PsiInvalidElementAccessException and incorrect generation on inspection "Specify type explicitly" on destructuring parameter
  • KT-15162 "Remove explicit lambda parameter types" intentions fails with destructuring declaration with KNPE at KtPsiFactory.createLambdaParameterList()
  • KT-15311 "Add Import" intention generates incorrect code
  • KT-15406 Convert to secondary constructor for enum class should put new members after enum values
  • KT-15553 Copy concatenation text to clipboard with Kotlin and string interpolation does not work
  • KT-15670 'Convert to lambda' quick fix in IDEA leaves single-line comment and } gets commented out
  • KT-15873 Alt+Enter menu isn't shown for deprecated mod function
  • KT-15874 Replace operator with function call replaces % with deprecated mod
  • KT-15884 False positive "Redundant .let call"
  • KT-16072 Intentions to convert suspend lambdas to callable references should not be shown

Android support

  • KT-13275 Kotlin Gradle plugin for Android does not work when jackOptions enabled
  • KT-15150 Android: Add quick-fix to generate View constructor convention
  • KT-15282 Issues debugging crossinline Android code

KDoc

  • KT-14710 Sample references are not resolved in IDE
  • KT-15796 Import of class referenced only in KDoc not preserved after copy-paste

Various issues

  • KT-9011 Shift+Enter should insert curly braces when invoked after class declaration
  • KT-11308 Hide kotlin.jvm.internal package contents from completion and auto-import
  • KT-14252 Completion could suggest constructors available via type aliases
  • KT-14722 Completion list isn't filled up for type alias to object
  • KT-14767 Type alias to annotation class should appear in the completion list
  • KT-14859 "Parameter Info" sometimes does not work properly inside lambda
  • KT-15032 Injected fragment: descriptor was not found for declaration: FUN
  • KT-15153 Support typeAlias extensions in completion and add import
  • KT-15786 NoSuchMethodError: com.intellij.util.containers.UtilKt.isNullOrEmpty
  • KT-15883 Generating equals() and hashCode(): hashCode does not correctly honor variable names with back ticks
  • KT-15911 Kotlin REPL will not launch: "Neither main class nor JAR path is specified"

J2K

  • KT-15789 Kotlin plugin incorrectly converts for-loops from Java to Kotlin

Gradle support

  • KT-14830 Kotlin Gradle plugin configuration should not add 'kotlin' source directory by default
  • KT-15279 'Kotlin not configured message' should not be displayed while gradle sync is in progress
  • KT-15812 Create Kotlin facet on importing gradle project with unchecked option Create separate module per source set
  • KT-15837 Gradle compiler attempts to connect to daemon on address derived from DNS lookup
  • KT-15909 Copy Gradle compiler options to facets in Intellij/AS
  • KT-15929 Gradle project imported with wrong 'target platform'

Other issues

  • KT-15450 JSR 223 - support eval with bindings

1.1.0-Beta

Reflection

  • KT-15540 findAnnotation returns T?, but it throws NoSuchElementException when there is no matching annotation
  • Reflection API in kotlin-reflect library is moved to kotlin.reflect.full package, declarations in the package kotlin.reflect are left deprecated. Please migrate according to the hints provided.

Compiler

Coroutine support

  • KT-15379 Allow invoke on instances of suspend function type inside suspend function
  • KT-15380 Support suspend function type with value parameters
  • KT-15391 Prohibit suspend function type in supertype list
  • KT-15392 Prohibit local suspending function
  • KT-15413 Override regular functions with suspending ones and vice versa
  • KT-15657 Refine dispatchResume convention
  • KT-15662 Prohibit callable references to suspend functions

Diagnostics

  • KT-9630 Cannot create extension function on intersection of types
  • KT-11398 Possible false positive for INACCESSIBLE_TYPE
  • KT-13593 Do not report USELESS_ELVIS_RIGHT_IS_NULL for left argument with platform type
  • KT-13859 Wrong error about using unrepeatable annotation when mix implicit and explicit targets
  • KT-14179 Prohibit to use enum entry as type parameter
  • KT-15097 Inherited platform declarations clash: regression under 1.1 when indirectly inheriting from java.util.Map
  • KT-15287 Kotlin runtime 1.1 and runtime 1.0.x: Overload resolution ambiguity
  • KT-15334 Incorrect "val cannot be reassigned" inside do-while
  • KT-15410 "Protected function call from public-API inline function" for protected constructor call

Kapt3

  • KT-15145 Kapt3: Doesn't compile with multiple errors
  • KT-15232 Kapt3 crash due to java codepage
  • KT-15359 Kapt3 exception while annotation processing (DataBindings AS2.3-beta1)
  • KT-15375 Kapt3 can't find ${env.JDK_18}/lib/tools.jar
  • KT-15381 Unresolved references: R with Kapt3
  • KT-15397 Kapt3 doesn't work with databinding
  • KT-15409 Kapt3 Cannot find the getter for attribute 'android:text' with value type java.lang.String on android.widget.EditText.
  • KT-15421 Kapt3: Substitute types from Psi instead of writing NonExistentClass for generated type names
  • KT-15459 Kapt3 doesn't generate code in test module
  • KT-15524 Kapt3 - Error messages should display associated element information (if available)
  • KT-15713 Kapt3: circular dependencies between Gradke tasks

Exceptions / Errors

  • KT-11401 Error type encountered for implicit invoke with function literal argument
  • KT-12044 Assertion "Rewrite at slice LEXICAL_SCOPE" for 'if' with property references
  • KT-14011 Compiler crash when inlining: lateinit property allRecapturedParameters has not been initialized
  • KT-14868 CCE in runtime while converting Number to Char
  • KT-15364 VerifyError: Bad type on operand stack on ObserverIterator.hasNext
  • KT-15373 Internal error when running TestNG test
  • KT-15437 VerifyError: Bad local variable type on simplest provideDelegate
  • KT-15446 Property reference on an instance of subclass causes java.lang.VerifyError
  • KT-15447 Compiler backend error: "Don't know how to generate outer expression for class"
  • KT-15449 Back-end (JVM) Internal error: Couldn't inline method call
  • KT-15464 Regression: "Supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath:"
  • KT-15575 VerifyError: Bad type on operand stack

Various issues

  • KT-11962 Super call with default parameters check is generated for top-level function
  • KT-11969 ProGuard issue with private interface methods
  • KT-12795 Write information about sealed class inheritors to metadata
  • KT-13718 ClassFormatError on aspectj instrumentation
  • KT-14162 Support @InlineOnly on inline properties
  • KT-14705 Inconsistent smart casts on when enum subject
  • KT-14917 No way to pass additional java command line options to kontlinc on Windows
  • KT-15112 Compiler hangs on nested lock compilation
  • KT-15225 Scripts: generate classes with names that are valid Java identifiers
  • KT-15411 Unnecessary CHECKCAST bytecode when dealing with null
  • KT-15473 Invalid KFunction byte code signature for callable references
  • KT-15582 Generated bytecode is sometimes incompatible with Java 9
  • KT-15584 Do not mark class files compiled with a release language version as pre-release
  • KT-15589 Upper bound for T in KClass can be implicitly violated using generic function
  • KT-15631 Compiler hang in MethodAnalyzer.analyze() fixed

JavaScript backend

Coroutine support

  • KT-15362 JS: Regex doesn't work (properly) in coroutine
  • KT-15366 JS: error when calling inline function with optional parameters from another module inside coroutine lambda
  • KT-15367 JS: for against iterator with suspend next and hasNext functions does not work
  • KT-15400 suspendCoroutine is missing in JS BE
  • KT-15597 Support non-tail suspend calls inside named suspend functions
  • KT-15625 JS: return statement without value surrounded by try..finally in suspend lambda causes compiler error
  • KT-15698 Move coroutine intrinsics to kotlin.coroutine.intrinsics package

Diagnostics

  • KT-14577 JS: do not report declaration clash when common redeclaration diagnostic applies
  • KT-15136 JS: prohibit inheritance from kotlin Function{N} interfaces

Language features support

  • KT-12194 Exhaustiveness check isn't generated for when expressions in JS at all
  • KT-15590 Support increment on inlined properties

Native / external

  • KT-8081 JS: native inherited class shouldn't require super or primary constructor call
  • KT-13892 JS: restrictions for native (external) functions and properties
  • KT-15307 JS: prohibit inline members inside external declarations
  • KT-15308 JS: prohibit non-abstract members inside external interfaces except nullable properties (with accessors)

Exceptions / Errors

  • KT-7302 KotlinJS - Trait with optional parameter causes compilation error
  • KT-15325 JS: ReferenceError: $receiver is not defined
  • KT-15357 JS: when expression in primary-from-secondary constructor call
  • KT-15435 Call to 'synchronize' crashes JS backend
  • KT-15513 JS: empty do..while loop crashes compiler

Various issues

  • KT-4160 JS: compiler produces wrong code for escaped variable names with characters which Illegal in JS (e.g. spaces)
  • KT-7004 JS: functions named call not inlined
  • KT-7588 JS: operators are not inlined
  • KT-7733 JS: Provide overflow behavior for integer arithmetic operations
  • KT-8413 JS: generated wrong code for some float constants
  • KT-12598 JS: comparisons for Enums always translates using strong operator
  • KT-13523 Augmented assignment with array access in LHS is translated incorrectly
  • KT-13888 JS: change how functions optional parameters get translated
  • KT-15260 JS: don't import module more than once
  • KT-15475 JS compiler deletes internal function name in js("") text block
  • KT-15506 JS: invalid evaluation order when passing arguments to function by name
  • KT-15512 JS: wrong result when use break/throw/return in || and && operators
  • KT-15569 js: Wrong code generated when calling an overloaded operator function on an inherited property

Standard Library

  • KEEP-23 Operation to group by key and fold each group simultaneously
  • KT-15774 buildSequence and buildIterator functions with yield and yieldAll based on coroutines
  • KT-6903 Add also extension, which is like apply, but with it instead of this inside lambda.
  • KT-7858 Add extension function takeIf to match a value against predicate and return null when it does not match