Skip to content

Kotlin 1.4.0

Compare
Choose a tag to compare
@erokhins erokhins released this 14 Aug 15:50
· 63 commits to 1.4.0 since this release

Contents

The release contents the JVM version of the Kotlin compiler, and also the Kotlin/Native compiler for the supported platforms: Linux, macOS and Windows.

Changelog

1.4.0

Compiler

New Features

  • KT-23729 Provide a way to generate JVM default method bodies in interfaces delegating to DefaultImpls
  • KT-30330 Introduce KotlinNothingValueException and throw it instead of NPE on expressions of type Nothing
  • KT-38435 Support suspend conversion on callable references in JVM backend

Fixes

  • KT-35483 NI: compatibility mode
  • KT-39728 Declarations from kotlin.reflect resolved to expect-classes even in JVM modules in IDE
  • KT-40153 REPL IDE services completion fails on imports completion
  • KT-40404 Mixed named/positional arguments: argument can be passed twice
  • KT-40544 NI: "TYPE_MISMATCH: Required: MutableList<out T!> Found: List" caused by Java interface function
  • KT-40555 NI: Spread operator allows inferred nullable types
  • KT-40646 NI: TYPE_MISMATCH: "inferred type is Unit but Observer was expected" caused by LieData.observe inference
  • KT-40691 False positive CAPTURED_VAL_INITIALIZATION with EXACTLY_ONCE contract
  • KT-40693 UnsupportedOperationException: no descriptor for type constructor of (CapturedType(out TResult)..CapturedType(out TResult)?)
  • KT-40824 Usages of a typealias lose nullability and annotations in deserialization
  • KT-40843 Unhandled exception for suspending methods that return Result type
  • KT-40869 Recursion computation inside compiler resolve on a correct code
  • KT-40893 Error "Captured values initialization is forbidden due to possible reassignment" when attempting to use the plusAssign operator with a java list inside an inline function
  • KT-40919 kotlin.collections.ArrayDeque requires an explicit import when compiling with kotlinc 1.4-RC and -language-version 1.3
  • KT-40920 Regression in JvmDefault: incorrect access to missing DefaultImpls on default methods in Java interface overriding Kotlin interface
  • KT-40978 Prohibit using suspend functions as SAM in fun interfaces

Kotlin/Native

  • Objective-C/Swift interop:
    • Reworked exception handling (GH-3822, GH-3842)
    • Enabled support for Objective-C generics by default (GH-3778)
    • Support for Kotlin’s suspending functions (GH-3915)
    • Handle variadic block types in ObjC interop (KT-36766)
  • Added native-specific frontend checkers (implemented in the main Kotlin repository: GH-3293, GH-3091, GH-3172)
  • .dSYMs for release binaries on Apple platforms (GH-4085)
  • Improved compilation time of builds with interop libraries by reworking cinterop under the hood.
  • Experimental mimalloc allocator support (-Xallocator=mimalloc) to improve execution time performance. (GH-3704)
  • Tune GC to improve execution time performance
  • Various fixes to compiler caches and Gradle daemon usage

Docs & Examples

  • KT-35218 Fix misleading in JavaDoc for createTempDir/createTempFile
  • KT-36981 Provide a visual illustration of source sets structure generated by ios(), watchos(), tvos() presets
  • KT-38050 Language Guide: MPP reference: add sample of language settings for all roots instead of common root only

IDE

  • KT-30265 IDE, MPP: False negative TYPE_PARAMETER_AS_REIFIED in common code
  • KT-40494 UAST: "NoSuchElementException: No element of given type found" with use-site target annotation
  • KT-40639 Shift IDE plugins updater numbers for Kotlin plugin

IDE. Code Style, Formatting

  • KT-40636 Hard freeze on formatter: infinite recursion

IDE. Gradle Integration

  • KT-30116 IDE: Unresolved reference in MPP module (androidMain source set) for annotation from common module (defined in commonMain and with JVM target)

IDE. Gradle. Script

  • KT-34552 Deadlock in ScriptDefinitionsManager
  • KT-40675 Gradle build file is not highlighted until navigating to symbol

IDE. JS

  • KT-40461 Create new projects with kotlin.js.generate.executable.default=false

IDE. Script

  • KT-39547 Kotlin script support freezes IDEA
  • KT-40242 gradle.kts: Deadlock in ScriptClassRootsUpdater

IDE. Wizards

  • KT-36153 New Project Wizard: provide more referential info on project structure editor screen
  • KT-39904 New Project wizard 1.4: update Frontend Application to make it run with JS IR
  • KT-40149 Gradle project wizard: templates for Kotlin/JS are not properly formatted

JavaScript

  • KT-25859 JS: support function references to functions with vararg if expected type ends with repeated vararg element type
  • KT-40083 K/JS-IR: java.lang.IllegalStateException: has not acquired a symbol yet
  • KT-40892 KJS, IR: Unresolved references on importing classes from kotlinx-nodejs

Libraries

  • KT-39051 Libraries native artifacts are published without sources

Tools. Gradle

  • KT-27816 Provide a possibility to specify intermediate source sets between platform-agnostic and platform-specific test source sets
  • KT-37720 Replace ArtifactTransform with TransformAction
  • KT-40559 Adding the stdlib by default triggers warning in the Android Gradle Plugin

Tools. Gradle. JS

  • KT-40093 Incorrect updating version of Kotlin/JS dependencies in package.json

Tools. Gradle. Multiplatform

  • KT-27320 Provide a way to reuse same sources for similar Native target
  • KT-40058 NPE from mpp gradle plugin on kotlinx.benchmarks

Tools. Gradle. Native

  • KT-40801 Gradle CocoaPods integration: Cannot change a framework name

1.4-RC

Backend. Native

  • KT-40209 java.lang.UnsupportedOperationException: org.jetbrains.kotlin.ir.declarations.impl.IrValueParameterImpl@76484173
  • KT-40367 Kotlin/Native-Swift interop (iOS): Array member initialization failing in release builds

Compiler

Fixes

  • KT-31025 Type mismatch when callable reference is resolved with a functional expected type and SAM conversion
  • KT-37388 Consider relaxing rules about inferring Nothing inside special constructions (if, try, when)
  • KT-37717 NI: "IllegalStateException: Error type encountered" with @BuilderInference
  • KT-38427 New inference in branched conditions (if, when) results in odd behavior with inconsistent compiler warnings and runtime errors
  • KT-38899 NI: False positive IMPLICIT_NOTHING_TYPE_ARGUMENT_IN_RETURN_POSITION leads to NPE
  • KT-39468 NI: overload resolution ambiguity between functions passing T and Foo<T> with a contravariant receiver
  • KT-39618 NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER: unable to infer generic type on @BuilderInference annotated lambda parameter with receiver type
  • KT-39633 NI: Incorrect type parameter instantiation based on contravariant type argument
  • KT-39691 NI: Missing SAM conversion for nullable lambda
  • KT-39860 Make Kotlin binaries publicly available (set KotlinCompilerVersion.IS_PRE_RELEASE = false)
  • KT-39900 NI: Incorrect type inference in a lambda returning Unit
  • KT-39925 New JVM default compilation mode doesn't check that JVM target is 1.8
  • KT-39943 Write information about all-compatibility mode in metadata
  • KT-39953 NI: ClassCastException "cannot be cast to java.lang.Void" with if-else in return statement in ANdroid project
  • KT-40045 NI: lambda’s receiver type isn't inferred properly
  • KT-40057 NI: provideDelegate org.jetbrains.kotlin.codegen.CompilationException: Back-end (JVM) Internal error: wrong bytecode generated for static initializer
  • KT-40060 NI: postponed variable from the builder inference flows to back-end and leads to throw an exception
  • KT-40112 Kotlin Gradle DSL: COMPATIBILITY_WARNING on kotlin.sourceSets block
  • KT-40113 Kotlin Gradle DSL: "Expression 'main' cannot be invoked as a function" for distributions.main DSL block
  • KT-40128 Introduce compiler key to disable compatibility resolution mechanism for new inference features
  • KT-40151 NI: postponed variable isn't substituted for top-level CR inside builder inference
  • KT-40214 AbstractMethodError in gradle subplugin which is used in Android app
  • KT-40234 Deprecation level "hidden" has no effect on callable reference argument
  • KT-40247 NI: false positive "function should be called from coroutine or another suspend function" for suspend invoke operator in try-catch
  • KT-40254 Rewrite at slice with two callable reference arguments
  • KT-40269 NI: "disabled Unit conversions" error has appeared on green code
  • KT-40337 NI: false positive "function should be called from coroutine or another suspend function" for suspend invoke operator in when block
  • KT-40406 Prohibit reflection on adapted callable references

IDE

  • KT-39968 Paths in KotlinJavaRuntime library aren't updated after you run IDE from a different directory
  • KT-39989 NullPointerException when opening Kotlin facets in Project Structure dialog in IDEA 192
  • KT-40311 Create change_notes for 1.4 in IDE plugin description

IDE. Debugger

  • KT-39808 (CoroutineDebugger) Doesn't start with kotlinx-coroutines-core >= 1.3.6
  • KT-40073 (CoroutineDebugger) Change minimum supported kotlinx.coroutines version to 1.3.8*
  • KT-40172 Restored frame variables isn't shown for suspended coroutines
  • KT-40635 Coroutines Debugger: make IDE plugin accept coroutines 1.3.8-rc* versions as well

IDE. Gradle Integration

  • KT-38744 No dependency between Android test and commonTest source sets with kotlin.mpp.enableGranularSourceSetsMetadata=true
  • KT-39037 'None of the consumable configurations have attributes' in MPP IDE import with transitive project dependency on self

