Kotlin 1.4-M3
Pre-release
Pre-release
Contents
The release contents the JVM version of the Kotlin compiler, and also the Kotlin/Native compiler for the supported platforms: Linux, macOS and Windows.
Changelog
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