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 DefaultImplsKT-30330
Introduce KotlinNothingValueException and throw it instead of NPE on expressions of type NothingKT-38435
Support suspend conversion on callable references in JVM backend
Fixes
KT-35483
NI: compatibility modeKT-39728
Declarations fromkotlin.reflect
resolved to expect-classes even in JVM modules in IDEKT-40153
REPL IDE services completion fails on imports completionKT-40404
Mixed named/positional arguments: argument can be passed twiceKT-40544
NI: "TYPE_MISMATCH: Required: MutableList<out T!> Found: List" caused by Java interface functionKT-40555
NI: Spread operator allows inferred nullable typesKT-40646
NI: TYPE_MISMATCH: "inferred type is Unit but Observer was expected" caused by LieData.observe inferenceKT-40691
False positive CAPTURED_VAL_INITIALIZATION with EXACTLY_ONCE contractKT-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 deserializationKT-40843
Unhandled exception for suspending methods that return Result typeKT-40869
Recursion computation inside compiler resolve on a correct codeKT-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 functionKT-40919
kotlin.collections.ArrayDeque requires an explicit import when compiling with kotlinc 1.4-RC and -language-version 1.3KT-40920
Regression in JvmDefault: incorrect access to missing DefaultImpls on default methods in Java interface overriding Kotlin interfaceKT-40978
Prohibit using suspend functions as SAM in fun interfaces
Kotlin/Native
- Objective-C/Swift interop:
- 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 forcreateTempDir
/createTempFile
KT-36981
Provide a visual illustration of source sets structure generated byios()
,watchos()
,tvos()
presetsKT-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 codeKT-40494
UAST: "NoSuchElementException: No element of given type found" with use-site target annotationKT-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 ScriptDefinitionsManagerKT-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 IDEAKT-40242
gradle.kts: Deadlock in ScriptClassRootsUpdater
IDE. Wizards
KT-36153
New Project Wizard: provide more referential info on project structure editor screenKT-39904
New Project wizard 1.4: update Frontend Application to make it run with JS IRKT-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 typeKT-40083
K/JS-IR: java.lang.IllegalStateException: has not acquired a symbol yetKT-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 setsKT-37720
Replace ArtifactTransform with TransformActionKT-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 targetKT-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@76484173KT-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 conversionKT-37388
Consider relaxing rules about inferring Nothing inside special constructions (if, try, when)KT-37717
NI: "IllegalStateException: Error type encountered" with @BuilderInferenceKT-38427
New inference in branched conditions (if, when) results in odd behavior with inconsistent compiler warnings and runtime errorsKT-38899
NI: False positive IMPLICIT_NOTHING_TYPE_ARGUMENT_IN_RETURN_POSITION leads to NPEKT-39468
NI: overload resolution ambiguity between functions passingT
andFoo<T>
with a contravariant receiverKT-39618
NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER: unable to infer generic type on @BuilderInference annotated lambda parameter with receiver typeKT-39633
NI: Incorrect type parameter instantiation based on contravariant type argumentKT-39691
NI: Missing SAM conversion for nullable lambdaKT-39860
Make Kotlin binaries publicly available (set KotlinCompilerVersion.IS_PRE_RELEASE = false)KT-39900
NI: Incorrect type inference in a lambda returning UnitKT-39925
New JVM default compilation mode doesn't check that JVM target is 1.8KT-39943
Write information about all-compatibility mode in metadataKT-39953
NI: ClassCastException "cannot be cast to java.lang.Void" with if-else in return statement in ANdroid projectKT-40045
NI: lambda’s receiver type isn't inferred properlyKT-40057
NI: provideDelegate org.jetbrains.kotlin.codegen.CompilationException: Back-end (JVM) Internal error: wrong bytecode generated for static initializerKT-40060
NI: postponed variable from the builder inference flows to back-end and leads to throw an exceptionKT-40112
Kotlin Gradle DSL: COMPATIBILITY_WARNING onkotlin.sourceSets
blockKT-40113
Kotlin Gradle DSL: "Expression 'main' cannot be invoked as a function" fordistributions.main
DSL blockKT-40128
Introduce compiler key to disable compatibility resolution mechanism for new inference featuresKT-40151
NI: postponed variable isn't substituted for top-level CR inside builder inferenceKT-40214
AbstractMethodError in gradle subplugin which is used in Android appKT-40234
Deprecation level "hidden" has no effect on callable reference argumentKT-40247
NI: false positive "function should be called from coroutine or another suspend function" for suspend invoke operator in try-catchKT-40254
Rewrite at slice with two callable reference argumentsKT-40269
NI: "disabled Unit conversions" error has appeared on green codeKT-40337
NI: false positive "function should be called from coroutine or another suspend function" for suspend invoke operator inwhen
blockKT-40406
Prohibit reflection on adapted callable references
IDE
KT-39968
Paths in KotlinJavaRuntime library aren't updated after you run IDE from a different directoryKT-39989
NullPointerException when opening Kotlin facets in Project Structure dialog in IDEA 192KT-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.6KT-40073
(CoroutineDebugger) Change minimum supported kotlinx.coroutines version to 1.3.8*KT-40172
Restored frame variables isn't shown for suspended coroutinesKT-40635
Coroutines Debugger: make IDE plugin accept coroutines 1.3.8-rc* versions as well
IDE. Gradle Integration
KT-38744
No dependency between Androidtest
and commonTest source sets with kotlin.mpp.enableGranularSourceSetsMetadata=trueKT-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 changedKT-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 classKT-34209
Switch default behaviour in 1.4 for insertion (to build script) via quick fix of the compiler option enabling inline classesKT-36131
Suggest to add a missing module dependency on an unresolved reference in Kotlin codeKT-37462
Add "Add dependency to module" quickfix in multimodule Maven projectKT-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+: nohttps://dl.bintray.com/kotlin/kotlinx
repository is added for kotlinx-htmlKT-40037
New Project wizard: update Ktor versionKT-40092
Wizard: the templates panel on mac OS is too wideKT-40232
New Wizard: Android Sdk path doesn't have backslash escaping on WindowsKT-40371
New Project Wizard: Frontend Application / Library results in broken run configurationKT-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 effectKT-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/ErrorKT-37752
Generated typescript incorrect for constructors of derived classesKT-37883
KJS: Generated TypeScript uses 'declare' rather than 'export'KT-38771
JS: support non-reified type parameters in typeOfKT-39873
Update Kotlin JavaScript wrappers due to NON_EXPORTABLE_TYPE diagnostic introductionKT-40126
[JS / IR] NPE while compiling interfaces with invoke which is passed as a delegateKT-40216
KJS / IR: AssertionError caused by an anonymous object in the dependency project
Libraries
KT-33069
StringBuilder common functionsKT-35972
Add contract to builder functionsKT-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 caseKT-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 processedKT-39809
Kotlin Gradle plugin: ServiceConfigurationError: org.jetbrains.kotlin.gradle.plugin.KotlinGradleSubplugin: Provider org.jetbrains.kotlin.gradle.internal.AndroidSubplugin not a subtypeKT-39977
Collect statistics of used -Xjvm-default optionsKT-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 oneKT-39654
Default CSS settings in webpack has priority over user's settingsKT-39842
Kotlin/JS Gradle DSL: peerNpm dependency failsKT-40048
[Gradle, JS] Deprecate kotlin-frontend pluginKT-40067
[Gradle, JS] Public package.json for mixed JS/TS projectKT-40210
Fail the build when Kotlin/JS target is not (properly) configuredKT-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 dependenciesKT-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 throughorg.jetbrains.kotlin.kapt3.base.ProcessorLoader.doLoadProcessors
KT-36302
TypeTreeVisitor.visitMemberSelect IllegalStateException: node.sym must not be null on JDK 11KT-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 SinceKotlinKT-38652
Do not generate optional annotations to class files on JVMKT-38777
Hide Throwable.addSuppressed member and prefer extension instead
Performance Improvements
KT-38489
Compilation of kotlin html DSL increasingly slowKT-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 supertypeKT-25290
NI: "AssertionError: If original type is SAM type, then candidate should have same type constructor" on out projection of Java classKT-28672
Contracts on calls with implicit receiversKT-30279
Support non-reified type parameters in typeOfKT-31908
NI: CCE on passing lambda to function which accepts vararg SAM interfaceKT-32156
New inference issue with genericsKT-32229
New inference algorithm not taking into account the upper bound classKT-33455
Override equals/hashCode in functional interface wrappersKT-34902
AnalyzerException: Argument 1: expected I, but found R for unsigned types in generic data classKT-35075
AssertionError: "No resolved call for ..." with conditional function referencesKT-35468
Overcome ambiguity between typealias kotlin.Throws and the aliased type kotlin.jvm.ThrowsKT-35494
NI: Multiple duplicate error diagnostics (in IDE popup) with NULL_FOR_NONNULL_TYPEKT-35681
Wrong common supertype between raw and integer literal type leads to unsound codeKT-35937
Error "Declaration has several compatible actuals" on incremental buildKT-36013
Functional interface conversion not happens on a value of functional type with smart cast to a relevant functional typeKT-36045
Do not depend on the order of lambda arguments to coerce result toUnit
KT-36448
NI: fix tests after enabling NI in the compilerKT-36706
Prohibit functional interface constructor referencesKT-36969
Generate @NotNull on instance parameters of Interface$DefaultImpls methodsKT-37058
Incorrect overload resolution ambiguity on callable reference in a conditional expression with new inferenceKT-37120
[FIR] False UNRESOLVED_REFERENCE for public and protected member functions and properties which are declared in object inner classKT-37149
Conversion when generic specified by type argument of SAM typeKT-37249
false TYPE_MISMATCH when When-expression branches have try-catch blocksKT-37341
NI: Type mismatch with combination of lambda and function referenceKT-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 interfaceKT-37510
NI infersjava.lang.Void
from the expression in a lazy property delegate and throws ClassCastException at runtimeKT-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 JavaKT-37630
NI: ILT suitability in a call is broken if there are CST calculation and calling function's type parametersKT-37665
NI: applicability error due to implicitly inferred Nothing for returning T with expected typeKT-37712
No extension receiver in functional interface created with lambdaKT-37715
NI: VerifyError: Bad type on operand stack with varargs generic value when type is inferredKT-37721
NI: Function reference with vararg parameter treated as array and missing default parameter is rejectedKT-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 subtypeKT-37952
NI: improve lambdas completion through separation the lambdas analysis into several stepsKT-38069
Callable reference adaptation should have dependency on API version 1.4KT-38143
New type inference fails when calling extension function defined on generic type with type arguments nested too deepKT-38156
FIR Metadata generationKT-38197
java.lang.OutOfMemoryError: Java heap space: failed reallocation of scalar replaced objectsKT-38259
NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER for provideDelegateKT-38337
Map delegation fails for inline classesKT-38401
FIR: protected effective visibility is handled unpreciselyKT-38416
FIR: infinite loop in BB coroutine test 'overrideDefaultArgument.kt'KT-38432
FIR: incorrect effective visibility in anonymous objectKT-38434
Implement resolution of suspend-conversion on FE only, but give error if suspend conversion is calledKT-38437
[FIR] String(CharArray) is resolved to java.lang.String constructor instead of kotlin.text.String pseudo-constructorKT-38439
NI: anonymous functions without receiver is allowed if there is an expected type with receiverKT-38473
FIR: ConeIntegerLiteralType in signatureKT-38537
IllegalArgumentException: "marginPrefix must be non-blank string" with raw strings and space as margin prefix in trimMargin() callKT-38604
Implicit suspend conversion on call arguments doesn't work on vararg elementsKT-38680
NSME when calling generic interface method with default parameters overriden with inline class type argumentKT-38681
Wrong bytecode generated when calling generic interface method with default parameters overriden with primitive type argumentKT-38691
NI: overload resolution ambiguity if takeR
and() -> R
, and pass literal lambda, which returnsR
KT-38799
False positive USELESS_CAST for lambda parameterKT-38802
Generated code crashes by ClassCastException when delegating with inline classKT-38853
Backend Internal error: Error type encountered: Unresolved type for nested class used in an annotation argument on an interface methodKT-38890
NI: false negative Type mismatch for values with fun keywordKT-39010
NI: Regression with false-positive smartcast on var of generic typeKT-39013
202, ASM 8: "AnalyzerException: Execution can fall off the end of the code"KT-39260
"AssertionError: Unsigned type expected: Int" in rangeKT-39305
NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER: unable to infer deeply nested type bound when class implements generic interfaceKT-39408
Using unsigned arrays as generics fails in 1.4-M2 with class cast exceptionKT-39533
NI: Wrong overload resolution for methods with SAM converted function reference argumentsKT-39535
NI: Inference fails for the parameters of SAM converted lambdas with type parametersKT-39603
Require explicit override in JVM default compatibility mode on implicit generic specialization of inherited methods in classesKT-39671
Couldn't inline method call 'expectBody'KT-39816
NI:ClassCastException and no IDE error with provideDelegate when DELEGATE_SPECIAL_FUNCTION_MISSING in OIKT-32779
Rewrite at slice
in array access resolution in coroutine inferenceKT-39387
Can't build Kotlin project due to overload resolution ambiguity on flatMap callsKT-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/NativeKT-37943
Conflicting overloads in the factory functions sample code in Coding Conventions Page
IDE
New Features
KT-10974
Add Code Style: Import Layout Configuration TableKT-39065
"Join lines" should remove trailing comma on call site
Fixes
KT-9065
Wrong result when move statement through if block with call with lambdaKT-14757
Move statement up breaks code in function parameter listKT-14946
Move statement up/down (with Ctrl+Shift+Up/Down) messes with empty linesKT-15143
Kotlin: Colors&Fonts -> "Enum entry" should use Language Default -> Classes - Static fieldKT-17887
Moving statement (Ctrl/Cmd+Shift+Down) messes with use blockKT-34187
UAST cannot get type of array accessKT-34524
"PSI and index do not match" and IDE freeze with library import fromsquare/workflow
KT-35574
UAST: UBreakExpression in when expression should be UYieldExpressionKT-36801
IDE: Unsupported language version value is represented with "latest stable" in GUIKT-37378
Remove IDE option "Enable new type inference algorithm..." in 1.4KT-38003
"Analyze Data Flow from Here" should work on parameter of abstract methodKT-38173
Reified types do no have extends informationKT-38217
Make Kotlin plugin settings searchableKT-38247
"IncorrectOperationException: Incorrect expression" through UltraLightUtils.kt: inlined string is not escaped before parsingKT-38293
Throwable: "'codestyle.name.kotlin' is not found in java.util.PropertyResourceBundle" at KotlinLanguageCodeStyleSettingsProvider.getConfigurableDisplayName()KT-38407
Drop components from plugin.xmlKT-38443
No error on change in property initializerKT-38521
ISE: Loop in parent structure when converting a DOT_QUALIFIED_EXPRESSION with parent ANNOTATED_EXPRESSIONKT-38571
Rework deprecated EPsKT-38632
Change the code style to official in tests
IDE. Code Style, Formatting
Fixes
KT-24750
Formatter: Minimum blank lines after class header does nothingKT-31169
IDEA settings search fails to find "Tabs and Indents" tab in Kotlin code style settingsKT-35359
Incorrect indent for multiline expression in string templateKT-37420
Add setting to disable inserting empty line between declaration and declaration with commentKT-37891
Formatter inserts empty lines between annotated propertiesKT-38036
Use trailing comma setting does not apply to code example in Settings dialogKT-38568
False positive: weak warning "Missing line break" on -> in when expressionKT-39024
Add option for blank lines before declaration with comment or annotation on separate lineKT-39079
Trailing comma: add base support for call siteKT-39123
OptionAlign 'when' branches in columns
does nothingKT-39180
Move trailing comma settings in Other tab
IDE. Completion
KT-18538
Completion of static members of grand-super java class inserts unnecessary qualifierKT-38445
Fully qualified class name is used instead after insertion ofdelay
method
IDE. Debugger
Fixes
KT-14057
Debugger couldn't step into Reader.readKT-14828
Bad step into/over behavior for functions with default parametersKT-36403
Method breakpoints don't work for librariesKT-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 disabledKT-38484
Coroutines Debugger: IAE “Requested element count -1 is less than zero.” is thrown by calling dumpCoroutinesKT-38606
Coroutine Debugger: OCE from org.jetbrains.kotlin.idea.debugger.coroutine.proxy.mirror.BaseMirror.isCompatibleKT-39143
NPE on setCurrentStackFrame to Kotlin inner compiled class contentKT-39412
Failed to find Premain-Class manifest attribute when debugging main method with ktorKT-39634
(CoroutineDebugger) Agent doesn't start if using kotlinx-coroutines-core only dependencyKT-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 ofmodifyDependenciesOnMppModules
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 enabledKT-36673
Gradle Project importing: move ModelBuilders and ModelProviders to kotlin-gradle-tooling jarKT-36792
IDEA 2020.1: Some module->module dependencies in HMPP project are missed after import from GradleKT-37125
Imported modules structure for MPP project is displayed messy in UI in IDEA 2020.1KT-37428
NPE at KotlinFacetSettings.setLanguageLevel() on the first project importKT-38706
IDE Gradle import creates 4 JavaScript modules for MPP source sets with BOTH compiler typeKT-38767
Published hierarchical multiplatform library symbols are unresolved in IDE (master)KT-38842
False positive [INVISIBLE_MEMBER] forinternal
declaration of commonMain called from commonTestKT-39213
IDE: references from MPP project to JavaScript library are unresolved, when project and library are compiled with "both" modeKT-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 inScriptTemplatesFromDependenciesProvider
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 fileKT-35153
build.gradle.kts: scripts in removed subproject remain imported, but shouldn'tKT-35573
Request for gradle build script configuration only after explicit click on notificationKT-36675
move .gradle.kts ModelBuilders and ModelProviders to kotlin-gradle-tooling jarKT-37178
build.gradle.kts: Rework the notification for scripts out of projectKT-37631
Unnecessary loading dependencies after opening build.gradle.kts after project import with Gradle 6KT-37863
Scanning dependencies for script definitions takes too long or indefinitely during Gradle importKT-38296
MISSING_DEPENDENCY_SUPERCLASS in the build.gradle.kts editor while Gradle runs OkKT-38541
"Invalid file" exception in ScriptChangeListener.getAnalyzableKtFileForScript()KT-39104
“Gradle Kotlin DSL script configuration is missing” after importing project in IJ201, Gradle 6.3KT-39469
Gradle version is not updated in script dependencies if the version of gradle was changed in gradle-wrapper.propertiesKT-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 declarationsKT-17209
Provide intention to fix platform declaration clash (CONFLICTING_JVM_DECLARATIONS)KT-24522
Suggest to move typealias outside the classKT-30263
Detect redundant conversions of unsigned typesKT-35893
Support Inspection for unnecessary asSequence() callKT-38559
"Change JVM name" (@JvmName) quickfix: improve name suggester for generic functionsKT-38597
Expand Boolean intentionKT-38982
Add "Logger initialized with foreign class" inspectionKT-39131
TrailingCommaInspection: should suggest fixes for call-site without warnings
Fixes
KT-5271
Missing QuickFix for Multiple supertypes availableKT-11865
"Create secondary constructor" quick fix always inserts parameter-less call tothis()
KT-14021
Quickfix to add parameter to function gives strange name to parameterKT-17121
"Implement members" quick fix is not suggestedKT-17368
Don't highlight members annotated with @JsName as unusedKT-20795
"replace explicit parameter with it" creates invalid code in case of overload ambiguitiesKT-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 parenthesesKT-22142
Intentions: "Convert to primary constructor" changes semantics for property with custom setterKT-22878
Empty argument list at the call site of custom function named "suspend" shouldn't be reported as unnecessaryKT-24281
Importing of invoke() from the same file is reported as unused even if it isn'tKT-25050
False-positive inspection "Call replaceable with binary operator" for 'equals'KT-26361
@deprecated "ReplaceWith" quickfix inserts 'this' incorrectly when using function importsKT-27651
'Condition is always true' inspection should not be triggered when the condition has references to a named constantKT-29934
False negativeChange type
quickfix on primary constructor override val parameter when it has wrong typeKT-31682
'Convert lambda to reference' intention inside class with function which return object produces uncompilable codeKT-31760
Implement Abstract Function/Property intentions position generated member improperlyKT-32511
Create class quick fix is not suggested in super type list in case of missing primary constructorKT-32565
False positive "Variable is the same as 'credentials' and should be inlined" with object declared and returned from lambdaKT-32801
False positive "Call on collection type may be reduced" with mapNotNull, generic lambda block and new inferenceKT-33951
ReplaceWith quickfix with unqualified object member call doesn't substitute argument for parameterKT-34378
"Convert lambda to reference" refactoring does not work for suspend functionsKT-34677
False positive "Collection count can be converted to size" withIterable
KT-34696
Wrong 'Redundant qualifier name' for 'MyEnum.values' usageKT-34713
"Condition is always 'false'": quickfix "Delete expression" doesn't removeelse
keyword (may break control flow)KT-35015
ReplaceWith doesn't substitute parameters with argument expressionsKT-35329
Replace 'when' with 'if' intention: do not suggest if 'when' is used as expression and it has no 'else' branchKT-36194
"Add braces to 'for' statement" inserts extra line break and moves the following single-line commentKT-36406
"To ordinary string literal" intention adds unnecessary escapes to characters in template expressionKT-36461
"Create enum constant" quick fix adds after semicolon, if the last entry has a commaKT-36462
"Create enum constant" quick fix doesn't add trailing commaKT-36508
False positive "Replace 'to' with infix form" when 'to' lambda generic type argument is specified explicitlyKT-36930
Intention "Specify type explicitly" adds NotNull annotation when calling java method with the annotationKT-37148
"Remove redundant.let
call doesn't remove extra callsKT-37156
"Unused unary operator" inspection highlighting is hard to seeKT-37173
"Replace with string templates" intention for String.format produces uncompilable string templateKT-37181
Don't show "Remove redundant qualifier name" inspection on qualified Companion imported with star importKT-37214
"Convert lambda to reference" with a labeled "this" receiver failsKT-37256
False positivePlatformExtensionReceiverOfInline
inspection if a platform type value is passed to a nullable receiverKT-37744
"Convert lambda to reference" inspection quick fix create incompilable code when type is inferred from lambda parameterKT-37746
"Redundant suspend modifier" should not be reported for functions with actual keywordKT-37842
"Convert to anonymous function" creates broken code with suspend functionsKT-37908
"Convert to anonymous object" quickfix: false negative when interface has concrete functionsKT-37967
Replace 'invoke' with direct call intention adds unnecessary parenthesisKT-37977
"Replace 'invoke' with direct call" intention: false positive when function is not operatorKT-38062
Reactor Quickfix throwsNotImplementedError
for KotlinKT-38240
False positive redundant semicolon withas
cast andnot
unary operator on next lineKT-38261
Redundant 'let' call removal leaves ?. operator and makes code uncompilableKT-38310
Remove explicit type annotation intention drops 'suspend'KT-38492
False positive "Add import" intention for already imported classKT-38520
SetterBackingFieldAssignmentInspection throws exceptionKT-38649
False positive quickfix "Assignment should be lifted out of when" in presence of smartcastsKT-38677
Invalid psi tree afterLift assigment out of...
KT-38790
"Convert sealed subclass to object" for data classes doesn't remove 'data' keywordKT-38829
'Remove redundant backticks' can be broken with @ in nameKT-38831
'Replace with assignment' can be broken with fast code changeKT-38832
"Remove curly braces" intention may produce CCEKT-38948
False positive quickfix "Make containing function suspend" for anonymous functionKT-38961
"Useless call on collection type" for filterNotNull on non-null array where list return type is expectedKT-39069
Improve TrailingCommaInspectionKT-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 methodsKT-33510
There is no gutter icon to navigate fromactual
toexpect
ifexpect
and the correspondingactual
declarations are in the same fileKT-38260
Navigation bar doesn't show directories of files with a single top level Kotlin classKT-38466
Top level functions/properties aren't shown in navigation panel
IDE. Project View
KT-36444
Structure view: add ability to sort by visibilityKT-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 declarationKT-30128
Change Signature should move lambda outside of parentheses if the arguments are reordered so that the lambda goes lastKT-35338
Move/rename refactorings mess up code formatting by wrapping linesKT-38449
Extract variable refactoring is broken by NPEKT-38543
Copy can't work to package with escaped packageKT-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 projectsKT-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 indexKT-39733
Augmented assignment matchingKT-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 wrapperKT-38810
Incorrect order of build phases in Xcode project from new wizardKT-38952
Remove old new_project_wizardsKT-39503
New Project wizard 1.4+: release kotlinx.html version is added to dependencies with milestone IDE pluginKT-39700
Wizard: group project templates on the first step by the project typeKT-39770
CSS Support in Kotlin wizardsKT-39826
Fix Android app in New Template WizardKT-39843
Change imports in JS/browser wizard
JS. Tools
KT-32273
Kotlin/JS console error on hot reloadKT-39498
Update dukat version in toolchain near to release of 1.4-M3
JavaScript
KT-29916
ImplementtypeOf
on JSKT-35857
Kotlin/JS CLI bundled to IDEA plugin can't compile using IR back-end out of the boxKT-36798
KJS: prohibit using @JsExport on a non-top-level declarationKT-37771
KJS: Generated TypeScript does not recursively export base classes (can fail with generics)KT-38113
Review public API of JS stdlib for IR BEKT-38765
[JS / IR] AssertionError: class EventEmitter: Super class should be any: with nested class extending parent classKT-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 collectionKT-28933
capitalize() with Locale argument in the JDK stdlibKT-34142
Create SortedMap with Comparator and itemsKT-34506
Add Sequence.flatMap overload that works on IterableKT-36894
Support flatMapIndexed in the Collections APIKT-38480
Introduce experimental annotation for enabling overload resolution by lambda resultKT-38708
minOf/maxOf functions to return min/max value provided by selectorKT-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 artifactsKT-23322
Document 'reduce' operation behavior on empty collectionsKT-28753
Comparing floating point values in array/list operations 'contains', 'indexOf', 'lastIndexOf': IEEE 754 or total orderKT-30083
Annotate KTypeProjection.STAR with JvmField in a compatible wayKT-30084
Annotate functions in KTypeProjection.Companion with JvmStaticKT-31343
Deprecate old String <-> CharArray, ByteArray conversion apiKT-34596
Add some validation to KTypeProjection constructorKT-35978
Review and remove experimental stdlib API status for 1.4KT-38388
DocumentfromIndex
andtoIndex
parametersKT-38854
Gradually change the return type of collection min/max functions to non-nullableKT-39023
Document split(Pattern) extension differences from Pattern.splitKT-39064
Introduce minOrNull and maxOrNull extension functions on collectionsKT-39235
Lift experimental annotation from bit operationsKT-39237
Lift experimental annotation from common StringBuilderKT-39238
Appendable.appendRange - remove nullabilityKT-39239
Lift experimental annotation from String <-> utf8 conversion apiKT-39244
KJS: update polyfills, all or most of them must not be enumerableKT-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 IRKT-33207
Kotlin/Native: KNPE during deserialization of an inner classKT-33267
Kotlin/Native: Deserialization error for an "inner" extension property imported from a classKT-37255
Make psi2ir aware of declarations provided by compiler plugins
Reflection
KT-22936
Not all things can be changed tocreateType
yet, and nowdefaultType
methods are starting to failKT-32241
Move KType.javaType into stdlib from reflectKT-34344
KType.javaType implementation throws when invoked with a typeOf()KT-38491
IllegalArgumentException when using callBy on function with inline class parameters and default argumentsKT-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 WindowsKT-30778
kotlin-compiler.jar contains shaded but not relocated kotlinx.coroutinesKT-38070
Compiler option to bypass prerelease metadata incompatibility errorKT-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 tasksKT-34487
Gradle build fails with "Cannot run program "java": error=7, Argument list too longKT-35957
MPP IC fails with "X has several compatible actual declarations" errorKT-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 targetKT-38286
[Gradle, JS] Error handling on Webpack problems
Fixes
KT-31669
Gradle/JS: rise error when plugin loaded more than onceKT-32531
[Gradle/JS] Add scoped NPM dependenciesKT-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 serverKT-35611
Kotlin Gradle plugin should reportkotlin2js
plugin ID as deprecatedKT-35641
Kotlin Gradle plugin should reportkotlin-dce-js
plugin ID as deprecatedKT-36410
JS: Collect stats about IR backend usageKT-36451
KJS Adding npm dependency breaks Webpack devserver reloadingKT-37258
Kotlin/JS + Gradle: in continuous mode kotlinNpmInstall time to time outputs "ENOENT: no such file or directory" errorKT-38109
[Gradle, JS] Error handling on Karma launcher problemsKT-38331
Add an ability to control generating externals for npm deps individuallyKT-38485
[Gradle, JS] Unable to configure JS compiler with stringKT-38683
Remove possibility to set NPM dependency without versionKT-38990
Support multiple range versions for NPM dependenciesKT-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 WindowsKT-39210
Kotlin/JS: with both JS and MPP modules in the same project Gradle configuration fails onnodejs {}
andbrowser {}
KT-39377
Use standard source-map-loader instead of custom one
Tools. Gradle. Multiplatform
KT-39184
Support publication of Kotlin-distributed libraries with Gradle MetadataKT-39304
Gradle import errorjava.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 platformsKT-38440
Make error message about missing Podfile path for cocoapods integration actionable for a userKT-38991
Gradle MPP plugin: Enable parallel in-process execution for K/N compilerKT-39935
Support overriding theKotlinNativeCompile
task sourcesKT-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 J2KKT-38004
J2K breaks java getter call in java codeKT-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 methodsKT-35626
NI: Performance problem with many type parametersKT-36047
Compiler produces if-chain instead of switch when when subject captured as variableKT-36638
Use 'java/lang/StringBuilder.append (C)Ljava/lang/StringBuilder;' when appending single character in JVM_IRKT-37389
Avoid type approximation during generation constraints with EQUALITY kindKT-37392
Avoid substitution and type approximation for simple callsKT-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 ambiguityKT-27524
Inline class is boxed when used with suspend modifierKT-27586
ClassCastException occurs if the Result (or any other inline class) is returned from a lambdaKT-30419
Use boxed version of an inline class in return type position for covariant and generic-specialized overridesKT-31163
FIR: consider replacing comparisons with compareTo calls and some additional intrinsicsKT-31585
ClassCastException with derived class delegated to generic class with inline class type argumentKT-31823
NI: Type mismatch with a star projection andUnsafeVariance
KT-33119
Pre-increment for inline class wrapping Int compiles to direct increment instead of inc-implKT-33715
Kotlin/Native: metadata compilerKT-34048
IllegalAccessError when initializing val property in EXACTLY_ONCE lambdaKT-34433
NI: Type mismatch with a star projection andUnsafeVariance
KT-35133
FIR Java: don't set 'isOperator' for methods with non-operator namesKT-35234
ClassCastException with creating an inline class from a function reference of covariant or generic-specialized overrideKT-35406
Generic type implicitly inferred as Nothing with no warningKT-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 smartcastKT-36069
NI: TYPE_MISMATCH caused by incorrect inference to NothingKT-36125
Callable reference resolution ambiguity error is not displayed properly in the IDEKT-36191
IDE locks loading packages and editing file containingtry
keyword inside string templateKT-36222
NI: Improve error message about nullability mismatch for a generic callKT-36249
NI doesn't use upper bound for T of called function during infer return type and as a result infer it toAny?
if the resulting type was intersection typeKT-36345
FIR: record argument mapping for use in back-endKT-36446
NI: "UnsupportedOperationException no descriptor for type constructor of IntegerLiteralType[Int,Long,Byte,Short]" with BuilderInference and delegateKT-36758
[FIR] Unresolved callable reference to member of local classKT-36759
[FIR] Unsupported callable reference resolution for methods with default parametersKT-36762
[FIR] Unresolvedarray.clone()
KT-36764
[FIR] Bug in inference with DefinitelyNotNull typesKT-36816
NI: definitely not-null (T!!) types in invariant positions don't approximate to T inside inference processKT-36819
NI: premature completion of lambdas, which are passed somewhereKT-36850
Incorrect private visibility of sealed class constructorsKT-36856
Throwing exception when there is inheritance in Kotlin from Java class, which contains methods with the same JVM descriptorsKT-36879
Introduce FIR_IDENTICAL in diagnostic testsKT-36881
FIR: completion don't runs for return expressionsKT-36887
[FIR] Unresolved member in nested lambda in initializerKT-36905
[FIR] Unresolved in lambda in default argument positionKT-36953
AssertionError: "Unsigned type expected: null" when there is a range with an unsigned typeKT-37009
FIR: Bound smart-cast lostKT-37027
FIR: Wrong projection on spread + varargs on non-final typesKT-37038
NI: redundant lambda's arrow breaks CST calculation for extension lambdasKT-37043
NI: inference T to Any? if there was elvis between Java out-type and reifiedmaterialize
for this type without out projectionKT-37066
[FIR] Wrong type inference for lambdasKT-37070
[FIR] Unresolved parameters of outer lambda in scope of inner lambdaKT-37087
"IllegalStateException: Can't find method 'invoke()'" for mutable property reference in default value of an inline function parameterKT-37091
[FIR] Wrong inferred type of when-expression if when-argument is not-null-asserted and type is not specifies explicitlyKT-37176
[FIR] Incorrect resolution mode for statements of blockKT-37302
Unexpected conversion:Int
constant inferred toLong
in when expressionKT-37327
FIR: Smartcast problemKT-37343
NI: definitely not null types pre-approximation is inconsistent with OIKT-37380
NI: broken some code with def not null types due to skip needed constraintsKT-37419
NI: UNRESOLVED_REFERENCE_WRONG_RECEIVER is reported in case lambda with receiver is returned fromwhen
expressionKT-37434
Kotlin/JS, Kotlin/Native: fun interfaces: SAM conversion to Kotlin interface is not compiled with RESOLUTION_TO_CLASSIFIERKT-37447
Expression from annotation entry in value parameter inside value parameter should be marked as USED_AS_EXPRESSIONKT-37453
Type arguments not checked to be empty for candidates with no declared parametersKT-37488
[FIR] Incorrect exhaustiveness checking for branches with equals to object that implements sealed classKT-37497
NI: 'super' is not an expression, it can not be used as a receiver for extension functionsKT-37530
NI: instantiation of abstract class via callable reference argument causes run time InstantiationErrorKT-37531
NI: callable reference argument with left hand side type parameter causes frontend exceptionKT-37554
NI: Nothing is inferred incorrectly with elvis returnKT-37579
NI: inconsistent behaviour with OI around implicit invoke convention after safe call with additional implicit receiverKT-37604
"VerifyError: Call to wrong method" in 'invoke' for adapted callable reference to constructor with coercion to UnitKT-37621
NI: type variable is inferred to Nothing if the second branch was Nothing and there was upper bound for a type parameterKT-37626
NI: builder inference with expected type breaks class references resolution for a class with parametersKT-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 calculationKT-37644
NI: appeared exception during incorporation of a captured type into a type variable for elvis resolveKT-37650
NI: it's impossible to infer a type variable with the participation of a wrapped covariant typeKT-37718
False positive unused parameter for @JvmStatic main function in objectKT-37779
ClassCastException: Named argument without spread operator for vararg parameter causes code to crash on runtimeKT-37832
In MPP, subtypes of types defined in legacy libraries, like stdlib, cannot properly resolve on the consumer side receviing bothKT-37861
Capturing an outer class instance in a default parameter of inner class constructor causes VerifyErrorKT-37986
Return value of function reference returning inline class mapped to 'java.lang.Object' is not boxed properlyKT-37998
'!!' operator on safe call of function returning inline class value causes CCE at runtimeKT-38042
Allow kotlin.Result as a return type only if one enabled inline classes explicitlyKT-38134
NI: Type mismatch with a star projection andUnsafeVariance
KT-38298
Inconsistent choice of candidate when both expect/actual are available (affects onlyenableGranularSourceSetMetadata
)KT-38661
NI: "Cannot infer type variable TypeVariable" with lambda with receiverKT-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 creationKT-35050
Significant freezes due to findSdkAcrossDependencies()KT-37301
Freeze when "Optimize Imports" in KotlinImportOptimizerKT-37466
Invalidate partialBodyResolveCache on OCBKT-37467
PerFileAnalysisCache.fetchAnalysisResultsKT-37993
Do not resolve references if paste code is located in the same originKT-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 supertypeKT-33473
UAST: References to local variable are resolved to UastKotlinPsiVariableKT-34564
Kotlin USimpleNameReferenceExpression for annotation parameter resolves to null for compiled Kotlin classesKT-34973
Light class incorrectly claiming ambiguous method call from Java when one overload is syntheticKT-35801
UAST: UnknownKotlinExpression for valid Kotlin annotated expressionKT-35804
UAST: Annotations missing from catch clause parametersKT-35848
UAST: ClassCastException when trying to invoke UElement for some wrapped PsiElementsKT-36156
Kotlin annotation attributes have blue color whereas white in JavaKT-36275
UAST: UCallExpression::resolve returns null for local function callsKT-36717
Fix failing light class tests after switching plugin to language version 1.4KT-36877
Message bundles for copy paste are missed in 201KT-36907
IDE:-Xuse-ir
setting on facet level does not affect highlightingKT-37133
UAST: Annotating assignment expression sometimes leads to UnknownKotlinExpressionKT-37312
"Implement members" intention put function in the primary constructor if there are unused brackets in classKT-37613
Uast: no parameters in reified methodKT-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 moduleKT-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 prioritizedKT-36860
Provide convenient completion of extension functions from objectsKT-37395
Invalid callable reference completion of member extension
IDE. Debugger
KT-34906
Implement Coroutine DebuggerKT-35392
Debugger omits meaningful part of the stacktrace even with disabled filterKT-36215
Coroutines debugger tab is empty in Android StudioKT-37238
Coroutines Debugger: dump creation fails every timeKT-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 classpathKT-38049
Coroutines Debugger: NPE “null cannot be cast to non-null type com.sun.jdi.ObjectReference” is thrown by calling dumpCoroutinesKT-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
Withkotlin.mpp.enableGranularSourceSetsMetadata=true
, IDE misses dependsOn-relation between kotlin and android sourceSets, leading to issues with expect/actual matchingKT-36354
IDE: Gradle import from non-JVM projects: dependency to output artifact is created instead of module dependencyKT-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 importKT-37237
Script configurations should be loaded during project import in case of errorsKT-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 getterKT-34026
Add "Remove argument" quick fix for redundant argument in constructor callKT-34332
Add "Remove argument" quick fix for redundant argument in function callKT-34450
Convert function to property
intention should be also displayed onfun
keywordKT-34593
Invert 'if' condition: InvertString.isNotEmpty
should beString.isEmpty
KT-34819
Inspection: report useless elvis "?: return null"KT-37849
SupportReplaceWith
for supertypes call
Performance Improvements
KT-37515
Deadlock
Fixes
KT-12329
"invert if" inserts unnecessary 'continue' for statement inside a loop with 'continue'KT-17615
"Convert parameter to receiver" changesthis
tothis@ < no name provided >
KT-20868
IntelliJ says method from anonymous inner class with inferred interface type is not used even though it isKT-20907
Secondary constructor is marked as unused by IDE when called by typealiasKT-22368
"Convert to block body" intention incorrectly formats closing braceKT-23510
"Remove parameter" quick fix keeps lambda argument when it's out of parenthesesKT-27601
False positive "Unused import directive" for extension function used in KDocKT-28085
"Convert receiver to parameter" introduces incorrect this@class in lambdaKT-30028
"Convert parameter to receiver" introduces wrong 'this' qualifier for extension lambda receiverKT-31601
"Remove redundant let call" changes semantics by introducing multiple safe callsKT-31800
False positive "never used" with function in private val object expressionKT-31912
QF “Convert to anonymous object” do nothing on SAM-interfacesKT-32561
"Property can be declared in constructor" causes another warningKT-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 ifKT-36225
KNPE: CodeInliner.processTypeParameterUsages withReplaceWith
for inline reified generic functionKT-36266
NPE when invoking Lift return out of if/when after intention becomes inapplicable but still beeing shownKT-36296
False negative "Redundant SAM-constructor" with multiple SAM argumentsKT-36367
False negative "Redundant SAM-constructor" for kotlin functionsKT-36368
False negative "Redundant SAM-constructor" for fun interfaces in kotlinKT-36395
False positive "Redundant SAM-constructor" with two java interfaces extending one anotherKT-36411
"Put parameters on separate lines" and "Put parameters on one line" actions do not respect trailing commaKT-36482
"Add JvmOverloads annotation" intention is still suggested for annotation's parametersKT-36686
Implement members quickfix puts the implementation before the data class if it already has a bodyKT-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 membersKT-36735
Inspection 'Replace 'toString' with string template' miss curly braces and generates wrong code for constructor callsKT-36834
Convert use-site targets and usages with convert property to fun intentionKT-37213
"Move to top level" intention does not update imports for extension functionsKT-37496
False positive "Remove redundant backticks" for multiple underscores variable nameKT-37502
False positive "redundant lambda arrow" with inline generic function with reified type in object and anonymous parameter nameKT-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 inspectionsKT-37749
"Convert to anonymous object" intention is suggested for Java SAM conversion, but not for KotlinKT-37781
"Add modifier" intention/quickfix works incorrectly with functional interfacesKT-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 unresolvedKT-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 usagesKT-18619
Find Usages of element used via import alias does not show actual usage locationKT-34088
Navigate | Implementations action doesn't show implementations of Java methods in Kotlin files if method has parameters referring to generic typeKT-35006
IDE: "Navigate to inline function call site" from stack trace for nested inline call navigates to outer inline callKT-36138
628 second freeze when doing Find Usages on data class propertyKT-36218
Show Kotlin file members in navigation barKT-37494
AnnotatedElementsSearch unable to find annotated property accessor
IDE. Project View
KT-32886
Project tool window: Show Visibility Icons does nothing for Kotlin classesKT-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 declarationKT-29870
Inline variable doesn't handle 'when' subject val correctlyKT-33045
Cover Move Refactoring by statistics (FUS)KT-36071
Refactoring: Move top declaration implementation refactoringKT-36072
Empty files are removed on Refactor/Move action with turned off "Delete empty source files" optionKT-36114
java.lang.NoClassDefFoundError exception on Refactor/Move of kotlin function if it is referenced in javaKT-36129
java.lang.Throwable: Invalid file exception occurs on Refactor/Move of class from kotlin scriptKT-36382
Move file refactoring breaks ktor application configKT-36504
"Extract property" suggests potentially invalid name for new propertyKT-37637
KotlinChangeSignatureUsageProcessor broke Change Signature in Python pluginKT-37797
Useless "Value for new paramater" step in 'Update usages to reflect signature changes' for method with default parameter valueKT-37822
Improve message "Inline all references and remove the kind"KT-38348
UL methods return signature without generic type parametersKT-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
Withkotlin.gradle.testing.enabled=true
, gradle console output gets extra ijLog messagesKT-36910
There are no Run/Debug actions in context menu for non-JVM platform-specific test resultsKT-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 modulesKT-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 usedKT-35585
New Project wizard: remember choices which have sense for many projectsKT-35691
New Project wizard: artifact and group values are effectively ignoredKT-35693
New Project wizard creates pom.xml / build.gradle referring to release Kotlin version onlyKT-36136
New Project Wizard: generated projects are missing m2 Gradle repositoryKT-36137
New Project Wizard: "multiplatform" shall be written as a single word, without the capital P in the middleKT-36155
New Project Wizard: show warning "Multiplatform project cannot be generated" only for MPP projectsKT-36162
New Project Wizard: make the error messages in modules editor actionableKT-36163
New Project Wizard: remove trailing spaces in Android SDK Path automaticallyKT-36166
New Project Wizard: addition of Android target into a multiplatform project doesn't add a necessary minimal Android configurationKT-36169
New Project Wizard: Android-related projects failed to buildKT-36176
New Project Wizard: module templates doesn't work for multiplatform projectsKT-36177
New Project Wizard: it's impossible to add more than one target of JVM kind to a multiplatform projectKT-36180
New Project Wizard: it's impossible to set target JVM version for a JVM moduleKT-36226
New Project Wizard: add Mobile Android/iOS project templateKT-36267
New Project Wizard: flatten JVM targets list for multiplatform projectsKT-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 hyperlinkKT-37667
New project wizard: implement new UI designKT-37674
Kotlin version in build files includes the IDEA versionKT-38061
New Project wizard 1.4: do not allow choosing build system if corresponding IJ plugin is disabledKT-38567
New Project wizard 1.4+: Improve processing case when project with required path already existsKT-38579
New Project wizard 1.4+: multiplatform mobile application: build fails on lint task: Configuration with name 'compileClasspath' not foundKT-38929
New project wizard: update libraries in project template according to kotlin IDE plugin versionKT-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 codeKT-37128
KJS: StackOverflowException when using reified recursive bound for type parameterKT-37163
KJS: NullPointerException on using intersection type as a reified oneKT-37418
SupportAssociatedObjectKey
andfindAssociatedObject
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 referenceKT-12448
Make@Suppress
applicable for type parametersKT-22932
String.format should support null localeKT-23514
assertFailsWith should link unexpected exception as causeKT-23737
JS & MPP: Support exception cause and addSuppressedKT-25651
Add shuffle() to Array, ByteArray, IntArray, etc to match MutableListKT-26494
Create an interface with provideDelegate()KT-27729
InheritReadWriteProperty
fromReadOnlyProperty
KT-28290
Add the onEach extension function to the ArrayKT-29182
SIZE_BYTES/BITS for Float and DoubleKT-30372
Add associateWith to ArrayKT-33906
Add vararg overloads for maxOf/minOf functionsKT-34161
Array.contentEquals/contentHashCode/contentToString should allow null array receiver and argumentKT-35851
Add setOfNotNull functionKT-36866
reduceIndexedOrNullKT-36955
stdlib: Reverse range and sortDescending rangeKT-37161
Add #onEachIndexed similar to #forEachIndexedKT-37603
Throwable.stackTraceToString: string with detailed information about exceptionKT-37751
Implement shuffled() method SequencesKT-37804
Add 'fail' in kotlin-test that allows to specify causeKT-37839
StringBuilder.appendLine in stdlib-commonKT-37910
Support Media Source Extension (MSE) and Encrypted Media Extensions (EME) in Kotlin/JsKT-38044
Common Throwable.printStackTrace
Performance Improvements
KT-37416
readLine() is very slow
Fixes
KT-13887
Double/Float companion values such as NaN should be constantsKT-14119
String.toBoolean()
should beString?.toBoolean()
KT-16529
Names of KProperty's type parameters are inconsistent with ReadOnlyProperty/ReadWritePropertyKT-36356
Specify which element Iterable.distinctBy(selector) retainsKT-38060
runningFold and runningReduce instead of scanReduce
Reflection
KT-29969
Support optional vararg parameter inKCallable.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 = trueKT-35942
User test Gradle source set code cannot reach out internal members from the production codeKT-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 DSLKT-32721
[Gradle, JS] CSS Support for browserKT-36843
[Gradle, JS, IR] Configure JS Compiler Type through DSLKT-37207
Allow to use npm dependency from a local directoryKT-38056
[Gradle, JS] Group tasks by browser and node
Fixes
KT-32466
kotlinNpmResolve fails in the case of composite buildKT-34468
Consider custom versions while parsing yarn.lockKT-36489
[Gradle, JS, IR]: Correct naming for both compilersKT-36784
Kotlin. JS. MPP – Cannot find project :js when using Gradle composite buildsKT-36864
KJS. Composite build require JS plugin in root projectKT-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 configurationKT-37587
KJS. Karma ignore dynamically created webpack patchesKT-37635
[Gradle, JS] Webpack devtool provide enum for only 2 variantsKT-37636
[Gradle, JS] Extract package.json from klibKT-37762
[Gradle, JS] Actualize Node and Yarn versions in 1.4KT-37988
[Gradle, JS] Bump NPM versions on 1.4-M2KT-38051
[Gradle, JS] browserDistribution doesn't provide outputsKT-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 targetsKT-38746
In HMPP, compilation of a shared-native source set could be mistakenly disabledKT-39094
Provide a way to pass custom JVM args to commonizer from Gradle
Tools. Gradle. Native
KT-25887
Kotlin Native gradle build fail withendorsed is not supported. Endorsed standards and standalone APIs
on jdk > 8 & CLionKT-36721
Deduce a fully qualified unique_name in klib manifest from something like group nameKT-37730
Native part of multiplatform build fails with "unresolved reference" errors if there is a local and external module with the same nameKT-38174
Kotlin/Native: Disable platform libraries generation at the user side by default
Tools. J2K
Fixes
KT-34965
Convert function reference copied from function callKT-35593
New J2K: method's names don't change between functions declared in Number.java and Number.ktKT-35897
J2K converts private enum constructors to internal constructors and produces NON_PRIVATE_CONSTRUCTOR_IN_ENUM errorKT-36088
J2K: StackOverflowError when trying to convert Java class with recursive type boundKT-36149
J2K: PsiInvalidElementAccessException: Element class com.intellij.psi.impl.source.tree.CompositeElement of type DOT_QUALIFIED_EXPRESSIONKT-36152
J2K: RuntimeException: Couldn't get containingKtFile for ktElementKT-36159
J2K: ClassCastException if constructor contains a super() call and class extends from Kotlin classKT-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 arrayKT-37052
new J2K: Java private function is converted toprivate open
top-level functionKT-37620
new J2K: IndexOutOfBoundsException (DefaultArgumentsConversion.applyToElement) with overloaded function with vararg parameterKT-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 jsr223KT-37558
Scripts: implicit receivers don't work correctly when using CompiledScriptJarsCacheKT-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 callKT-7304
Smart-casts and generic calls with multiple bounds on type parametersKT-7745
Support named arguments in their own position even if the result appears as mixedKT-7770
SAM for Kotlin classesKT-8834
Support function references with default values as other function typesKT-10930
Expected type isn't taken into account for delegated propertiesKT-11723
Support coercion to Unit in callable reference resolutionKT-14416
Support of @PolymorphicSignature in Kotlin compilerKT-16873
Support COERSION_TO_UNIT for suspend lambdasKT-17643
Inferring type of Pair based on known Map typeKT-19869
Support function references to functions with vararg if expected type ends with repeated vararg element typeKT-21178
Prohibit access of protected members inside public inline membersKT-21368
Improve type inferenceKT-25866
Iterable.forEach does not accept functions that return non-Unit valuesKT-26165
Support VarHandle in JVM codegenKT-27582
Allow contracts on final non-override membersKT-28298
Allow references to generic (reified) type parameters in contractsKT-31230
Refine rules for allowed Array-based class literals on different platforms: allowArray::class
everywhere, disallowArray<...>::class
on non-JVMKT-31244
Choose Java field during overload resolution with a pure Kotlin propertyKT-31734
Empty parameter list required on Annotations of function typesKT-33990
Type argument isn't checked during resolution partKT-33413
Allow 'break' and 'continue' in 'when' statement to point to innermost surrounding loopKT-34743
Support trailing comma in the compilerKT-34847
Lift restrictions fromkotlin.Result
Fixes
KT-2869
Incorrect resolve with 'unsafe call error' and genericsKT-3630
Extension property (generic function type) does not workKT-3668
Infer type parameters for extension 'get' in delegated propertyKT-3850
Receiver check fails when type parameter has another parameter as a boundKT-3884
Generic candidate with contradiction is preferred over matching global functionKT-4625
Poor error highlighting when assigning not matched type to index operatorKT-5449
Wrong resolve when functions differ only in the nullability of generic typeKT-5606
"Type mismatch" in Java constructor call with SAM lambda andvararg
parameterKT-6005
Type inference problem in sam constructorsKT-6591
Overloaded generic extension function call with null argument resolved incorrectlyKT-6812
Type inference fails when passing a null instead of a generic typeKT-7298
Bogus type inference error in generic method call translated from JavaKT-7301
Type inference error in Kotlin code translated from JavaKT-7333
Type inference fails with star-projections in code translated from JavaKT-7363
Kotlin code with star-projections translated from Java does not typecheckKT-7378
3-dimension array type inference failKT-7410
Call resolution error appears only after adding non-applicable overloadKT-7420
Type inference sometimes infers less specific type than in JavaKT-7758
Type of lambda can't be inferedKT-8218
Wrong 'equals' for generic types with platform type and error typeKT-8265
Non-typesafe program is compiled without errorsKT-8637
Useless diagnostics for type parameters with unsafe nullabilityKT-8966
Smart casts don't work with implicit receiver and extension on type parameter with boundsKT-10265
Type inference problem when using sealed class and interfacesKT-10364
Call completeCall on variable before invoke resolutionKT-10612
java.util.Comparator.comparing type inferenceKT-10628
Wrong type mismatch with star projection of inner class inside use-site projected typeKT-10662
Smartcast with not-null assertionKT-10681
Explicit type arguments not taken into account when determining applicable overloads of a generic functionKT-10755
Not "least" common super-type is selected for nested 'if' result in presence of multiple inheritanceKT-10929
Type inference based on receiver type doesn't work for delegated properties in some casesKT-10962
Wrong resolution when argument has unstable DataFlowValueKT-11108
RxJava failed platform type inferenceKT-11137
Java synthetic property does not function for a type with projectionKT-11144
UninferredParameterTypeConstructor exception during buildKT-11184
Type inference failed for combination of safe-call, elvis, HashSet and emptySetKT-11218
Type inference incorrectly infers nullable type for type parameterKT-11323
Type inference failed in call with lambda returning emptyListKT-11331
Unexpected "Type inference failed" in SAM-conversion to projected typeKT-11444
Type inference failsKT-11664
Disfunctional inference with nullable type parametersKT-11894
Type substitution bug related platform typesKT-11897
No error REIFIED_TYPE_FORBIDDEN_SUBSTITUTION on captured typeKT-11898
Type inference error related to captured typesKT-12036
Type inference failedKT-12038
non-null checks and inferenceKT-12190
Type inference for TreeMap type parameters from expected type doesn't work when passing comparator.KT-12684
A problem with reified type-parameters and smart-castsKT-12833
'it' does not work in typed containers of lambdasKT-13002
"Error type encountered: UninferredParameterTypeConstructor" with elvis and whenKT-13028
cast with star on on type with contravariant generic parameter makes the compiler crashKT-13339
Type inference failed for synthetic Java property call on implicit smart cast receiverKT-13398
"Type T is not a subtype of Any"KT-13683
Type inference incorporation error when passed null into not-null parameterKT-13721
Type inference fails when function arguments are involvedKT-13725
Type inference fails to infer type with array as a generic argumentKT-13800
Type inference fails when null passed as argument (related to common system)KT-13934
Callable reference to companion object member via class name is not resolvedKT-13964
Unknown descriptor on compiling invoke operator call with generic parameterKT-13965
Invoke operator called on extension property of generic type has incorrect parameter typeKT-13992
Incorrect TYPE_INFERENCE_UPPER_BOUND_VIOLATEDKT-14101
Type inference failed on nullKT-14174
Compiler can't infer type when it should be able toKT-14351
Internal error with uninferred types for compiling complicated when expressionKT-14460
Smartcast isn't considered as necessary in the last expression of lambdaKT-14463
Missing MEMBER_PROJECTED_OUT error after smartcast with invokeKT-14499
Type inference fails even if we specifyT
explicitlyKT-14725
kotlin generics makes agera's compiled repositories unusableKT-14803
Weird smart cast absence in lazy delegateKT-14972
Type inference failed: wrong common supertype for types with several subtypesKT-14980
Type inference for nullable type in if statementKT-15155
False "No cast needed" warning for conversion to star-projected typeKT-15185
Inference for coroutines not work in case where we have suspend function with new coroutine insideKT-15263
Kotlin can't infer the type of a multiple bounded methodKT-15389
Type inference for coroutines in 1.1-M04KT-15394
Support coercion to Unit for last statement for suspend lambdaKT-15396
Type inference for last statement in coroutineKT-15488
Type inference not working on generic function returning generic type in lambda resultKT-15648
Better use of overladed functions with nullablesKT-15922
TYPE_INFERENCE_CONFLICTING_SUBSTITUTION for function referenceKT-15923
Internal error: empty intersection for typesKT-16247
Overload resolution ambiguity with intersection types and method referencesKT-16249
Can't call generic method with overloaded method reference when non-generic overload existsKT-16421
Remove @ParameterName annotation from diagnostic messagesKT-16480
Wrong "Type mismatch" for variable as function callKT-16591
Type inferencing doesn't consider common base class of T of multiple Foo function parametersKT-16678
Overload resolution ambiguity on println()KT-16844
Recursive dependency] (DeferredType) error on code generation.KT-16869
Cannot infer type parameter S in fun <S, T : S?> f(x: S, g: (S) -> T): TKT-17018
"Rewrite at slice LEXICAL_SCOPE" for 'when' with function reference inside lambdaKT-17048
Compilation exception: error type encountered in some combination of when/elvis with multiple inheritanceKT-17340
Type inference failed on overloaded method reference with expected KFunctionKT-17386
Smart cast on LHS of callable reference doesn't work if expected type is nullableKT-17487
ReenteringLazyValueComputationException for interface with a subclass that has a property of interface typeKT-17552
Call completed not running for elvis as last expression in lambdaKT-17799
Smart cast doesn't work for callable reference (colon-colon operator)KT-17968
More type inference problems with Streams.collectKT-17995
No type mismatch with emptywhen
expression inside lambdaKT-18002
Issue with star projection for generic type with recursive upper boundKT-18014
Cannot use Comparator.comparingKT-18080
Type inference failed for generic method reference argumentKT-18192
Type inference fails for some nested generic type structuresKT-18207
Unexpected attempt to smart cast causes compile errorKT-18379
Type inference failed although explicit specifiedKT-18401
Type mismatch when inferring out type parameter (related to callable reference)KT-18481
ReenteringLazyValueComputationException for recursive const declaration without explicit typeKT-18541
Prohibit "tailrec" modifier on open functionsKT-18790
function take the parameterized type with multi-bounds can't workingKT-19139
Kotlin build error in Android Studio on << intent.putExtra(“string”, it.getString(“string”) >> inside "else if" blockKT-19751
Nested conditionals break type inference when multiple types are possible for the expressionKT-19880
An overload with nullable parameter is not resolved due to a smart cast attempt after assignmentKT-19884
type inference with type parameterKT-20226
Return type 'Any' inferred for lambda with early return with integer literal in one of possible return valuesKT-20656
Callable reference breaks smart cast for next statementKT-20734
Invalid "Smart-cast impossible" when there are applicable extension and semi-applicable memberKT-20817
Coroutine builder type inference does not take smart casts into account (confusing)KT-21060
ReenteringLazyValueComputationException during type inferenceKT-21396
if-else with a branch of type Nothing fails to infer receiver typeKT-21463
Compiler doesn't take into accout a type parameter upper bound if a corresponding type argument is in projectionKT-21607
Type inference fails with intermediate functionKT-21694
Type inference failed for ObservableListKT-22012
Kotlin type deduction does not handle Java's <? super T> constructsKT-22022
ReenteringLazyValueComputationException when having cyclic references to static variablesKT-22032
Multiple type parameter bounds & smart castsKT-22043
Report an error when comparing enum (==/!=/when) to any other incompatible type since 1.4KT-22070
Type inference issue with platform types and SAM conversionKT-22474
Type safety problem because of incorrect subtyping for intersection typesKT-22636
Anonymous function can be passed as a suspending one, failing at runtimeKT-22723
Inconsistent behavior of floating-point number comparisonsKT-22775
Type inference failed when yielding smartcasted not null value fromsequence
KT-22885
Broken type safety with function variables caused by wrong subtyping check that includes intersection typesKT-23141
Cannot resolve between two functions when only one of them accepts nullable parameterKT-23156
IDEA asking me to remove uninferable explicit type signatureKT-23391
Bogus type inference error with smart cast, synthetic property and star projectionKT-23475
Implicit invoke on property with generic functional return type resolves incorrectlyKT-23482
Incorrect frontend behaviour for not inferred type for generic property with function type as resultKT-23677
Incorrect error diagnostic for return types that coerced to 'Unit' inside lambdaKT-23748
Erroneous type mismatch when call with @exact annotation depends on non-fixed type variableKT-23755
Nested lambdas with nested types can cause false USELESS_CAST warningKT-23791
Explicit type argument leads to an error, while candidate is picked correctly without itKT-23992
Target prefixes for annotations on supertype list elements are not checkedKT-24143
Type-checking error for generic functionsKT-24217
Type inference for generic functions reference problem.KT-24237
Uninferred type parameter on variable with multiple smart casts in elvisKT-24317
Unnecessary non-null assertion inspection shownKT-24341
Compiler exception instead of error about "upper bound violated"KT-24355
Overload resolution ambiguity due to unstable smartcastKT-24458
Cannot solve “Conditional branch result is implicitly cast to Any” with ListKT-24493
Incorrect error about Array unsupportedKT-24886
Type inference failure in an if-else_if-elseKT-24918
type inference not good enough for return type with involved if statementKT-24920
Type inference failure when using RxJava composeKT-24993
Inference for buildSequence/yield doesn't work for labeled lambdasKT-25063
List of Arrays - wrong type inferred if nullable involvedKT-25268
Incorrect type inference (least upper bound of the types) in exhaustive when for NumberKT-25294
Reactors Mono map function with KotlinKT-25306
Make f(a = arrayOf(x)) equivalent to f(a = *arrayOf(x))KT-25342
Type inference: lazy with generic fails to inferKT-25434
Too eager smartcast cause type mismatchKT-25585
"Rewrite at slice LEXICAL_SCOPE" forif
expression with callable reference inside lambdaKT-25656
Short-hand array literal notation type inference fails in nested annotationsKT-25675
return when
leads to compiler errorKT-25721
Type inference does not work in nested try catchKT-25827
NullPointerException in setResultingSubstitutor with a generic base classKT-25841
Collection type is inferred as Collection if the values returned frommap
function have an intersection common typeKT-25942
Pass a parameter to generic function with several upper boundsKT-26157
Failed type inference forDelegates.observable
parameter with a nullable propertyKT-26264
No smart cast on implicit receiver extension function callKT-26638
Check for repeatablilty of annotations doesn't take into account annotations with use-site targetKT-26698
OnlyInputTypes doesn't work in presence of upper bound constraintKT-26704
Correct variable-as-function call fails to compile in case of function type dependent on variable typeKT-27440
Infer lambda parameter type before lambda analysis in common systemKT-27464
False negative type mismatch when a non-null assertion is used on a top-levelvar
mutable variableKT-27606
Incorrect type inference when common supertype of enum classes is involvedKT-27722
mapNotNull on List<Result> fails if T is not subtype of AnyKT-27781
ReenteringLazyValueComputationException for anonymous object property referring to itself in overridden methodKT-27799
Prohibit references to reified type parameters in annotation arguments in local classes / anonymous objectsKT-28083
Nothing-call smart cast of a variable that a lambda returns does not affect the lambda's return typeKT-28111
Type inference fails for return type of lambda with constrained genericKT-28242
Not-null assertion operator doesn't affect smartcast typesKT-28264
Resulting type of a safe call should produce type that is intersected with AnyKT-28305
"Error type encountered" with elvis operator, type argument and explicitAny
typeKT-28319
"resultingDescriptor shouldn't be null" for a star projection base classKT-28334
Smartcast doesn't work if original type is type with star projection and there was already another smartcastKT-28370
Var not-null smartcasts are wrong if reassignments are used inside catch section (in try-catch) or try section (in try-finally)KT-28424
Type annotations are not analyzed properly in several casesKT-28584
Complex condition fails smart castKT-28614
"Error type encountered: UninferredParameterTypeConstructor"KT-28726
Recursion in type inference causes ReenteringLazyValueComputationExceptionKT-28837
SAM conversion doesn't work for arguments of members imported from objectKT-28873
Function reference resolution ambiguity is not reportedKT-28999
Prohibit type parameters for anonymous objectsKT-28951
"Error type encountered" with elvis operator, type argument and explicitAny
typeKT-29014
Unclear diagnostic for conditional branches coercion with multiple root interfaces and no common superclassKT-29079
ByteArray.let(::String)
can not compile as the callable reference is resolved before the outer callKT-29258
Incorrect return type is used for analysis of an extension lambda (if its type is used as a generic parameter)KT-29330
NI: Multiple duplicate error messages in IDE popup with lambda argumentKT-29402
Missed INLINE_FROM_HIGHER_PLATFORM diagnostic if inline function called from Derived classKT-29515
type inference fails to infer T of KFunction0 for most typesKT-29712
Incorrect compiler warning, "No cast needed" for recursive type boundKT-29876
ReenteringLazyValueComputationException with usage of property inside lambda during assignment to that propertyKT-29911
Not-null smart cast fails inside inline lambda after safe call on generic variable with nullable upper boundKT-29943
Callable reference resolution ambiguity between a property and a function is reported incorrectly in function calls expecting KProperty1KT-29949
Cannot chose among overload as soon as nullable type is involvedKT-30151
Any instead of Number is inferred as common super type of Int and DoubleKT-30176
Compiler can't infer correct type argument which blocks overload resolutionKT-30240
Can't infer intersection type for a type variable with several boundsKT-30278
Retain star projections in typeOfKT-30394
Different behaviour in type inferences (bug in the old inference) when cast of variable of nullable type parameter to not-null is usedKT-30496
Wrong infix generic extension function is chosen fornull
receiverKT-30550
Suspend modifier on a functional type changes resolution of return typeKT-30892
IllegalStateException(UninferredParameterTypeConstructor) with return references to local function from if-else expressionKT-30947
No smart cast on accessing generic class member with upper-bounded type argumentKT-31102
Type mismatch in mixing lambda and callable referenceKT-31151
"IllegalStateException: Error type encountered" with elvis, when and inheritanceKT-31219
Type mismatch for delegated property depending on anonymous objectKT-31290
overload resolution ambiguity with Iterable.mapTo()KT-31352
JvmName can't eliminate platform declaration clash of annotated propertiesKT-31532
Type inference for complex last expression in lambdaKT-31540
Change initialization order of default values for tail recursive optimized functionsKT-31594
No SETTER_PROJECTED_OUT diagnostic on synthetic properties from JavaKT-31630
TYPE_INFERENCE_PARAMETER_CONSTRAINT_ERROR for generic function with callable reference argumentKT-31654
False unnecessary non-null assertion (!!) warning inside yield callKT-31679
NI: Unresolved reference with delegated property and anonymous objectKT-31739
Overload resolution ambiguity in generic function call with lambda arguments that take different parameter typesKT-31923
Outer finally block inserted before return instruction is not excluded from catch interval of inner try (without finally) blockKT-31968
New inference is using a more common system to infer types from nested elvis call than OIKT-31978
NI: changed precedence of elvis operator relative to equality operatorKT-32026
Infer return type of @PolymorphicSignature method to void if no expected type is givenKT-32087
"Remove explicit type arguments" inspection when function creates a lambda that calls a function with type argumentKT-32097
NI: NON_APPLICABLE_CALL_FOR_BUILDER_INFERENCE when using awaitClose in channelFlow builderKT-32098
Kotlin 1.3.40 type inference mismatch between the IDE and the compilerKT-32151
Return arguments of lambda are resolved in common system while in OI aren'tKT-32165
Cannot use 'Nothing' as reified type parameter,KT-32196
Inconsistency between compiler and inspection with mapNotNullKT-32203
NON_APPLICABLE_CALL_FOR_BUILDER_INFERENCE warning false-positiveKT-32249
New inference breaks generic property delegate resolutionKT-32250
New Type Inference fails for nullable fieldKT-32262
Type inference failed in presence of @JvmSuppressWildcardsKT-32267
NI: "Overload resolution ambiguity. All these functions match." with KFunctionKT-32284
False positive "Redundant lambda arrow" with extension function returning generic with lambda type argumentKT-32290
New Inference: old inference fails on nullable lambda from if-expressionKT-32306
False positiveRemove explicit type arguments
when using generic return argument from lambda for delegated propertyKT-32358
NI: Smart cast doesn't work with inline function after elvis operatorKT-32383
NI: listOf(…) infers to invalid type if different enums implementing the same interface are involvedKT-32397
OI can't infer types when there are different lower and upper bounds in common systemKT-32399
OI can't choose candidate with different lower and upper boundsKT-32425
No coercion to Unit by a return type of callable expression argumentKT-32431
Nothing inferred for upper bound in parametric classKT-32449
IDE fails to report error: Expected type mismatchKT-32462
NI: "AssertionError: No resolved call" with callable referenceKT-32497
Compiler Type inference fails when inferring type parameters ("Generics") - IDE inference worksKT-32507
IntelliJ Kotlin plugin not recognizing smart cast to non-nullable typeKT-32501
type inference should infer nullable type if non-nullable doesn't workKT-32527
Cast required for Sequence.map when mapping between disjoint typesKT-32548
OVERLOAD_RESOLUTION_AMBIGUITY with platform generic typesKT-32595
NI: Overload resolution ambiguity for member function with type parameter with upper bounds and lambda parameterKT-32598
Kotlin 1.3.41 type inference problemKT-32654
Non-applicable call for builder inference with coroutinesKT-32655
Kotlin compiler and IDEA plugin disagree on typeKT-32686
New type inference algorithm infers wrong type when return type ofwhen
expression has a type parameter, and it's not specified in all casesKT-32788
No smartcast for an implicit "this" in old inferenceKT-32792
Bug in new type inference algorithm for Android StudioKT-32800
Problem with inlined getValue in Delegates, IDEA does not detect problem, but code doesn't compileKT-32802
Odd behaviour with smart-casting in exception blockKT-32850
Invalid suggestion in Kotlin codeKT-32866
tests in Atrium do not compile with new type inferenceKT-33012
Proper capturing of star projections with recursive typesKT-33102
Fake overrides aren't created for propertiesKT-33152
Type inference fails when lambda with generic argument type is presentKT-33166
NI: TYPE_MISMATCH for specific case withwhen
expression and one branch throwing exceptionKT-33171
TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER with object convention invoke direct call on property delegationKT-33240
Generated overloads for @JvmOverloads on open methods should be finalKT-33545
NI: Error type encountered: NonFixed: TypeVariable(T) (StubType)KT-33988
Low priority candidates doesn't match when others failKT-34128
Internal compiler error ReenteringLazyValueComputationException in the absence of right parenthesisKT-34140
Function with contract doesn't smartcast return value in lambdaKT-34314
There is no an error diagnostic about type inference failed (impossible to infer type parameters) on callable referencesKT-34335
A lambda argument without a type specifier is inferred to Nothing, if it's passed to a function, declaration of which contains vararg (e.g. Any)KT-34501
if-expression infersAny
whenNumber?
is expectedKT-34708
Couldn't transform method node: emit$$forInline (try-catch in a Flow.map)KT-34729
NI: type mismatch error is missed for generic higher-order functionsKT-34830
Type inference fails when using an extension method with "identical JVM signature" as method referenceKT-34857
"Illegal resolved call to variable with invoke" with operator resolved to extension propertyinvoke
KT-34891
CompilationException: Failed to generate expression: KtLambdaExpression (Error type encountered)KT-34925
MPP, IDE: False positive warning NO_REFLECTION_IN_CLASS_PATH in common codeKT-35020
"Type checking has run into a recursive problem" for overloaded generic function implemented using expression body syntaxKT-35064
NI: The new inference has overload resolution ambiguity on passing a callable reference for extension functions (> 1 candidates)KT-35207
Incorrect generic signature in annotations when KClass is used as a generic parameterKT-35210
NI: OnlyInputTypes check fails for types with captured onesKT-35213
NI: overload resolution ambiguity for callable reference with defined LHSKT-35226
Forbid spread operator in signature-polymorphic callsKT-35306
Non-applicable call for builder inference
for nested builder functions which return generic types that are wrapped.KT-35337
IllegalStateException: Failed to generate expression: KtLambdaExpressionKT-35398
NI, IDE: Duplicate warning message JAVA_CLASS_ON_COMPANION in argument positionKT-35469
Change behavior of signature-polymorphic calls to methods with a single vararg parameter, to avoid wrapping the argument into another arrayKT-35487
Type safety problem because of lack of captured conversion against nullable type argumentKT-35494
NI: Multiple duplicate error diagnostics (in IDE popup) with NULL_FOR_NONNULL_TYPEKT-35514
Type inference failure without
type and if-else inside lambdaKT-35517
TYPE_MISMATCH error duplication for not Boolean condition in if-expressionKT-35535
Illegal callable reference receiver allowed in new inferenceKT-35578
Diagnostics are sometimes duplicatedKT-35602
NI doesn't approximate star projections properly for self typesKT-35658
NI: Common super type between Inv<A!>, Inv<A?> and Inv is Inv<out A?>, not Inv<A!> (as old inference)KT-35668
NI: the lack of fixing to Nothing problem (one of the bugs: the lack of smartcast through cast of Nothing? to Nothing after elvis)KT-35679
Type safety problem because several equal type variables are instantiated with a different typesKT-35684
NI: "IllegalStateException: Expected some types" from builder-inference about intersecting empty types on trivial codeKT-35814
Inference fails to infer common upper type for java typesKT-35834
Do not declare checked exceptions in JVM bytecode when using delegation to Kotlin interfacesKT-35920
NI allows callable references prohibited in old inferenceKT-35943
NI: IllegalStateException: No error about uninferred type parameterKT-35945
Using Polymorphism and Type Inference the compiler fails having a Type with Type with TypeKT-35992
Wrong overload resolution with explicit type arguments if KFunction and type parameter once nullable and once non-nullableKT-36001
"IllegalStateException: Error type encountered" with elvis in generic functionKT-36002
KotlinFrontEndException: Exception while analyzing expressionKT-36065
Type inference failed for generic function invoked on implicitly nullable variable created from JavaKT-36066
Type inference problem in compilerKT-36101
False positive IMPLICIT_NOTHING_AS_TYPE_PARAMETER with suspend lambdasKT-36146
Drop support of language version 1.0/1.1, deprecate language version 1.2KT-36192
Redundant smart cast for overloaded functionsKT-36202
NI: false positive "NON_APPLICABLE_CALL_FOR_BUILDER_INFERENCE" with elvis operator in lambdaKT-36220
NI: false positive NON_APPLICABLE_CALL_FOR_BUILDER_INFERENCE if one use cannot resolveKT-36221
NI: UnsupportedOperationException: "no descriptor for type constructor" with vararg parameter whenset
orget
methods of element passed as function referenceKT-36264
NI: unstable smart cast changes results of call resolutionKT-36279
OI: Type inference fails when omitting explicit name of the lambda parameterKT-36298
Failure to resolve return type of extension property on function literalKT-36317
TYPE_MISMATCH diagnostic error duplication for not Boolean condition in do-while-loop-statementKT-36338
Forbid IR backend usage with unsupported language / API versionKT-36371
Incorrect null check with NI and builder inference in generic contextKT-36644
Stop discrimination of prerelease compiler version in Kotlin pluginKT-36745
NI: "Expected some types" with unresolved class referenceKT-36776
Treat special constructions (if, when, try) as a usual calls when there is expected typeKT-36818
NI: the lack of smartcast from Nothing returning "when" branchKT-37123
Cycling lambda signature errors in Observable.combineLatestKT-37146
Type inference can't resolve plus operatorKT-37189
Wrong type inferred with class with two types as argumentKT-37295
NI: Passing function with wrong returning type by reference is not shown as errorKT-37345
Wrong non-null type assertion when using Sequence and yieldKT-37429
Type inference failed: Not enough information to infer parameter with java streamsKT-37480
"None of the following candidates can be called" when compiling but no error in IDEA
IDE
KT-33573
IDE runs platform-specific checkers on common code even if the project doesn't target the corresponding platformKT-35823
IDE settings: deprecated values of language / API version look like regular onesKT-35871
NPE in LightMethodBuilderKT-36034
Kotlin 1.3.70 creates filekotlinCodeInsightSettings.xml
with user-level settings under .ideaKT-36084
"Join lines" should remove trailing commaKT-36460
IDE highlighting: Undo on inspection breaks analysis inside top-level property initializerKT-36712
Use new annotation highlighting APIKT-36917
Caret has incorrect position after pressing enter on line with named argument
IDE. Code Style, Formatting
KT-36387
Formatter: "Chained Function Calls" formats property chainsKT-36393
Incorrect trailing comma insertion for boolean operator expressionKT-36466
Formatter: "Chained Function Calls" with "Wrap first call" wrap single method call
IDE. Completion
KT-16531
Error type displayed in completion for the result of buildSequenceKT-32178
Autocompletion of 'suspend' should not add the 'fun' keyword when writing a function typeKT-34582
Remove kotlin.coroutines.experimental from autocompletionKT-35258
Completion problems with enabledMixedNamedArgumentsInTheirOwnPosition
feature
IDE. Debugger
KT-12016
Step over inside inline function lambda argument steps into inline function bodyKT-14296
Can't step over inlined functions of iteratorKT-14869
Debugger: always steps into inlined lambda after returning from functionKT-15652
Step over inline function call stops at Thread.dispatchUncaughtException() in case of exceptionsKT-34905
Debugger: "Step over" steps into inline function body if lambda call splitted on several linesKT-35354
ClassCastException in evaluate window
IDE. Gradle. Script
KT-36703
.gradle.kts: Change text for out of project scripts
IDE. Hints
KT-37537
IDE is missing or swallowing keystrokes when hint popups are displayed
IDE. Hints. Parameter Info
KT-14523
Weird parameter info tooltip for map.getValue type arguments
IDE. Inspections and Intentions
New Features
KT-33384
Intention to switch between single-line/multi-line lambdaKT-34690
Support intentionConvert lambda to reference
for qualified referencesKT-35639
False negative inspection "redundant internal modifier" inside private classKT-36256
Implement migration for WarningOnMainUnusedParameterKT-36257
Implement migration for ProhibitRepeatedUseSiteTargetAnnotationsKT-36258
Implement migration for ProhibitUseSiteTargetAnnotationsOnSuperTypesKT-36260
Implement migration for ProhibitJvmOverloadsOnConstructorsOfAnnotationClassesKT-36261
Implement migration for ProhibitTypeParametersForLocalVariablesKT-36262
Implement migration for RestrictReturnStatementTarget
Fixes
KT-14001
"Convert lambda to reference" results in failed type inferenceKT-14781
Import of aliased type is inserted when deprecation replacement contains typealiasKT-16907
"Convert to lambda reference" intention is erroneously shown for suspending lambda parameters, producing bad codeKT-24869
False positive inspection "Redundant 'suspend' modifier"KT-24987
Implicit (unsafe) cast from dynamic to DONT_CAREKT-27511
"Remove explicit type arguments" suggestion creates incorrect codeKT-28415
False positive inspection "Remove explicit type arguments" with a callable referenceKT-30831
False positiveRemove explicit type arguments
with generic type constructor with init blockKT-31050
False positive "Boolean literal argument without parameter name" inspection using expect classKT-31559
Type inference failed: Not enough information to infer parameter KKT-32093
NI: IDE suggests to use property access syntax instead of getter methodKT-33098
False positive "Remove explicit type arguments" with "Enable NI for IDE" and Java generic class constructor invocation with nullable argumentKT-33685
ReplaceWith does not add type parameter for function taking generic lambda with receiverKT-34511
kotlin.KotlinNullPointerException after using intention Replace Java Map.forEach with Kotlin's forEach for Map with Pairs as keysKT-34686
False positive "Constructor parameter is never used as a property" if property is used as a referenceKT-35451
Type inference fails after applying false positive inspection "Remove explicit type arguments "KT-35475
Applying intention "Redundant curly braces in string template" for label references change semanticKT-35528
IntentionReplace 'when' with 'if'
produces wrong code if expression subject is a variable declarationKT-35588
Applying "Lift assignment out of 'if'" for if statement that has lambda plus assignment and 'return' leads to type mismatchKT-35604
Too long quickfix message for "modifier 'open' is not applicable to 'companion object'"KT-35648
False negative intention "Remove argument name" on named positional argumentsKT-36160
False positive "Constructor has non-null self reference parameter" with vararg parameter of classKT-36171
intention "Replace 'get' call with indexing operator" works incorrectly with spread operatorKT-36255
Implement migration tool for 1.4KT-36357
"Lift assignment out of 'if'" breaks code for oneliner functionKT-36360
OI: False positive "remove explicit type arguments" for SequenceScope leads to compiler failure with "Type inference failed"KT-36369
"To raw string literal" intention is not available if string content starts with newline symbol \n
IDE. Multiplatform
KT-36978
Infinite "org.jetbrains.kotlin.idea.caches.resolve.KotlinIdeaResolutionException: Kotlin resolution encountered a problem while analyzing KtFile" exceptions in hierarchical multiplatform projects
IDE. Navigation
KT-30628
Navigation from Java sources to calls on Kotlin function annotated with @JvmOverloads that have optional arguments omitted leads to decompiled code
IDE. Refactorings
New Features
KT-26999
Inspection for unused main parameter in Kotlin 1.3KT-33339
Refactor / Move is disabled for Kotlin class selected together with Kotlin file
Fixes
KT-22131
"Extract method" refactoring treats smart casted variables as non-localKT-24615
"Extract property" generates useless extension propertyKT-26047
Refactor -> Rename: Overridden method renaming in generic class doesn't rename base methodKT-26248
"Refactor -> Inline variable" breaks callable referencesKT-31401
Refactor / Inlining function reference in Java method with Runnable argument produces compile errorKT-33709
Inline variable: NONE_APPLICABLE with overloaded generic Java method with SAM conversionKT-34190
Inline Function: False positive error "not at the end of the body" with anonymous objectKT-35235
Unable to move multiple class files to a different packageKT-35463
ClassCastException during moving .kt file with one single class to the other folder in Android StudioKT-36312
Refactor Move refactoring to get it ready for MPP-related fixes
IDE. Run Configurations
KT-34503
"Nothing here" is shown as a drop-down list for "Run test" gutter icon for a multiplatform test with expect/actual parts in platform-agnostic codeKT-36093
Running Gradle java tests are broken for Gradle older than 4.0 (Could not set unknown property 'testClassesDirs' for task ':nonJvmTestIdeSupport')
JavaScript
KT-23284
Reified type arguments aren't substituted when invoking inline val value
Libraries
KT-26654
Remove deprecated 'mod' operatorsKT-27856
Add contracts to Timing.kt lambdasKT-28356
Fail fast in Regex.findAll on an invalid startIndexKT-29748
Declare kotlin.reflect.KType in kotlin-stdlib-commonKT-30360
Deprecate conversions of floating point types to integral types lesser than IntKT-32855
KTypeParameter is available in common code, but not available in NativeKT-35216
<T : AutoCloseable?, R> T.use and <T : Closeable?, R> T.use should have contractsKT-36082
JS Regex.find does not throw IndexOutOfBoundsException on invalid start indexKT-36083
Extract kotlin.coroutines.experimental.* packages to a separate compatibility artifact
Reflection
KT-30071
Implement KTypeProjection.toStringKT-35991
Embed Proguard/R8 rules in kotlin-reflect artifact jar
Tools. CLI
KT-28475
java.sql module not available in kotlinc scripts on Java 9+ due to use of Bootstrap Classloader
Tools. Gradle. JS
KT-34989
NodeJs is not re-downloaded if the node binary gets accidentally deletedKT-35465
Gradle, JS: Gradle tooling for IR compilerKT-36472
Kotlin/JS Gradle plugin iterates over all Gradle tasks, triggering their lazy configurationKT-36488
Gradle, JS, IR: Publishing from JS plugin
Tools. Gradle. Multiplatform
KT-37264
In intermediate common source sets, internals are not visible from their dependsOn source sets during Gradle build
Tools. Gradle. Native
KT-36804
In a project with Kotlin/Native targets and kotlinx.serialization, IDE import fails: Could not create task '...'. / Cannot change dependencies of configuration after it has been resolved.
Tools. J2K
KT-20120
J2K: Java 9forRemoval
andsince
methods ofDeprecated
are not processed
Tools. Scripts
KT-35414
Switch for-Xexpression
to-expression
/-e
cli argument syntax for JVM cli compiler in 1.4
Checksums
File | Sha256 |
---|---|
kotlin-compiler-1.4.0.zip | 590391d13b3c65ba52cba470f56efd5b14e2b1f5b9459f63aa12eb38ef52f161 |
kotlin-native-linux-1.4.tar.gz | ca4981eab287315bb53aee153cee5e703adf651dd3f0f0229d12124f65ce8d56 |
kotlin-native-macos-1.4.tar.gz | 476f920631b0ccb4b8e25456ef49356fb33d6e3960e9f2ec8def0aaa23284168 |
kotlin-native-windows-1.4.zip | 151d6ca6e21f56be79b9dba6513d4c93a3388b648f25926cf0d291ff4fbfc4ae |