IDE. Gradle. Script

  • KT-31137 IntelliJ would get very slow when editing gradle buildSrc(using the kotlin dsl)
  • KT-36078 Gradle Kotlin script context is not reloaded when gradle/wrapper/gradle-wrapper.properties file is changed
  • KT-39317 ISE “Calling invokeAndWait from read-action leads to possible deadlock.” on importing simple Gradle-based project in nightly IJ

IDE. Inspections and Intentions

  • KT-28662 Inspection to flag usage of the wrong Transient annotation on Kotlin Serializable class
  • KT-34209 Switch default behaviour in 1.4 for insertion (to build script) via quick fix of the compiler option enabling inline classes
  • KT-36131 Suggest to add a missing module dependency on an unresolved reference in Kotlin code
  • KT-37462 Add "Add dependency to module" quickfix in multimodule Maven project
  • KT-39869 Add whole project migration usages of kotlin.browser.* & kotlin.dom.* to kotlinx.browser.* & kotlinx.dom.* respectively

IDE. Wizards

  • KT-40004 New Project wizard 1.4+: no https://dl.bintray.com/kotlin/kotlinx repository is added for kotlinx-html
  • KT-40037 New Project wizard: update Ktor version
  • KT-40092 Wizard: the templates panel on mac OS is too wide
  • KT-40232 New Wizard: Android Sdk path doesn't have backslash escaping on Windows
  • KT-40371 New Project Wizard: Frontend Application / Library results in broken run configuration
  • KT-40377 New Project Wizard: Frontend Application defines NPM dependencies that are unnecessary with Kotlin 1.4-RC+
  • KT-40378 New Project Wizard: Frontend Application, Disabling JavaScript test framework has no effect
  • KT-40407 Wizard: do not add stdlib by default for Gradle projects in wizard

JS. Tools

  • KT-39984 Update dukat version in toolchain near to release of 1.4-RC

JavaScript

  • KT-32186 Make sure K/JS Reflection API documentation is correct and fix it.
  • KT-37563 K/JS: stacktrace is not captured for exceptions without primary constructor inherited from Exception/Error
  • KT-37752 Generated typescript incorrect for constructors of derived classes
  • KT-37883 KJS: Generated TypeScript uses 'declare' rather than 'export'
  • KT-38771 JS: support non-reified type parameters in typeOf
  • KT-39873 Update Kotlin JavaScript wrappers due to NON_EXPORTABLE_TYPE diagnostic introduction
  • KT-40126 [JS / IR] NPE while compiling interfaces with invoke which is passed as a delegate
  • KT-40216 KJS / IR: AssertionError caused by an anonymous object in the dependency project

Libraries

  • KT-33069 StringBuilder common functions
  • KT-35972 Add contract to builder functions
  • KT-37101 Mark following api with DeprecatedSinceKotlin("1.4")
  • KT-38360 Make sure that JB libraries correctly define their npm deps and republish them (after KT-30619)
  • KT-38817 'capitalize' should convert digraphs to title case
  • KT-40168 Remove StringBuilder.capacity from common and JS parts

Middle-end. IR

  • KT-40520 Assert during fake-override generation

Tools. Commonizer

  • KT-40199 Commonizer loses nullability of abbreviated types

Tools. Compiler Plugins

  • KT-40036 Add diagnostic that shows is serialization plugin compatible with serialization-runtime

Tools. Gradle

  • KT-39755 [KJS / Gradle / Legacy mode] Directory with whitespace is not processed
  • KT-39809 Kotlin Gradle plugin: ServiceConfigurationError: org.jetbrains.kotlin.gradle.plugin.KotlinGradleSubplugin: Provider org.jetbrains.kotlin.gradle.internal.AndroidSubplugin not a subtype
  • KT-39977 Collect statistics of used -Xjvm-default options
  • KT-40300 Fail the build if in MPP plugin no targets configured

Tools. Gradle. JS

  • KT-38170 Investigate how to improve migration experience from pre 1.4.0 DSL to the new one
  • KT-39654 Default CSS settings in webpack has priority over user's settings
  • KT-39842 Kotlin/JS Gradle DSL: peerNpm dependency fails
  • KT-40048 [Gradle, JS] Deprecate kotlin-frontend plugin
  • KT-40067 [Gradle, JS] Public package.json for mixed JS/TS project
  • KT-40210 Fail the build when Kotlin/JS target is not (properly) configured
  • KT-40320 Gradle JS: make migration to the new Gradle DSL smoother

Tools. Gradle. Multiplatform

  • KT-32239 Custom configurations inside Kotlin JVM Gradle projects can't properly resolve multiplatform dependencies
  • KT-39897 [Commonizer] Fast-pass for library fragments absent for some targets

Tools. J2K

  • KT-39739 J2K: Access is allowed from event dispatch thread with IW lock only

Tools. kapt

  • KT-34604 KAPT: Flaky NPE through org.jetbrains.kotlin.kapt3.base.ProcessorLoader.doLoadProcessors
  • KT-36302 TypeTreeVisitor.visitMemberSelect IllegalStateException: node.sym must not be null on JDK 11
  • KT-39876 KAPT: Serialization of classpath structure is incorrect if there are dependencies between types in jar/dir

1.4-M3

Compiler

New Features

  • KT-23575 Deprecate with replacement and SinceKotlin
  • KT-38652 Do not generate optional annotations to class files on JVM
  • KT-38777 Hide Throwable.addSuppressed member and prefer extension instead

Performance Improvements

  • KT-38489 Compilation of kotlin html DSL increasingly slow
  • KT-28650 Type inference for argument type is very slow if several interfaces with a type parameter is used as an upper bound of a type parameter

Fixes

  • KT-15971 Incorrect bytecode generated when inheriting default arguments not from the first supertype
  • KT-25290 NI: "AssertionError: If original type is SAM type, then candidate should have same type constructor" on out projection of Java class
  • KT-28672 Contracts on calls with implicit receivers
  • KT-30279 Support non-reified type parameters in typeOf
  • KT-31908 NI: CCE on passing lambda to function which accepts vararg SAM interface
  • KT-32156 New inference issue with generics
  • KT-32229 New inference algorithm not taking into account the upper bound class
  • KT-33455 Override equals/hashCode in functional interface wrappers
  • KT-34902 AnalyzerException: Argument 1: expected I, but found R for unsigned types in generic data class
  • KT-35075 AssertionError: "No resolved call for ..." with conditional function references
  • KT-35468 Overcome ambiguity between typealias kotlin.Throws and the aliased type kotlin.jvm.Throws
  • KT-35494 NI: Multiple duplicate error diagnostics (in IDE popup) with NULL_FOR_NONNULL_TYPE
  • KT-35681 Wrong common supertype between raw and integer literal type leads to unsound code
  • KT-35937 Error "Declaration has several compatible actuals" on incremental build
  • KT-36013 Functional interface conversion not happens on a value of functional type with smart cast to a relevant functional type
  • KT-36045 Do not depend on the order of lambda arguments to coerce result to Unit
  • KT-36448 NI: fix tests after enabling NI in the compiler
  • KT-36706 Prohibit functional interface constructor references
  • KT-36969 Generate @NotNull on instance parameters of Interface$DefaultImpls methods
  • KT-37058 Incorrect overload resolution ambiguity on callable reference in a conditional expression with new inference
  • KT-37120 [FIR] False UNRESOLVED_REFERENCE for public and protected member functions and properties which are declared in object inner class
  • KT-37149 Conversion when generic specified by type argument of SAM type
  • KT-37249 false TYPE_MISMATCH when When-expression branches have try-catch blocks
  • KT-37341 NI: Type mismatch with combination of lambda and function reference
  • KT-37436 AME: "Receiver class does not define or inherit an implementation of the resolved method" in runtime on usage of non-abstract method of fun interface
  • KT-37510 NI infers java.lang.Void from the expression in a lazy property delegate and throws ClassCastException at runtime
  • KT-37541 SAM conversion with fun interface without a function fails on compiling and IDE analysis in SamAdapterFunctionsScope.getSamConstructor()
  • KT-37574 NI: Type mismatch with Kotlin object extending functional type passed as @FunctionalInterface to Java
  • KT-37630 NI: ILT suitability in a call is broken if there are CST calculation and calling function's type parameters
  • KT-37665 NI: applicability error due to implicitly inferred Nothing for returning T with expected type
  • KT-37712 No extension receiver in functional interface created with lambda
  • KT-37715 NI: VerifyError: Bad type on operand stack with varargs generic value when type is inferred
  • KT-37721 NI: Function reference with vararg parameter treated as array and missing default parameter is rejected
  • KT-37887 NI: Smart casting for Map doesn't work if the variable is already "smart casted"
  • KT-37914 NI: broken inference for a casting to subtype function within the common constraint system with this subtype
  • KT-37952 NI: improve lambdas completion through separation the lambdas analysis into several steps
  • KT-38069 Callable reference adaptation should have dependency on API version 1.4
  • KT-38143 New type inference fails when calling extension function defined on generic type with type arguments nested too deep
  • KT-38156 FIR Metadata generation
  • KT-38197 java.lang.OutOfMemoryError: Java heap space: failed reallocation of scalar replaced objects
  • KT-38259 NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER for provideDelegate
  • KT-38337 Map delegation fails for inline classes
  • KT-38401 FIR: protected effective visibility is handled unprecisely
  • KT-38416 FIR: infinite loop in BB coroutine test 'overrideDefaultArgument.kt'
  • KT-38432 FIR: incorrect effective visibility in anonymous object
  • KT-38434 Implement resolution of suspend-conversion on FE only, but give error if suspend conversion is called
  • KT-38437 [FIR] String(CharArray) is resolved to java.lang.String constructor instead of kotlin.text.String pseudo-constructor
  • KT-38439 NI: anonymous functions without receiver is allowed if there is an expected type with receiver
  • KT-38473 FIR: ConeIntegerLiteralType in signature
  • KT-38537 IllegalArgumentException: "marginPrefix must be non-blank string" with raw strings and space as margin prefix in trimMargin() call
  • KT-38604 Implicit suspend conversion on call arguments doesn't work on vararg elements
  • KT-38680 NSME when calling generic interface method with default parameters overriden with inline class type argument
  • KT-38681 Wrong bytecode generated when calling generic interface method with default parameters overriden with primitive type argument
  • KT-38691 NI: overload resolution ambiguity if take R and () -> R, and pass literal lambda, which returns R
  • KT-38799 False positive USELESS_CAST for lambda parameter
  • KT-38802 Generated code crashes by ClassCastException when delegating with inline class
  • KT-38853 Backend Internal error: Error type encountered: Unresolved type for nested class used in an annotation argument on an interface method
  • KT-38890 NI: false negative Type mismatch for values with fun keyword
  • KT-39010 NI: Regression with false-positive smartcast on var of generic type
  • KT-39013 202, ASM 8: "AnalyzerException: Execution can fall off the end of the code"
  • KT-39260 "AssertionError: Unsigned type expected: Int" in range
  • KT-39305 NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER: unable to infer deeply nested type bound when class implements generic interface
  • KT-39408 Using unsigned arrays as generics fails in 1.4-M2 with class cast exception
  • KT-39533 NI: Wrong overload resolution for methods with SAM converted function reference arguments
  • KT-39535 NI: Inference fails for the parameters of SAM converted lambdas with type parameters
  • KT-39603 Require explicit override in JVM default compatibility mode on implicit generic specialization of inherited methods in classes
  • KT-39671 Couldn't inline method call 'expectBody'
  • KT-39816 NI:ClassCastException and no IDE error with provideDelegate when DELEGATE_SPECIAL_FUNCTION_MISSING in OI
  • KT-32779 Rewrite at slice in array access resolution in coroutine inference
  • KT-39387 Can't build Kotlin project due to overload resolution ambiguity on flatMap calls
  • KT-39229 NI: resolution to wrong candidate (SAM-type against similar functional type)

Docs & Examples

  • KT-36245 Document that @kotlin.native.ThreadLocal annotation doesn't work anywhere except in Kotlin/Native
  • KT-37943 Conflicting overloads in the factory functions sample code in Coding Conventions Page

IDE

New Features

  • KT-10974 Add Code Style: Import Layout Configuration Table
  • KT-39065 "Join lines" should remove trailing comma on call site

Fixes

  • KT-9065 Wrong result when move statement through if block with call with lambda
  • KT-14757 Move statement up breaks code in function parameter list
  • KT-14946 Move statement up/down (with Ctrl+Shift+Up/Down) messes with empty lines
  • KT-15143 Kotlin: Colors&Fonts -> "Enum entry" should use Language Default -> Classes - Static field
  • KT-17887 Moving statement (Ctrl/Cmd+Shift+Down) messes with use block
  • KT-34187 UAST cannot get type of array access
  • KT-34524 "PSI and index do not match" and IDE freeze with library import from square/workflow
  • KT-35574 UAST: UBreakExpression in when expression should be UYieldExpression
  • KT-36801 IDE: Unsupported language version value is represented with "latest stable" in GUI
  • KT-37378 Remove IDE option "Enable new type inference algorithm..." in 1.4
  • KT-38003 "Analyze Data Flow from Here" should work on parameter of abstract method
  • KT-38173 Reified types do no have extends information
  • KT-38217 Make Kotlin plugin settings searchable
  • KT-38247 "IncorrectOperationException: Incorrect expression" through UltraLightUtils.kt: inlined string is not escaped before parsing
  • KT-38293 Throwable: "'codestyle.name.kotlin' is not found in java.util.PropertyResourceBundle" at KotlinLanguageCodeStyleSettingsProvider.getConfigurableDisplayName()
  • KT-38407 Drop components from plugin.xml
  • KT-38443 No error on change in property initializer
  • KT-38521 ISE: Loop in parent structure when converting a DOT_QUALIFIED_EXPRESSION with parent ANNOTATED_EXPRESSION
  • KT-38571 Rework deprecated EPs
  • KT-38632 Change the code style to official in tests

IDE. Code Style, Formatting

Fixes

  • KT-24750 Formatter: Minimum blank lines after class header does nothing
  • KT-31169 IDEA settings search fails to find "Tabs and Indents" tab in Kotlin code style settings
  • KT-35359 Incorrect indent for multiline expression in string template
  • KT-37420 Add setting to disable inserting empty line between declaration and declaration with comment
  • KT-37891 Formatter inserts empty lines between annotated properties
  • KT-38036 Use trailing comma setting does not apply to code example in Settings dialog
  • KT-38568 False positive: weak warning "Missing line break" on -> in when expression
  • KT-39024 Add option for blank lines before declaration with comment or annotation on separate line
  • KT-39079 Trailing comma: add base support for call site
  • KT-39123 Option Align 'when' branches in columns does nothing
  • KT-39180 Move trailing comma settings in Other tab

IDE. Completion

  • KT-18538 Completion of static members of grand-super java class inserts unnecessary qualifier
  • KT-38445 Fully qualified class name is used instead after insertion of delay method

IDE. Debugger

Fixes

  • KT-14057 Debugger couldn't step into Reader.read
  • KT-14828 Bad step into/over behavior for functions with default parameters
  • KT-36403 Method breakpoints don't work for libraries
  • KT-36404 Evaluate: "AssertionError: Argument expression is not saved for a SAM constructor"
  • KT-37486 Kotlin plugin keeps reference to stream debugger support classes after stream debugger plugin is disabled
  • KT-38484 Coroutines Debugger: IAE “Requested element count -1 is less than zero.” is thrown by calling dumpCoroutines
  • KT-38606 Coroutine Debugger: OCE from org.jetbrains.kotlin.idea.debugger.coroutine.proxy.mirror.BaseMirror.isCompatible
  • KT-39143 NPE on setCurrentStackFrame to Kotlin inner compiled class content
  • KT-39412 Failed to find Premain-Class manifest attribute when debugging main method with ktor
  • KT-39634 (CoroutineDebugger) Agent doesn't start if using kotlinx-coroutines-core only dependency
  • KT-39648 Coroutines debugger doesn't see stacktraces in case of the project has kotlinx-coroutines-debug dependency

IDE. Gradle Integration

Performance Improvements

  • KT-39059 Poor performance of modifyDependenciesOnMppModules

Fixes

  • KT-35921 Gradle Import fails with "Unsupported major.minor version 52.0" on pure Java project in case "Gradle JDK" is lower 1.8 and Kotlin plugin is enabled
  • KT-36673 Gradle Project importing: move ModelBuilders and ModelProviders to kotlin-gradle-tooling jar
  • KT-36792 IDEA 2020.1: Some module->module dependencies in HMPP project are missed after import from Gradle
  • KT-37125 Imported modules structure for MPP project is displayed messy in UI in IDEA 2020.1
  • KT-37428 NPE at KotlinFacetSettings.setLanguageLevel() on the first project import
  • KT-38706 IDE Gradle import creates 4 JavaScript modules for MPP source sets with BOTH compiler type
  • KT-38767 Published hierarchical multiplatform library symbols are unresolved in IDE (master)
  • KT-38842 False positive [INVISIBLE_MEMBER] for internal declaration of commonMain called from commonTest
  • KT-39213 IDE: references from MPP project to JavaScript library are unresolved, when project and library are compiled with "both" mode
  • KT-39657 Language settings for intermediate source-sets are lost during import

IDE. Gradle. Script

New Features

  • KT-34481 *.gradle.kts: use Intellij IDEA Gradle project sync mechanics for updating script configuration

Performance Improvements

  • KT-34138 Deadlock in ScriptTemplatesFromDependenciesProvider
  • KT-38875 Deadlock in ScriptClassRootsUpdater.checkInvalidSdks

Fixes

  • KT-34265 Bogus "build configuration failed, run 'gradle tasks' for more information" message and other issues related to "script dependencies"
  • KT-34444 *.gradle.kts: special storage of all scripts configuration on one file
  • KT-35153 build.gradle.kts: scripts in removed subproject remain imported, but shouldn't
  • KT-35573 Request for gradle build script configuration only after explicit click on notification
  • KT-36675 move .gradle.kts ModelBuilders and ModelProviders to kotlin-gradle-tooling jar
  • KT-37178 build.gradle.kts: Rework the notification for scripts out of project
  • KT-37631 Unnecessary loading dependencies after opening build.gradle.kts after project import with Gradle 6
  • KT-37863 Scanning dependencies for script definitions takes too long or indefinitely during Gradle import
  • KT-38296 MISSING_DEPENDENCY_SUPERCLASS in the build.gradle.kts editor while Gradle runs Ok
  • KT-38541 "Invalid file" exception in ScriptChangeListener.getAnalyzableKtFileForScript()
  • KT-39104 “Gradle Kotlin DSL script configuration is missing” after importing project in IJ201, Gradle 6.3
  • KT-39469 Gradle version is not updated in script dependencies if the version of gradle was changed in gradle-wrapper.properties
  • KT-39771 Freeze 30s from org.jetbrains.kotlin.scripting.resolve.ApiChangeDependencyResolverWrapper.resolve on loading script configuration with Gradle 5.6.4

IDE. Inspections and Intentions

New Features

  • KT-14884 Intention to add missing "class" keyword for enum and annotation top-level declarations
  • KT-17209 Provide intention to fix platform declaration clash (CONFLICTING_JVM_DECLARATIONS)
  • KT-24522 Suggest to move typealias outside the class
  • KT-30263 Detect redundant conversions of unsigned types
  • KT-35893 Support Inspection for unnecessary asSequence() call
  • KT-38559 "Change JVM name" (@JvmName) quickfix: improve name suggester for generic functions
  • KT-38597 Expand Boolean intention
  • KT-38982 Add "Logger initialized with foreign class" inspection
  • KT-39131 TrailingCommaInspection: should suggest fixes for call-site without warnings

Fixes

  • KT-5271 Missing QuickFix for Multiple supertypes available
  • KT-11865 "Create secondary constructor" quick fix always inserts parameter-less call to this()
  • KT-14021 Quickfix to add parameter to function gives strange name to parameter
  • KT-17121 "Implement members" quick fix is not suggested
  • KT-17368 Don't highlight members annotated with @JsName as unused
  • KT-20795 "replace explicit parameter with it" creates invalid code in case of overload ambiguities
  • KT-22014 Intention "convert lambda to reference" should be available for implicit 'this'
  • KT-22015 Intention "Convert lambda to reference" should be available in spite of the lambda in or out of parentheses
  • KT-22142 Intentions: "Convert to primary constructor" changes semantics for property with custom setter
  • KT-22878 Empty argument list at the call site of custom function named "suspend" shouldn't be reported as unnecessary
  • KT-24281 Importing of invoke() from the same file is reported as unused even if it isn't
  • KT-25050 False-positive inspection "Call replaceable with binary operator" for 'equals'
  • KT-26361 @deprecated "ReplaceWith" quickfix inserts 'this' incorrectly when using function imports
  • KT-27651 'Condition is always true' inspection should not be triggered when the condition has references to a named constant
  • KT-29934 False negative Change type quickfix on primary constructor override val parameter when it has wrong type
  • KT-31682 'Convert lambda to reference' intention inside class with function which return object produces uncompilable code
  • KT-31760 Implement Abstract Function/Property intentions position generated member improperly
  • KT-32511 Create class quick fix is not suggested in super type list in case of missing primary constructor
  • KT-32565 False positive "Variable is the same as 'credentials' and should be inlined" with object declared and returned from lambda
  • KT-32801 False positive "Call on collection type may be reduced" with mapNotNull, generic lambda block and new inference
  • KT-33951 ReplaceWith quickfix with unqualified object member call doesn't substitute argument for parameter
  • KT-34378 "Convert lambda to reference" refactoring does not work for suspend functions
  • KT-34677 False positive "Collection count can be converted to size" with Iterable
  • KT-34696 Wrong 'Redundant qualifier name' for 'MyEnum.values' usage
  • KT-34713 "Condition is always 'false'": quickfix "Delete expression" doesn't remove else keyword (may break control flow)
  • KT-35015 ReplaceWith doesn't substitute parameters with argument expressions
  • KT-35329 Replace 'when' with 'if' intention: do not suggest if 'when' is used as expression and it has no 'else' branch
  • KT-36194 "Add braces to 'for' statement" inserts extra line break and moves the following single-line comment
  • KT-36406 "To ordinary string literal" intention adds unnecessary escapes to characters in template expression
  • KT-36461 "Create enum constant" quick fix adds after semicolon, if the last entry has a comma
  • KT-36462 "Create enum constant" quick fix doesn't add trailing comma
  • KT-36508 False positive "Replace 'to' with infix form" when 'to' lambda generic type argument is specified explicitly
  • KT-36930 Intention "Specify type explicitly" adds NotNull annotation when calling java method with the annotation
  • KT-37148 "Remove redundant .let call doesn't remove extra calls
  • KT-37156 "Unused unary operator" inspection highlighting is hard to see
  • KT-37173 "Replace with string templates" intention for String.format produces uncompilable string template
  • KT-37181 Don't show "Remove redundant qualifier name" inspection on qualified Companion imported with star import
  • KT-37214 "Convert lambda to reference" with a labeled "this" receiver fails
  • KT-37256 False positive PlatformExtensionReceiverOfInline inspection if a platform type value is passed to a nullable receiver
  • KT-37744 "Convert lambda to reference" inspection quick fix create incompilable code when type is inferred from lambda parameter
  • KT-37746 "Redundant suspend modifier" should not be reported for functions with actual keyword
  • KT-37842 "Convert to anonymous function" creates broken code with suspend functions
  • KT-37908 "Convert to anonymous object" quickfix: false negative when interface has concrete functions
  • KT-37967 Replace 'invoke' with direct call intention adds unnecessary parenthesis
  • KT-37977 "Replace 'invoke' with direct call" intention: false positive when function is not operator
  • KT-38062 Reactor Quickfix throws NotImplementedError for Kotlin
  • KT-38240 False positive redundant semicolon with as cast and not unary operator on next line
  • KT-38261 Redundant 'let' call removal leaves ?. operator and makes code uncompilable
  • KT-38310 Remove explicit type annotation intention drops 'suspend'
  • KT-38492 False positive "Add import" intention for already imported class
  • KT-38520 SetterBackingFieldAssignmentInspection throws exception
  • KT-38649 False positive quickfix "Assignment should be lifted out of when" in presence of smartcasts
  • KT-38677 Invalid psi tree after Lift assigment out of...
  • KT-38790 "Convert sealed subclass to object" for data classes doesn't remove 'data' keyword
  • KT-38829 'Remove redundant backticks' can be broken with @ in name
  • KT-38831 'Replace with assignment' can be broken with fast code change
  • KT-38832 "Remove curly braces" intention may produce CCE
  • KT-38948 False positive quickfix "Make containing function suspend" for anonymous function
  • KT-38961 "Useless call on collection type" for filterNotNull on non-null array where list return type is expected
  • KT-39069 Improve TrailingCommaInspection
  • KT-39151 False positive inspection to replace Java forEach with Kotlin forEach when using ConcurrentHashMap

IDE. JS

  • KT-39275 Kotlin JS Browser template for kotlin dsl doesn't include index.html

IDE. KDoc

  • KT-32163 Open Quick Documentation when cursor inside function / constructor brackets

IDE. Navigation

  • KT-32245 Method in Kotlin class is not listed among implementing methods
  • KT-33510 There is no gutter icon to navigate from actual to expect if expect and the corresponding actual declarations are in the same file
  • KT-38260 Navigation bar doesn't show directories of files with a single top level Kotlin class
  • KT-38466 Top level functions/properties aren't shown in navigation panel

IDE. Project View

  • KT-36444 Structure view: add ability to sort by visibility
  • KT-38276 Structure view: support visibility filter for class properties

IDE. REPL

  • KT-38454 Kotlin REPL in IntelliJ doesn't take module's JVM target setting into account

IDE. Refactorings

  • KT-12878 "Change signature" forces line breaks after every parameter declaration
  • KT-30128 Change Signature should move lambda outside of parentheses if the arguments are reordered so that the lambda goes last
  • KT-35338 Move/rename refactorings mess up code formatting by wrapping lines
  • KT-38449 Extract variable refactoring is broken by NPE
  • KT-38543 Copy can't work to package with escaped package
  • KT-38627 Rename package refactorings mess up code formatting by wrapping lines

IDE. Run Configurations

  • KT-34516 Don't suggest incompatible targets in a drop-down list for run test gutter icon in multiplatform projects
  • KT-38102 DeprecatedMethodException ConfigurationFactory.getId

IDE. Scratch

  • KT-38455 Kotlin scratch files don't take module's JVM target setting into account

IDE. Script

  • KT-39791 Kotlin plugin loads VFS in the output directories

IDE. Structural Search

  • KT-39721 Optimize Kotlin SSR by using the index
  • KT-39733 Augmented assignment matching
  • KT-39769 "When expressions" predefined template doesn't match all when expressions

IDE. Wizards

  • KT-38673 New Project Wizard: multiplatform templates are generated having unsupported Gradle version in a wrapper
  • KT-38810 Incorrect order of build phases in Xcode project from new wizard
  • KT-38952 Remove old new_project_wizards
  • KT-39503 New Project wizard 1.4+: release kotlinx.html version is added to dependencies with milestone IDE plugin
  • KT-39700 Wizard: group project templates on the first step by the project type
  • KT-39770 CSS Support in Kotlin wizards
  • KT-39826 Fix Android app in New Template Wizard
  • KT-39843 Change imports in JS/browser wizard

JS. Tools

  • KT-32273 Kotlin/JS console error on hot reload
  • KT-39498 Update dukat version in toolchain near to release of 1.4-M3

JavaScript

  • KT-29916 Implement typeOf on JS
  • KT-35857 Kotlin/JS CLI bundled to IDEA plugin can't compile using IR back-end out of the box
  • KT-36798 KJS: prohibit using @JsExport on a non-top-level declaration
  • KT-37771 KJS: Generated TypeScript does not recursively export base classes (can fail with generics)
  • KT-38113 Review public API of JS stdlib for IR BE
  • KT-38765 [JS / IR] AssertionError: class EventEmitter: Super class should be any: with nested class extending parent class
  • KT-38768 KJS IR: generate ES2015 (aka ES6) classes

Libraries

New Features

  • KT-11253 Function to sum long or other numeric property of items in a collection
  • KT-28933 capitalize() with Locale argument in the JDK stdlib
  • KT-34142 Create SortedMap with Comparator and items
  • KT-34506 Add Sequence.flatMap overload that works on Iterable
  • KT-36894 Support flatMapIndexed in the Collections API
  • KT-38480 Introduce experimental annotation for enabling overload resolution by lambda result
  • KT-38708 minOf/maxOf functions to return min/max value provided by selector
  • KT-39707 Make some interfaces in stdlib functional

Performance Improvements

  • KT-23142 toHashSet is suboptimal for inputs with a lot of duplicates

Fixes

  • KT-21266 Add module-info for standard library artifacts
  • KT-23322 Document 'reduce' operation behavior on empty collections
  • KT-28753 Comparing floating point values in array/list operations 'contains', 'indexOf', 'lastIndexOf': IEEE 754 or total order
  • KT-30083 Annotate KTypeProjection.STAR with JvmField in a compatible way
  • KT-30084 Annotate functions in KTypeProjection.Companion with JvmStatic
  • KT-31343 Deprecate old String <-> CharArray, ByteArray conversion api
  • KT-34596 Add some validation to KTypeProjection constructor
  • KT-35978 Review and remove experimental stdlib API status for 1.4
  • KT-38388 Document fromIndex and toIndex parameters
  • KT-38854 Gradually change the return type of collection min/max functions to non-nullable
  • KT-39023 Document split(Pattern) extension differences from Pattern.split
  • KT-39064 Introduce minOrNull and maxOrNull extension functions on collections
  • KT-39235 Lift experimental annotation from bit operations
  • KT-39237 Lift experimental annotation from common StringBuilder
  • KT-39238 Appendable.appendRange - remove nullability
  • KT-39239 Lift experimental annotation from String <-> utf8 conversion api
  • KT-39244 KJS: update polyfills, all or most of them must not be enumerable
  • KT-39330 Migrate declarations from kotlin.dom and kotlin.browser packages to kotlinx.*

Middle-end. IR

  • KT-31088 need a way to compute fake overrides for pure IR
  • KT-33207 Kotlin/Native: KNPE during deserialization of an inner class
  • KT-33267 Kotlin/Native: Deserialization error for an "inner" extension property imported from a class
  • KT-37255 Make psi2ir aware of declarations provided by compiler plugins

Reflection

  • KT-22936 Not all things can be changed to createType yet, and now defaultType methods are starting to fail
  • KT-32241 Move KType.javaType into stdlib from reflect
  • KT-34344 KType.javaType implementation throws when invoked with a typeOf()
  • KT-38491 IllegalArgumentException when using callBy on function with inline class parameters and default arguments
  • KT-38881 Add KClass.isFun modifier of functional interfaces to reflection

Tools. Android Extensions

  • KT-25807 Kotlin extension annotation @parcelize in AIDL returns Object instead of original T

Tools. CLI

  • KT-30211 Support a way to pass arguments to the underlying JVM in kotlinc batch scripts on Windows
  • KT-30778 kotlin-compiler.jar contains shaded but not relocated kotlinx.coroutines
  • KT-38070 Compiler option to bypass prerelease metadata incompatibility error
  • KT-38413 Add JVM target bytecode version 14

Tools. Compiler Plugins

  • KT-39274 [KJS / IR] Custom serializer for class without zero argument constructor doesn't compile

Tools. Gradle

  • KT-25428 Kotlin Gradle Plugin: Use new Gradle API for Lazy tasks
  • KT-34487 Gradle build fails with "Cannot run program "java": error=7, Argument list too long
  • KT-35957 MPP IC fails with "X has several compatible actual declarations" error
  • KT-38250 Drop support for Gradle versions older than 5.3 in the Kotlin Gradle plugin

Tools. Gradle. JS

New Features

  • KT-30619 Support NPM transitive dependencies in multi-platform JS target
  • KT-38286 [Gradle, JS] Error handling on Webpack problems

Fixes

  • KT-31669 Gradle/JS: rise error when plugin loaded more than once
  • KT-32531 [Gradle/JS] Add scoped NPM dependencies
  • KT-34832 [Kotlin/JS] Failed build after webpack run (Karma not found)
  • KT-35194 Kotlin/JS: browserRun fails with "address already in use" when trying to connect to local server
  • KT-35611 Kotlin Gradle plugin should report kotlin2js plugin ID as deprecated
  • KT-35641 Kotlin Gradle plugin should report kotlin-dce-js plugin ID as deprecated
  • KT-36410 JS: Collect stats about IR backend usage
  • KT-36451 KJS Adding npm dependency breaks Webpack devserver reloading
  • KT-37258 Kotlin/JS + Gradle: in continuous mode kotlinNpmInstall time to time outputs "ENOENT: no such file or directory" error
  • KT-38109 [Gradle, JS] Error handling on Karma launcher problems
  • KT-38331 Add an ability to control generating externals for npm deps individually
  • KT-38485 [Gradle, JS] Unable to configure JS compiler with string
  • KT-38683 Remove possibility to set NPM dependency without version
  • KT-38990 Support multiple range versions for NPM dependencies
  • KT-38994 Remove possibility to set NPM dependency with npm(org, name, version)
  • KT-39109 ArithmeticException: "/ by zero" caused by kotlinNodeJsSetup task with enabled gradle caching on Windows
  • KT-39210 Kotlin/JS: with both JS and MPP modules in the same project Gradle configuration fails on nodejs {} and browser {}
  • KT-39377 Use standard source-map-loader instead of custom one

Tools. Gradle. Multiplatform

  • KT-39184 Support publication of Kotlin-distributed libraries with Gradle Metadata
  • KT-39304 Gradle import error java.util.NoSuchElementException: Key source set foo is missing in the map on unused source set

Tools. Gradle. Native

  • KT-37514 CocoaPods Gradle plugin: Support building from terminal projects for several platforms
  • KT-38440 Make error message about missing Podfile path for cocoapods integration actionable for a user
  • KT-38991 Gradle MPP plugin: Enable parallel in-process execution for K/N compiler
  • KT-39935 Support overriding the KotlinNativeCompile task sources
  • KT-37512 Cocoapods Gradle plugin: Improve error logging for external tools

Tools. J2K

  • KT-35169 Do not show "Inline local variable" popup during "Cleaning up code" phase of J2K
  • KT-38004 J2K breaks java getter call in java code
  • KT-38450 J2K should convert Java SAM interfaces to Kotlin fun interfaces

Tools. JPS

  • KT-27458 The Kotlin standard library is not found in the module graph ... in a non-Kotlin project.
  • KT-29552 Project is completely rebuilt after each gradle sync.

Tools. Scripts

  • KT-37766 Impossible to apply compiler plugins onto scripts with the new scripting API

Tools. kapt

  • KT-29355 Provide access to default values for primary constructor properties

1.4-M2

Compiler

New Features

  • KT-37432 Do not include annotations fields into 'visibility must be explicitly specified' check in api mode

Performance Improvements

  • KT-27362 Anonymous classes representing function/property references contain rarely used methods
  • KT-35626 NI: Performance problem with many type parameters
  • KT-36047 Compiler produces if-chain instead of switch when when subject captured as variable
  • KT-36638 Use 'java/lang/StringBuilder.append (C)Ljava/lang/StringBuilder;' when appending single character in JVM_IR
  • KT-37389 Avoid type approximation during generation constraints with EQUALITY kind
  • KT-37392 Avoid substitution and type approximation for simple calls
  • KT-37546 NI: high memory and CPU consumption due to creating useless captured types (storing in approximated types cache, unneeded computations)

Fixes

  • KT-11265 Factory pattern and overload resolution ambiguity
  • KT-27524 Inline class is boxed when used with suspend modifier
  • KT-27586 ClassCastException occurs if the Result (or any other inline class) is returned from a lambda
  • KT-30419 Use boxed version of an inline class in return type position for covariant and generic-specialized overrides
  • KT-31163 FIR: consider replacing comparisons with compareTo calls and some additional intrinsics
  • KT-31585 ClassCastException with derived class delegated to generic class with inline class type argument
  • KT-31823 NI: Type mismatch with a star projection and UnsafeVariance
  • KT-33119 Pre-increment for inline class wrapping Int compiles to direct increment instead of inc-impl
  • KT-33715 Kotlin/Native: metadata compiler
  • KT-34048 IllegalAccessError when initializing val property in EXACTLY_ONCE lambda
  • KT-34433 NI: Type mismatch with a star projection and UnsafeVariance
  • KT-35133 FIR Java: don't set 'isOperator' for methods with non-operator names
  • KT-35234 ClassCastException with creating an inline class from a function reference of covariant or generic-specialized override
  • KT-35406 Generic type implicitly inferred as Nothing with no warning
  • KT-35587 Plain namespace strings in JvmNameResolver.PREDEFINED_STRINGS are prone to namespace changes during jar relocation.
  • KT-36044 NI: premature fixation a type variable if there were nested lambdas (constraint source was the deepest lambda)
  • KT-36057 [FIR] Incorrect smartcast
  • KT-36069 NI: TYPE_MISMATCH caused by incorrect inference to Nothing
  • KT-36125 Callable reference resolution ambiguity error is not displayed properly in the IDE
  • KT-36191 IDE locks loading packages and editing file containing try keyword inside string template
  • KT-36222 NI: Improve error message about nullability mismatch for a generic call
  • KT-36249 NI doesn't use upper bound for T of called function during infer return type and as a result infer it to Any? if the resulting type was intersection type
  • KT-36345 FIR: record argument mapping for use in back-end
  • KT-36446 NI: "UnsupportedOperationException no descriptor for type constructor of IntegerLiteralType[Int,Long,Byte,Short]" with BuilderInference and delegate
  • KT-36758 [FIR] Unresolved callable reference to member of local class
  • KT-36759 [FIR] Unsupported callable reference resolution for methods with default parameters
  • KT-36762 [FIR] Unresolved array.clone()
  • KT-36764 [FIR] Bug in inference with DefinitelyNotNull types
  • KT-36816 NI: definitely not-null (T!!) types in invariant positions don't approximate to T inside inference process
  • KT-36819 NI: premature completion of lambdas, which are passed somewhere
  • KT-36850 Incorrect private visibility of sealed class constructors
  • KT-36856 Throwing exception when there is inheritance in Kotlin from Java class, which contains methods with the same JVM descriptors
  • KT-36879 Introduce FIR_IDENTICAL in diagnostic tests
  • KT-36881 FIR: completion don't runs for return expressions
  • KT-36887 [FIR] Unresolved member in nested lambda in initializer
  • KT-36905 [FIR] Unresolved in lambda in default argument position
  • KT-36953 AssertionError: "Unsigned type expected: null" when there is a range with an unsigned type
  • KT-37009 FIR: Bound smart-cast lost
  • KT-37027 FIR: Wrong projection on spread + varargs on non-final types
  • KT-37038 NI: redundant lambda's arrow breaks CST calculation for extension lambdas
  • KT-37043 NI: inference T to Any? if there was elvis between Java out-type and reified materialize for this type without out projection
  • KT-37066 [FIR] Wrong type inference for lambdas
  • KT-37070 [FIR] Unresolved parameters of outer lambda in scope of inner lambda
  • KT-37087 "IllegalStateException: Can't find method 'invoke()'" for mutable property reference in default value of an inline function parameter
  • KT-37091 [FIR] Wrong inferred type of when-expression if when-argument is not-null-asserted and type is not specifies explicitly
  • KT-37176 [FIR] Incorrect resolution mode for statements of block
  • KT-37302 Unexpected conversion:Int constant inferred to Long in when expression
  • KT-37327 FIR: Smartcast problem
  • KT-37343 NI: definitely not null types pre-approximation is inconsistent with OI
  • KT-37380 NI: broken some code with def not null types due to skip needed constraints
  • KT-37419 NI: UNRESOLVED_REFERENCE_WRONG_RECEIVER is reported in case lambda with receiver is returned from when expression
  • KT-37434 Kotlin/JS, Kotlin/Native: fun interfaces: SAM conversion to Kotlin interface is not compiled with RESOLUTION_TO_CLASSIFIER
  • KT-37447 Expression from annotation entry in value parameter inside value parameter should be marked as USED_AS_EXPRESSION
  • KT-37453 Type arguments not checked to be empty for candidates with no declared parameters
  • KT-37488 [FIR] Incorrect exhaustiveness checking for branches with equals to object that implements sealed class
  • KT-37497 NI: 'super' is not an expression, it can not be used as a receiver for extension functions
  • KT-37530 NI: instantiation of abstract class via callable reference argument causes run time InstantiationError
  • KT-37531 NI: callable reference argument with left hand side type parameter causes frontend exception
  • KT-37554 NI: Nothing is inferred incorrectly with elvis return
  • KT-37579 NI: inconsistent behaviour with OI around implicit invoke convention after safe call with additional implicit receiver
  • KT-37604 "VerifyError: Call to wrong method" in 'invoke' for adapted callable reference to constructor with coercion to Unit
  • KT-37621 NI: type variable is inferred to Nothing if the second branch was Nothing and there was upper bound for a type parameter
  • KT-37626 NI: builder inference with expected type breaks class references resolution for a class with parameters
  • KT-37627 NI: wrong order of the type variable fixation (Nothing? against a call with lambda)
  • KT-37628 NI: wrong approximation of type argument to star projection during common super type calculation
  • KT-37644 NI: appeared exception during incorporation of a captured type into a type variable for elvis resolve
  • KT-37650 NI: it's impossible to infer a type variable with the participation of a wrapped covariant type
  • KT-37718 False positive unused parameter for @JvmStatic main function in object
  • KT-37779 ClassCastException: Named argument without spread operator for vararg parameter causes code to crash on runtime
  • KT-37832 In MPP, subtypes of types defined in legacy libraries, like stdlib, cannot properly resolve on the consumer side receviing both
  • KT-37861 Capturing an outer class instance in a default parameter of inner class constructor causes VerifyError
  • KT-37986 Return value of function reference returning inline class mapped to 'java.lang.Object' is not boxed properly
  • KT-37998 '!!' operator on safe call of function returning inline class value causes CCE at runtime
  • KT-38042 Allow kotlin.Result as a return type only if one enabled inline classes explicitly
  • KT-38134 NI: Type mismatch with a star projection and UnsafeVariance
  • KT-38298 Inconsistent choice of candidate when both expect/actual are available (affects only enableGranularSourceSetMetadata)
  • KT-38661 NI: "Cannot infer type variable TypeVariable" with lambda with receiver
  • KT-38668 Project with module dependency in KN, build fails with Kotlin 1.3.71 and associated libs but passes with 1.3.61.
  • KT-38857 Class versions V1_5 or less must use F_NEW frames.
  • KT-39113 "AssertionError: Uninitialized value on stack" with EXACTLY_ONCE contract in non-inline function and lambda destructuring

Docs & Examples

  • KT-35231 toMutableList documentation is vague

IDE

Performance Improvements

  • KT-30541 EDT Freeze after new Kotlin Script creation
  • KT-35050 Significant freezes due to findSdkAcrossDependencies()
  • KT-37301 Freeze when "Optimize Imports" in KotlinImportOptimizer
  • KT-37466 Invalidate partialBodyResolveCache on OCB
  • KT-37467 PerFileAnalysisCache.fetchAnalysisResults
  • KT-37993 Do not resolve references if paste code is located in the same origin
  • KT-38318 Freezes in IDEA

Fixes

  • KT-27935 Functional typealias with typealias in type parameters causes UnsupportedOperationException in TypeSignatureMappingKt (IDEA analysis)
  • KT-31668 Complete statement for class declaration: add '()' to supertype
  • KT-33473 UAST: References to local variable are resolved to UastKotlinPsiVariable
  • KT-34564 Kotlin USimpleNameReferenceExpression for annotation parameter resolves to null for compiled Kotlin classes
  • KT-34973 Light class incorrectly claiming ambiguous method call from Java when one overload is synthetic
  • KT-35801 UAST: UnknownKotlinExpression for valid Kotlin annotated expression
  • KT-35804 UAST: Annotations missing from catch clause parameters
  • KT-35848 UAST: ClassCastException when trying to invoke UElement for some wrapped PsiElements
  • KT-36156 Kotlin annotation attributes have blue color whereas white in Java
  • KT-36275 UAST: UCallExpression::resolve returns null for local function calls
  • KT-36717 Fix failing light class tests after switching plugin to language version 1.4
  • KT-36877 Message bundles for copy paste are missed in 201
  • KT-36907 IDE: -Xuse-ir setting on facet level does not affect highlighting
  • KT-37133 UAST: Annotating assignment expression sometimes leads to UnknownKotlinExpression
  • KT-37312 "Implement members" intention put function in the primary constructor if there are unused brackets in class
  • KT-37613 Uast: no parameters in reified method
  • KT-37933 Rare NPE in ProjectRootsUtilKt.isKotlinBinary [easy fix]
  • KT-38081 Configure kotlin in project produces IDE error "heavy operation and should not be call on AWT thread"
  • KT-38354 HMPP. IDE. Dependency leakage from leaf native to shared native module
  • KT-38634 IDE: Error on opening MPP project in 1.3.72 after opening it in 1.4-M2

IDE. Code Style, Formatting

  • KT-37870 "Remove trailing comma" action stops working after applying and cancelling it

IDE. Completion

  • KT-36808 Delete Flow.collect from autocompletion list or make it least prioritized
  • KT-36860 Provide convenient completion of extension functions from objects
  • KT-37395 Invalid callable reference completion of member extension

IDE. Debugger

  • KT-34906 Implement Coroutine Debugger
  • KT-35392 Debugger omits meaningful part of the stacktrace even with disabled filter
  • KT-36215 Coroutines debugger tab is empty in Android Studio
  • KT-37238 Coroutines Debugger: dump creation fails every time
  • KT-38047 Coroutines Debugger: Assertion failed: “Should be invoked in manager thread, use DebuggerManagerThreadImpl” on moving to source code from suspended coroutine in project without debugger jar in classpath
  • KT-38049 Coroutines Debugger: NPE “null cannot be cast to non-null type com.sun.jdi.ObjectReference” is thrown by calling dumpCoroutines
  • KT-38487 Any Field Watch interaction causes a MissingResourceException

IDE. Decompiler, Indexing, Stubs

  • KT-37896 IAE: "Argument for @NotNull parameter 'file' of IndexTodoCacheManagerImpl.getTodoCount must not be null" through KotlinTodoSearcher.processQuery()

IDE. Gradle Integration

  • KT-33809 With kotlin.mpp.enableGranularSourceSetsMetadata=true, IDE misses dependsOn-relation between kotlin and android sourceSets, leading to issues with expect/actual matching
  • KT-36354 IDE: Gradle import from non-JVM projects: dependency to output artifact is created instead of module dependency
  • KT-38037 UnsupportedOperationException on sync gradle Kotlin project with at least two multiplatform modules

IDE. Gradle. Script

  • KT-36763 Drop modification stamp for scripts after project import
  • KT-37237 Script configurations should be loaded during project import in case of errors
  • KT-38041 Do not request for script configuration after VCS update

IDE. Inspections and Intentions

New Features

  • KT-3262 Inspection "Inner class could be nested"
  • KT-15723 Add 'Convert to value' quickfix for property containing only getter
  • KT-34026 Add "Remove argument" quick fix for redundant argument in constructor call
  • KT-34332 Add "Remove argument" quick fix for redundant argument in function call
  • KT-34450 Convert function to property intention should be also displayed on fun keyword
  • KT-34593 Invert 'if' condition: Invert String.isNotEmpty should be String.isEmpty
  • KT-34819 Inspection: report useless elvis "?: return null"
  • KT-37849 Support ReplaceWith for supertypes call

Performance Improvements

Fixes

  • KT-12329 "invert if" inserts unnecessary 'continue' for statement inside a loop with 'continue'
  • KT-17615 "Convert parameter to receiver" changes this to this@ < no name provided >
  • KT-20868 IntelliJ says method from anonymous inner class with inferred interface type is not used even though it is
  • KT-20907 Secondary constructor is marked as unused by IDE when called by typealias
  • KT-22368 "Convert to block body" intention incorrectly formats closing brace
  • KT-23510 "Remove parameter" quick fix keeps lambda argument when it's out of parentheses
  • KT-27601 False positive "Unused import directive" for extension function used in KDoc
  • KT-28085 "Convert receiver to parameter" introduces incorrect this@class in lambda
  • KT-30028 "Convert parameter to receiver" introduces wrong 'this' qualifier for extension lambda receiver
  • KT-31601 "Remove redundant let call" changes semantics by introducing multiple safe calls
  • KT-31800 False positive "never used" with function in private val object expression
  • KT-31912 QF “Convert to anonymous object” do nothing on SAM-interfaces
  • KT-32561 "Property can be declared in constructor" causes another warning
  • KT-32809 Convert parameter to receiver inserts wrong qualifiers for this (when nothing needs to be changed)
  • KT-34371 "Surround with lambda" quickfix is not available for suspend lambda parameters.
  • KT-34640 Replace 'if' with 'when' leads to copy comment line above when from another if
  • KT-36225 KNPE: CodeInliner.processTypeParameterUsages with ReplaceWith for inline reified generic function
  • KT-36266 NPE when invoking Lift return out of if/when after intention becomes inapplicable but still beeing shown
  • KT-36296 False negative "Redundant SAM-constructor" with multiple SAM arguments
  • KT-36367 False negative "Redundant SAM-constructor" for kotlin functions
  • KT-36368 False negative "Redundant SAM-constructor" for fun interfaces in kotlin
  • KT-36395 False positive "Redundant SAM-constructor" with two java interfaces extending one another
  • KT-36411 "Put parameters on separate lines" and "Put parameters on one line" actions do not respect trailing comma
  • KT-36482 "Add JvmOverloads annotation" intention is still suggested for annotation's parameters
  • KT-36686 Implement members quickfix puts the implementation before the data class if it already has a body
  • KT-36685 "Convert to a range check" transform hex range to int if it is compared with "Less" or "Greater"
  • KT-36707 False positive redundant companion object on calling companion object members
  • KT-36735 Inspection 'Replace 'toString' with string template' miss curly braces and generates wrong code for constructor calls
  • KT-36834 Convert use-site targets and usages with convert property to fun intention
  • KT-37213 "Move to top level" intention does not update imports for extension functions
  • KT-37496 False positive "Remove redundant backticks" for multiple underscores variable name
  • KT-37502 False positive "redundant lambda arrow" with inline generic function with reified type in object and anonymous parameter name
  • KT-37508 "Convert receiver to parameter" breaks code in anonymous objects (this@ < no name provided >)
  • KT-37576 Kotlin InspectionSuppressor not being called for the kotlin's inspections
  • KT-37749 "Convert to anonymous object" intention is suggested for Java SAM conversion, but not for Kotlin
  • KT-37781 "Add modifier" intention/quickfix works incorrectly with functional interfaces
  • KT-37893 i18n: Incorrect quickfix name "Lift return out of '"

IDE. KDoc

  • KT-37361 Support for showing rendered doc comments in editor

IDE. Libraries

  • KT-36276 IDE: references to declarations in JavaScript KLib dependency are unresolved
  • KT-37562 IDE: references to JavaScript KLib dependency are unresolved, when project and library are compiled with "both" mode

IDE. Navigation

  • KT-18472 UI lockup on find usages
  • KT-18619 Find Usages of element used via import alias does not show actual usage location
  • KT-34088 Navigate | Implementations action doesn't show implementations of Java methods in Kotlin files if method has parameters referring to generic type
  • KT-35006 IDE: "Navigate to inline function call site" from stack trace for nested inline call navigates to outer inline call
  • KT-36138 628 second freeze when doing Find Usages on data class property
  • KT-36218 Show Kotlin file members in navigation bar
  • KT-37494 AnnotatedElementsSearch unable to find annotated property accessor

IDE. Project View

  • KT-32886 Project tool window: Show Visibility Icons does nothing for Kotlin classes
  • KT-37632 IDE error on project structure opening

IDE. Refactorings

Performance Improvements

  • KT-37801 Renaming private property with common name is very slow

Fixes

  • KT-22733 Refactor / Inline Function: fun with type parameter: KNPE at CodeInliner.processTypeParameterUsages()
  • KT-27389 MPP: Refactoring "Move Class" does not change the package declaration
  • KT-29870 Inline variable doesn't handle 'when' subject val correctly
  • KT-33045 Cover Move Refactoring by statistics (FUS)
  • KT-36071 Refactoring: Move top declaration implementation refactoring
  • KT-36072 Empty files are removed on Refactor/Move action with turned off "Delete empty source files" option
  • KT-36114 java.lang.NoClassDefFoundError exception on Refactor/Move of kotlin function if it is referenced in java
  • KT-36129 java.lang.Throwable: Invalid file exception occurs on Refactor/Move of class from kotlin script
  • KT-36382 Move file refactoring breaks ktor application config
  • KT-36504 "Extract property" suggests potentially invalid name for new property
  • KT-37637 KotlinChangeSignatureUsageProcessor broke Change Signature in Python plugin
  • KT-37797 Useless "Value for new paramater" step in 'Update usages to reflect signature changes' for method with default parameter value
  • KT-37822 Improve message "Inline all references and remove the kind"
  • KT-38348 UL methods return signature without generic type parameters
  • KT-38527 Move nested class to upper level fails silently: MissingResourceException

IDE. Script

  • KT-37765 NCDFE KJvmCompiledModuleInMemory on running *.main.kts script

IDE. Tests Support

  • KT-36716 With kotlin.gradle.testing.enabled=true, gradle console output gets extra ijLog messages
  • KT-36910 There are no Run/Debug actions in context menu for non-JVM platform-specific test results
  • KT-37037 [JS, Debug] Node.JS test debug doesn't stop on breakpoints

IDE. Wizards

New Features

  • KT-36150 New Project Wizard: provide a way to connect with "dependsOn" relation the added project modules
  • KT-36179 New Project Wizard: it's impossible to make a JVM target friendly to Java code in a multiplatform project

Fixes

  • KT-35583 New Project wizard: don't suggest build systems which cannot be used
  • KT-35585 New Project wizard: remember choices which have sense for many projects
  • KT-35691 New Project wizard: artifact and group values are effectively ignored
  • KT-35693 New Project wizard creates pom.xml / build.gradle referring to release Kotlin version only
  • KT-36136 New Project Wizard: generated projects are missing m2 Gradle repository
  • KT-36137 New Project Wizard: "multiplatform" shall be written as a single word, without the capital P in the middle
  • KT-36155 New Project Wizard: show warning "Multiplatform project cannot be generated" only for MPP projects
  • KT-36162 New Project Wizard: make the error messages in modules editor actionable
  • KT-36163 New Project Wizard: remove trailing spaces in Android SDK Path automatically
  • KT-36166 New Project Wizard: addition of Android target into a multiplatform project doesn't add a necessary minimal Android configuration
  • KT-36169 New Project Wizard: Android-related projects failed to build
  • KT-36176 New Project Wizard: module templates doesn't work for multiplatform projects
  • KT-36177 New Project Wizard: it's impossible to add more than one target of JVM kind to a multiplatform project
  • KT-36180 New Project Wizard: it's impossible to set target JVM version for a JVM module
  • KT-36226 New Project Wizard: add Mobile Android/iOS project template
  • KT-36267 New Project Wizard: flatten JVM targets list for multiplatform projects
  • KT-36328 New Project wizard fails for certain templates with AE: "Wrong line separators" at KotlinFormattingModelBuilder.createModel()
  • KT-37599 New Project Wizard: Open Kotlin Wizard via hyperlink
  • KT-37667 New project wizard: implement new UI design
  • KT-37674 Kotlin version in build files includes the IDEA version
  • KT-38061 New Project wizard 1.4: do not allow choosing build system if corresponding IJ plugin is disabled
  • KT-38567 New Project wizard 1.4+: Improve processing case when project with required path already exists
  • KT-38579 New Project wizard 1.4+: multiplatform mobile application: build fails on lint task: Configuration with name 'compileClasspath' not found
  • KT-38929 New project wizard: update libraries in project template according to kotlin IDE plugin version
  • KT-38417 Enable new project wizard by-default

JS. Tools

  • KT-36484 KotlinJS, MPP: Compilation throws "TypeError: b is not a function" only in production mode

JavaScript

  • KT-31126 Invalid JS constructor call (primary ordinary -> secondary external)
  • KT-35966 Make @JsExport annotation usable in common code
  • KT-37128 KJS: StackOverflowException when using reified recursive bound for type parameter
  • KT-37163 KJS: NullPointerException on using intersection type as a reified one
  • KT-37418 Support AssociatedObjectKey and findAssociatedObject in JS IR BE

Libraries

New Features

  • KT-8658 Add property delegates which call get/set on the given KProperty instance, e.g. a property reference
  • KT-12448 Make @Suppress applicable for type parameters
  • KT-22932 String.format should support null locale
  • KT-23514 assertFailsWith should link unexpected exception as cause
  • KT-23737 JS & MPP: Support exception cause and addSuppressed
  • KT-25651 Add shuffle() to Array, ByteArray, IntArray, etc to match MutableList
  • KT-26494 Create an interface with provideDelegate()
  • KT-27729 Inherit ReadWriteProperty from ReadOnlyProperty
  • KT-28290 Add the onEach extension function to the Array
  • KT-29182 SIZE_BYTES/BITS for Float and Double
  • KT-30372 Add associateWith to Array
  • KT-33906 Add vararg overloads for maxOf/minOf functions
  • KT-34161 Array.contentEquals/contentHashCode/contentToString should allow null array receiver and argument
  • KT-35851 Add setOfNotNull function
  • KT-36866 reduceIndexedOrNull
  • KT-36955 stdlib: Reverse range and sortDescending range
  • KT-37161 Add #onEachIndexed similar to #forEachIndexed
  • KT-37603 Throwable.stackTraceToString: string with detailed information about exception
  • KT-37751 Implement shuffled() method Sequences
  • KT-37804 Add 'fail' in kotlin-test that allows to specify cause
  • KT-37839 StringBuilder.appendLine in stdlib-common
  • KT-37910 Support Media Source Extension (MSE) and Encrypted Media Extensions (EME) in Kotlin/Js
  • KT-38044 Common Throwable.printStackTrace

Performance Improvements

Fixes

  • KT-13887 Double/Float companion values such as NaN should be constants
  • KT-14119 String.toBoolean() should be String?.toBoolean()
  • KT-16529 Names of KProperty's type parameters are inconsistent with ReadOnlyProperty/ReadWriteProperty
  • KT-36356 Specify which element Iterable.distinctBy(selector) retains
  • KT-38060 runningFold and runningReduce instead of scanReduce

Reflection

  • KT-29969 Support optional vararg parameter in KCallable.callBy
  • KT-37707 "IllegalStateException: superInterface.classLoader must not be null" on class, which implements "AutoCloaseable" interface, "isAccessible" property changing

Tools. CLI

  • KT-37090 file does not exist: C:\Users\NK\DOWNLO~1\kotlin-compiler-1.3.61\kotlinc\bin\..\lib\kotlin-compiler.jar" from standalone compiler on Windows

Tools. Gradle

  • KT-35447 Warnings should be piped to stderr when using allWarningsAsErrors = true
  • KT-35942 User test Gradle source set code cannot reach out internal members from the production code
  • KT-36019 Implement Gradle DSL for explicit API mode

Tools. Gradle. JS

New Features

  • KT-32017 Kotlin/JS in MPP: support changing the generated JS file name in Gradle DSL
  • KT-32721 [Gradle, JS] CSS Support for browser
  • KT-36843 [Gradle, JS, IR] Configure JS Compiler Type through DSL
  • KT-37207 Allow to use npm dependency from a local directory
  • KT-38056 [Gradle, JS] Group tasks by browser and node

Fixes

  • KT-32466 kotlinNpmResolve fails in the case of composite build
  • KT-34468 Consider custom versions while parsing yarn.lock
  • KT-36489 [Gradle, JS, IR]: Correct naming for both compilers
  • KT-36784 Kotlin. JS. MPP – Cannot find project :js when using Gradle composite builds
  • KT-36864 KJS. Composite build require JS plugin in root project
  • KT-37240 KJS. Nondeterministic execution order for webpack scripts (from folder 'webpack.config.d')
  • KT-37582 Kotlin/JS: KotlinWebpack non-nullable properties are shown as nullable in Gradle configuration
  • KT-37587 KJS. Karma ignore dynamically created webpack patches
  • KT-37635 [Gradle, JS] Webpack devtool provide enum for only 2 variants
  • KT-37636 [Gradle, JS] Extract package.json from klib
  • KT-37762 [Gradle, JS] Actualize Node and Yarn versions in 1.4
  • KT-37988 [Gradle, JS] Bump NPM versions on 1.4-M2
  • KT-38051 [Gradle, JS] browserDistribution doesn't provide outputs
  • KT-38519 JS Compiler per project without additional import

Tools. Gradle. Multiplatform

  • KT-36674 allMetadataJar task fails if there is an empty intermediate source set in a multiplatform project with native targets
  • KT-38746 In HMPP, compilation of a shared-native source set could be mistakenly disabled
  • KT-39094 Provide a way to pass custom JVM args to commonizer from Gradle

Tools. Gradle. Native

  • KT-25887 Kotlin Native gradle build fail with endorsed is not supported. Endorsed standards and standalone APIs on jdk > 8 & CLion
  • KT-36721 Deduce a fully qualified unique_name in klib manifest from something like group name
  • KT-37730 Native part of multiplatform build fails with "unresolved reference" errors if there is a local and external module with the same name
  • KT-38174 Kotlin/Native: Disable platform libraries generation at the user side by default

Tools. J2K

Fixes

  • KT-34965 Convert function reference copied from function call
  • KT-35593 New J2K: method's names don't change between functions declared in Number.java and Number.kt
  • KT-35897 J2K converts private enum constructors to internal constructors and produces NON_PRIVATE_CONSTRUCTOR_IN_ENUM error
  • KT-36088 J2K: StackOverflowError when trying to convert Java class with recursive type bound
  • KT-36149 J2K: PsiInvalidElementAccessException: Element class com.intellij.psi.impl.source.tree.CompositeElement of type DOT_QUALIFIED_EXPRESSION
  • KT-36152 J2K: RuntimeException: Couldn't get containingKtFile for ktElement
  • KT-36159 J2K: ClassCastException if constructor contains a super() call and class extends from Kotlin class
  • KT-36190 J2K: Wrong property name generation when getter for non-boolean value starts with 'is'
  • KT-36891 j2k: Fail with java.lang.NoClassDefFoundError when converting array
  • KT-37052 new J2K: Java private function is converted to private open top-level function
  • KT-37620 new J2K: IndexOutOfBoundsException (DefaultArgumentsConversion.applyToElement) with overloaded function with vararg parameter
  • KT-37919 new J2K: Redundant line feeds when converting function

Tools. JPS

  • KT-37159 A Typo (forgotten space) in build output in Circular dependencies warning description

Tools. Scripts

  • KT-30086 ThreadDeath when running kotlin scripts using jsr223
  • KT-37558 Scripts: implicit receivers don't work correctly when using CompiledScriptJarsCache
  • KT-37823 Consecutive invocations of main.kts throw a KotlinReflectionNotSupportedError

1.4-M1

Compiler

New Features

  • KT-4240 Type inference possible improvements: analyze lambda with expected type from the outer call
  • KT-7304 Smart-casts and generic calls with multiple bounds on type parameters
  • KT-7745 Support named arguments in their own position even if the result appears as mixed
  • KT-7770 SAM for Kotlin classes
  • KT-8834 Support function references with default values as other function types
  • KT-10930 Expected type isn't taken into account for delegated properties
  • KT-11723 Support coercion to Unit in callable reference resolution
  • KT-14416 Support of @PolymorphicSignature in Kotlin compiler
  • KT-16873 Support COERSION_TO_UNIT for suspend lambdas
  • KT-17643 Inferring type of Pair based on known Map type
  • KT-19869 Support function references to functions with vararg if expected type ends with repeated vararg element type
  • KT-21178 Prohibit access of protected members inside public inline members
  • KT-21368 Improve type inference
  • KT-25866 Iterable.forEach does not accept functions that return non-Unit values
  • KT-26165 Support VarHandle in JVM codegen
  • KT-27582 Allow contracts on final non-override members
  • KT-28298 Allow references to generic (reified) type parameters in contracts
  • KT-31230 Refine rules for allowed Array-based class literals on different platforms: allow Array::class everywhere, disallow Array<...>::class on non-JVM
  • KT-31244 Choose Java field during overload resolution with a pure Kotlin property
  • KT-31734 Empty parameter list required on Annotations of function types
  • KT-33990 Type argument isn't checked during resolution part
  • KT-33413 Allow 'break' and 'continue' in 'when' statement to point to innermost surrounding loop
  • KT-34743 Support trailing comma in the compiler
  • KT-34847 Lift restrictions from kotlin.Result

Fixes

  • KT-2869 Incorrect resolve with 'unsafe call error' and generics
  • KT-3630 Extension property (generic function type) does not work
  • KT-3668 Infer type parameters for extension 'get' in delegated property
  • KT-3850 Receiver check fails when type parameter has another parameter as a bound
  • KT-3884 Generic candidate with contradiction is preferred over matching global function
  • KT-4625 Poor error highlighting when assigning not matched type to index operator
  • KT-5449 Wrong resolve when functions differ only in the nullability of generic type
  • KT-5606 "Type mismatch" in Java constructor call with SAM lambda and vararg parameter
  • KT-6005 Type inference problem in sam constructors
  • KT-6591 Overloaded generic extension function call with null argument resolved incorrectly
  • KT-6812 Type inference fails when passing a null instead of a generic type
  • KT-7298 Bogus type inference error in generic method call translated from Java
  • KT-7301 Type inference error in Kotlin code translated from Java
  • KT-7333 Type inference fails with star-projections in code translated from Java
  • KT-7363 Kotlin code with star-projections translated from Java does not typecheck
  • KT-7378 3-dimension array type inference fail
  • KT-7410 Call resolution error appears only after adding non-applicable overload
  • KT-7420 Type inference sometimes infers less specific type than in Java
  • KT-7758 Type of lambda can't be infered
  • KT-8218 Wrong 'equals' for generic types with platform type and error type
  • KT-8265 Non-typesafe program is compiled without errors
  • KT-8637 Useless diagnostics for type parameters with unsafe nullability
  • KT-8966 Smart casts don't work with implicit receiver and extension on type parameter with bounds
  • KT-10265 Type inference problem when using sealed class and interfaces
  • KT-10364 Call completeCall on variable before invoke resolution
  • KT-10612 java.util.Comparator.comparing type inference
  • KT-10628 Wrong type mismatch with star projection of inner class inside use-site projected type
  • KT-10662 Smartcast with not-null assertion
  • KT-10681 Explicit type arguments not taken into account when determining applicable overloads of a generic function
  • KT-10755 Not "least" common super-type is selected for nested 'if' result in presence of multiple inheritance
  • KT-10929 Type inference based on receiver type doesn't work for delegated properties in some cases
  • KT-10962 Wrong resolution when argument has unstable DataFlowValue
  • KT-11108 RxJava failed platform type inference
  • KT-11137 Java synthetic property does not function for a type with projection
  • KT-11144 UninferredParameterTypeConstructor exception during build
  • KT-11184 Type inference failed for combination of safe-call, elvis, HashSet and emptySet
  • KT-11218 Type inference incorrectly infers nullable type for t...
Read more