Releases: JetBrains/kotlin
Releases · JetBrains/kotlin
Kotlin 1.5.20
Changelog
Compiler
New Features
KT-43262
No error for Java generic class @NotNull type parameter used in Kotlin with nullable type argument
KT-44373
FIR: support error / warning suppression
KT-45189
Support nullability annotations at module level
KT-45284
Emit warnings based on jspecify annotations
KT-45525
Allow to omit JvmInline annotation for expect value classes
KT-46545
Emit annotations on function type parameters into bytecode for -jvm-target 1.8 and above
Performance Improvements
KT-36646
Don't box primitive values in equality comparison with objects in JVM_IR
Fixes
KT-8325
Unresolved annotation should be an error
KT-19455
Type annotation unresolved on a type parameter of a supertype in anonymous object expression
KT-24643
Prohibit using a type parameter declared for an extension property inside delegate
KT-25876
Annotations on return types and supertypes are not analyzed
KT-28449
Annotation target is not analyzed in several cases for type annotations
KT-36770
Prohibit unsafe calls with expected @NotNull T and given Kotlin generic parameter with nullable bound
KT-36880
K/N IR: Reference to expect property in actual declaration is not remapped
KT-38325
IllegalStateException: No parameter with index 0-0 when iterating Scala 2.12.11 List
KT-38342
FIR: Consider renaming diagnostic from AMBIGUITY to OVERLOAD_RESOLUTION_AMBIGUITY
KT-38476
[FIR] Forgotten type approximation
KT-38540
Kotlin/Native Set.contains fails with specific enum setup
KT-40425
IrGenerationExtension. Support simple reporting to compiler output (for development/debug)
KT-41620
ClassCastException: Class cannot be cast to java.lang.Void
KT-41679
NI: TYPE_MISMATCH wrong type inference of collection with type Any and integer literal
KT-41818
NI: False positive IMPLICIT_NOTHING_TYPE_ARGUMENT_IN_RETURN_POSITION leads to NothingValueException on delegated properties
KT-42239
IR: Report compilation error instead of throwing an exception (effectively crash compiler) when some declaration wasn't found while deserialization
KT-42631
ArrayIndexOutOfBoundsException was thrown during IR lowering
KT-43258
NI: False positive "Suspend function 'invoke' should be called only from a coroutine or another suspend function" when calling suspend operator fun on object property from last expression of a crossinlined suspend lambda
KT-44036
Enum initialization order
KT-44511
FIR DFA: smartcast after if (nullable ?: boolean)
KT-44554
RAW FIR: NPE in RawFirBuilder
KT-44682
raw FIR: incorrect source for qualified access
KT-44695
*_TYPE_MISMATCH_ON_OVERRIDE checkers do not work for anonymous objects
KT-44699
FIR: incorrect lambda return type (led to a false alarm: PROPERTY_TYPE_MISMATCH_ON_OVERRIDE)
KT-44802
FIR bootstrap: trying to access package private class
KT-44813
FIR bootstrap: various errors in collection-like classes
KT-44814
FIR bootstrap: incorrect cast in when branch
KT-44942
[FIR] ClassCastException in boostrap tests
KT-44995
FIR: false positive for ANNOTATION_ARGUMENT_MUST_BE_CONST
KT-45010
FIR: lambda arguments of inapplicable call is not resolved
KT-45048
FIR bootstrap: VerifyError on KtUltraLightClass
KT-45052
FIR bootstrap: inapplicable candidate in GenerateSpecTests.kt
KT-45121
FIR IDE: redundant vararg parameter type transformation
KT-45136
Native: dividing Int.MIN_VALUE by -1 crashes or hangs
KT-45236
JVM / IR: "IllegalStateException: Symbol with IrTypeParameterSymbolImpl is unbound" caused by contracts and sealed class
KT-45308
Psi2ir: "AssertionError: TypeAliasDescriptor expected" caused by using typealias from one module as a type in another module without a transitive dependency
KT-45316
[FIR] Ambiguity between two implicit invokes with receiver
KT-45344
FIR: Wrong inferred type for nullable type parameter
KT-45385
FIR: false positive MUST_BE_INITIALIZED_OR_BE_ABSTRACT after rethrow
KT-45475
[FIR] No smartcast after throw in if inside try block
KT-45508
False negative ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED on a fake override with an abstract super class member
KT-45578
REPL: Unresolved imports are cached for the subsequent compilations
KT-45685
JVM IR: capturing a variable into crossinline suspend lambda makes the function inside inline function no longer unbox Result
KT-45584
[FIR] Fix overriding property and java function in java class
KT-45697
JVM IR: ISE "Function has no body" on getter of private field in a class present both in sources and dependencies
KT-45842
Compiler doesn't allow a shared class to inherit a platform-specific sealed class
KT-45848
False negative [SEALED_INHERITOR_IN_DIFFERENT_MODULE] error in compiler for a platform-specific inheritor of a shared sealed class
KT-45931
There is no warning based on nullability java annotation
KT-45998
JVM IR: AE when an accessor to a protected companion object member is being generated in child class
KT-46048
Enum entries init order in companion object
KT-46074
FIR: private-in-file fun interface is considered invisible in this file
KT-46173
No error reporting on annotations on target type of as
expression in return
KT-46235
JVM IR: Stack overflow error on large expressions
KT-46270
[FIR] Support @PublishedAPI
in inline checker
KT-46539
Generate annotations on type parameters bounds in bytecode
KT-46578
JVM IR: IllegalAccessError accessing property delegated to java super class protected field reference
KT-46597
JVM IR: AssertionError: SyntheticAccessorLowering should not attempt to modify other files - crossinline accessor
KT-46601
JVM / IR: IllegalStateException: "Can't find method 'invokeinvoke`" when default lambda takes inline class parameters
KT-46670
StackOverflowError on inheritance from raw type where class has protobuf-like recursive generics
KT-46715
JVM / IR: "AssertionError: Unbound symbols not allowed IrConstructorSymbolImpl" with enum classes with the same name in test and src folders
KT-46759
JVM IR: CCE in LateinitUsageLowering on @JvmStatic lateinit property in object
KT-46777
[Native] [IR] Support suspend function as super type
KT-46802
JVM / IR: "UnsupportedOperationException: Unknown structure of ADAPTER_F...
Read more
Kotlin 1.5.20-RC
Changelog
Backend. IR
KT-42239
IR: Report compilation error instead of throwing an exception (effectively crash compiler) when some declaration wasn't found while deserialization
Compiler
New Features
KT-44373
FIR: support error / warning suppression
Fixes
KT-38342
FIR: Consider renaming diagnostic from AMBIGUITY to OVERLOAD_RESOLUTION_AMBIGUITY
KT-38476
[FIR] Forgotten type approximation
KT-44682
raw FIR: incorrect source for qualified access
KT-44813
FIR bootstrap: various errors in collection-like classes
KT-45508
False negative ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED on a fake override with an abstract super class member
KT-45578
REPL: Unresolved imports are cached for the subsequent compilations
KT-45685
JVM IR: capturing a variable into crossinline suspend lambda makes the function inside inline function no longer unbox Result
KT-46235
JVM IR: Stack overflow error on large expressions
KT-46578
JVM IR: IllegalAccessError accessing property delegated to java super class protected field reference
KT-46597
JVM IR: AssertionError: SyntheticAccessorLowering should not attempt to modify other files - crossinline accessor
KT-46601
JVM / IR: IllegalStateException: "Can't find method 'invokeinvoke`" when default lambda takes inline class parameters
KT-46759
JVM IR: CCE in LateinitUsageLowering on @JvmStatic lateinit property in object
KT-46777
[Native] [IR] Support suspend function as super type
KT-46802
JVM / IR: "UnsupportedOperationException: Unknown structure of ADAPTER_FOR_CALLABLE_REFERENCE" caused by function reference on @JvmStatic function with unused default parameters
KT-46813
JVM / IR: "ClassCastException: Integer cannot be cast to class Result" with Flow and fold
method
KT-46822
JVM IR: StackOverflowError on compiling a large data class
KT-46837
Backend Internal error: Exception during IR lowering: assert at IrOverridingUtilKt.buildFakeOverrideMember
KT-46921
JVM / IR: "IndexOutOfBoundsException: Cannot pop operand off an empty stack" caused by crossinline parameter and label return
Docs & Examples
KT-33783
Document when a range created with rangeTo is empty
IDE
KT-44825
Can't open Kotlin compiler settings in newly created project
IDE. Gradle Integration
KT-45277
Wrong jvm target in gradle module in IDEA
IDE. Native
KT-39320
[Commonizer] Reduce memory consumption
JavaScript
KT-44394
KJS / IR: null
companion object for existed stdlib interfaces NodeFilter
and SVGUnitTypes
KT-45361
KJS / IR: IrConstructorCall
representing annotation always returns Unit
KT-46859
Exception during IR lowering: NullPointerException was thrown at: optimizations.FoldConstantLowering.tryFoldingUnaryOps
Libraries
KT-46002
Support all Unicode digit chars in digitToInt (JS and Native)
KT-46184
Equivalize isLowerCase and isUpperCase behavior in all platforms
Middle-end. IR
KT-40425
IrGenerationExtension. Support simple reporting to compiler output (for development/debug)
KT-45308
Psi2ir: "AssertionError: TypeAliasDescriptor expected" caused by using typealias from one module as a type in another module without a transitive dependency
Native. ObjC Export
KT-38600
Kotlin MP iOS Target doesn't contain kdoc comments
Reflection
KT-10838
Provide sensible toString() for property accessors in reflection
Tools. CLI
KT-14772
ISE (FNFE "Not a directory") on compilation with destination argument clashing with an existing file which is not a directory
KT-18184
CompileEnvironmentException: Invalid jar path on "-d" with .jar in non-existing directory
KT-40977
Report a readable diagnostic on empty -J argument in CLI
Tools. Compiler Plugins
KT-45538
Serialization, JVM IR: "AssertionError: No such type argument slot in IrConstructorCallImpl" with inner classes
KT-46469
Kotlin Lombok: accessors with AccessLevel.MODULE
fail to resolve
KT-46529
Kotlin Lombok: with @Accessors
without explicit prefix
the prefix from lombok.config is not taken into account
KT-46531
Kotlin Lombok: lombok.getter.noIsPrefix
is processed depending on character case
Tools. Gradle
KT-24533
Kapt should not run when annotation processors are not configured
KT-46401
Deprecate 'kotlin.parallel.tasks.in.project' build property
KT-46820
Gradle: kotlinc (1.5.0) race condition causes a NullPointerException
Tools. Gradle. JS
KT-46976
KJS: Broken support for dynamically created webpack.config.d
Tools. Gradle. Multiplatform
KT-46394
Multiplatform: Gradle 7 support
KT-46517
Add kotlin-project-model as api dependency to kotlin-gradle-plugin-api
Tools. Gradle. Native
KT-46680
Register concrete "embedAndSign" tasks instead umbrella
KT-46892
Kotlin Multiplatform Gradle Plugin: EmbedAndSign task always contains a default framework name
Tools. kapt
KT-31146
kapt: executableElement.getAnnotation(JvmOverloads::class.java) returns null
KT-35167
Kapt Gradle plugin doesn't handle --module-path javac argument
KT-41581
Kapt doesn't have line breaks between warnings
Checksums
File |
Sha256 |
kotlin-compiler-1.5.20-RC.zip |
3537d9e9c57f4afc4e8359f695da98f631319464ba1330c70b1b4aca5d30b84e |
kotlin-native-linux-1.5.20-RC.tar.gz |
d84ea3f3187aaeb21cceb5402cc74951a7a737799ce68a701f58b76e5ef534a0 |
kotlin-native-macos-1.5.20-RC.tar.gz |
b97b9cadb3791905dc15c090f3981dcb8a6eb4d31cf3721763070e12009d4b8e |
kotlin-native-windows-1.5.20-RC.zip |
c4ba183f211652881434ce4b41bde87b626d319134f5163bb8c295c186f3e1d5 |
Kotlin 1.5.20-M1
Changelog
Compiler
New Features
KT-45189
Support nullability annotations at module level
KT-45525
Allow to omit JvmInline annotation for expect value classes
KT-46545
Emit annotations on function type parameters into bytecode for -jvm-target 1.8 and above
Performance Improvements
KT-36646
Don't box primitive values in equality comparison with objects in JVM_IR
Fixes
KT-8325
Unresolved annotation should be an error
KT-19455
Type annotation unresolved on a type parameter of a supertype in anonymous object expression
KT-24643
Prohibit using a type parameter declared for an extension property inside delegate
KT-25876
Annotations on return types and supertypes are not analyzed
KT-28449
Annotation target is not analyzed in several cases for type annotations
KT-36770
Prohibit unsafe calls with expected @NotNull T and given Kotlin generic parameter with nullable bound
KT-38325
IllegalStateException: No parameter with index 0-0 when iterating Scala 2.12.11 List
KT-38540
Kotlin/Native Set.contains fails with specific enum setup
KT-41620
ClassCastException: Class cannot be cast to java.lang.Void
KT-41679
NI: TYPE_MISMATCH wrong type inference of collection with type Any and integer literal
KT-41818
NI: False positive IMPLICIT_NOTHING_TYPE_ARGUMENT_IN_RETURN_POSITION leads to NothingValueException on delegated properties
KT-42631
ArrayIndexOutOfBoundsException was thrown during IR lowering
KT-43258
NI: False positive "Suspend function 'invoke' should be called only from a coroutine or another suspend function" when calling suspend operator fun on object property from last expression of a crossinlined suspend lambda
KT-44036
Enum initialization order
KT-44511
FIR DFA: smartcast after if (nullable ?: boolean)
KT-44554
RAW FIR: NPE in RawFirBuilder
KT-44695
*_TYPE_MISMATCH_ON_OVERRIDE checkers do not work for anonymous objects
KT-44699
FIR: incorrect lambda return type (led to a false alarm: PROPERTY_TYPE_MISMATCH_ON_OVERRIDE)
KT-44802
FIR bootstrap: trying to access package private class
KT-44814
FIR bootstrap: incorrect cast in when branch
KT-44942
[FIR] ClassCastException in boostrap tests
KT-44995
FIR: false positive for ANNOTATION_ARGUMENT_MUST_BE_CONST
KT-45010
FIR: lambda arguments of inapplicable call is not resolved
KT-45048
FIR bootstrap: VerifyError on KtUltraLightClass
KT-45052
FIR bootstrap: inapplicable candidate in GenerateSpecTests.kt
KT-45121
FIR IDE: redundant vararg parameter type transformation
KT-45136
Native: dividing Int.MIN_VALUE by -1 crashes or hangs
KT-45316
[FIR] Ambiguity between two implicit invokes with receiver
KT-45344
FIR: Wrong inferred type for nullable type parameter
KT-45475
[FIR] No smartcast after throw in if inside try block
KT-45584
[FIR] Fix overriding property and java function in java class
KT-45697
JVM IR: ISE "Function has no body" on getter of private field in a class present both in sources and dependencies
KT-45842
Compiler doesn't allow a shared class to inherit a platform-specific sealed class
KT-45848
False negative [SEALED_INHERITOR_IN_DIFFERENT_MODULE] error in compiler for a platform-specific inheritor of a shared sealed class
KT-46048
Enum entries init order in companion object
KT-46074
FIR: private-in-file fun interface is considered invisible in this file
KT-46173
No error reporting on annotations on target type of as
expression in return
KT-46270
[FIR] Support @PublishedAPI
in inline checker
KT-46539
Generate annotations on type parameters bounds in bytecode
KT-46670
StackOverflowError on inheritance from raw type where class has protobuf-like recursive generics
KT-46715
JVM / IR: "AssertionError: Unbound symbols not allowed IrConstructorSymbolImpl" with enum classes with the same name in test and src folders
IDE
KT-44638
clone()
call is unresolved in JVM module of a multiplatform project
KT-45629
[ULC] KtUltraLightFieldForSourceDeclaration.nameIdentifier returns null
KT-45908
Reproduciable 'org.jetbrains.kotlin.idea.caches.resolve.KotlinIdeaResolutionException: Kotlin resolution encountered a problem while analyzing KtNameReferenceExpression'
IDE. FIR
KT-45175
FIR IDE: Exception with local property in init
block
KT-45199
FIR IDE: Error while collecting diagnostic on stale element after replacing element in quickfix
KT-45312
FIR IDE: FIR plugin throws exception on synthetic function
IDE. Gradle Integration
KT-34401
KotlinGradleModelBuilder builds models for non-kotlin modules and always trigger full task configuration.
KT-46488
Import of a multiplatform project with MPP module depending on Kotlin/JVM one fails
IDE. Inspections and Intentions
KT-45075
Inspection: Redundant creation of Json format
KT-45347
Sealed interfaces: quickfix to move to package/module of sealed class/interface should not be shown in case of read-only declaration
KT-45348
Sealed interfaces: show error for usage of sealed class/interface from a library in Java source code
KT-46063
In multiplatform code, suggest to generate remaining when
branches at least for shared sealed classes
IDE. Refactorings
KT-44431
Quickfix to move class/interface to proper location: it is allowed to choose test source in JPS project while compiler does not allow it
JavaScript
KT-40235
KJS: IR. Broken support for external interface companion
KT-40689
KJS / IR: strange and slow code for kotlin.math.max and kotlin.math.min for Double
KT-44138
KJS / IR: Constant folding works incorrectly with unsigned arithmetics
KT-44950
KJS / IR: "IllegalStateException: Can't find name for declaration" in case of extending export declared class without @JsExport annotation
KT-45057
KJS / IR: "ClassCastException" when using js
function in init block
KT-45655
KJS: "REINTERPRET_CAST" is not copyable
KT-45866
Default parameter with generic in expect-actual declarations
Libraries
KT-43701
Stdlib: Expand KDoc of inc() and dec() for operators
Middle-end. IR
KT-36880
K/N IR: Reference to expect property in actual declaration is not remapped
KT-45236
JVM / IR: "IllegalStateException: Symbol with IrTypeParameterSymbolImpl is unbound" caused by contracts and sealed class
Native
KT-33175
IR: String constants with incorrect surrogate pairs aren't preserved du...
Read more
Kotlin 1.5.10
Changelog
Compiler
Fixes
KT-41078
Incorrect type substitution in contracts with type parameters
KT-44770
JVM / IR: "IllegalArgumentException: Unrecognized Type: [null]" Jackson doesn't recognize type
KT-45084
JVM IR: "NoSuchElementException: Sequence contains no element matching the predicate" when inline class is passed to lambda with >22 parameters
KT-45779
JVM / IR: java.lang.NoSuchMethodError: 'int java.lang.Integer.plus(int)' caused by function reference
KT-45941
JVM IR: local functions use generic type parameters of the outer class in the bytecode, which breaks Bytebuddy and MockK
KT-46149
Generate synthetic classes for SAM adapters with erased instead of generic supertype
KT-46189
JVM IR: tailrec function with capturing lambda in default parameter value leads to NoSuchMethodError at runtime
KT-46214
JVM / IR: "IllegalStateException: No mapping for symbol: VALUE_PARAMETER INSTANCE_RECEIVER" on a suspend function in an inner class
KT-46238
JVM IR: BootstrapMethodError in JDK 11+ on intersection type passed in arguments of SAM adapter where SAM interface's type parameter has a non-trivial upper bound
KT-46259
JVM IR: local function for adapted function reference is not declared as ACC_SYNTHETIC
KT-46284
JVM IR: "Unbound private symbol IrClassSymbol" on class reference to script class
KT-46402
IllegalAccessError: "CapturedLambdaInterpreter (in unnamed module @0x71b06418) cannot access class jdk.internal.org.objectweb.asm.Type" caused by inline function with a suspend parameter in Maven project
KT-46408
JVM IR: BootstrapMethodError due to missing bridge for subclass of generic Java interface
KT-46426
JVM IR: Corrupted .class file when passing Array constructor reference as (inline) lambda
KT-46455
OOM on parsing invalid code with string interpolation
KT-46503
JVM IR: "AssertionError: Unexpected variance in super type argument: out @1"
KT-46505
JVM IR: NullPointerException caused by a callable reference with nullable inline value class parameter
KT-46512
JVM / IR: NoSuchMethodError on SAM conversion of a function reference
KT-46515
IndexOutOfBoundsException: "Empty list doesn't contain element at index 0." on bad variable name in 1.5.0
KT-46516
JVM IR: "AnalyzerException: Expected I, but found R" on subclassing AbstractMutableList
KT-46524
Cannot use unsigned literals with api-version < 1.5 even with opt-in
KT-46537
JVM / IR: "IllegalStateException: No noarg super constructor for CLASS" caused by "No-arg" plugin with annotation on child class
KT-46540
JVM / IR: AnalyzerException: Expected an object reference, but found J caused by java.function.Supplier
KT-46554
JVM IR: "IllegalStateException: No mapping for symbol: VAR IR_TEMPORARY_VARIABLE" with value class constructor delegation call
KT-46555
JVM IR: IllegalAccessError when using Java method reference
KT-46562
Kotlin 1.5.0 generates non-serializable lambdas when they should be serializable
KT-46568
JVM IR: "AssertionError: IrCall expected inside JvmStatic wrapper" on compiling protected static function with return type Nothing inside companion object of abstract class
KT-46574
JVM / IR: ClassCastException caused by runBlocking awaiting call while returning Kotlin.Result type.
KT-46579
JVM IR: "IllegalArgumentException: Sequence contains more than one matching element" for Java enum with overloaded values() static method
KT-46584
JVM IR: Intrinsics.needClassReification (UnsupportedOperationException thrown). Property delegate provider crossinline lambda inlining/reification issue
KT-46751
JVM / IR:"ClassCastException: java.lang.String cannot be cast to java.lang.Void" in extension function in Kotlin 1.5
IDE
KT-45981
failed to analyze: java.lang.AssertionError: diagnostic callback has been already registered: Code analysis get stuck in AS 2020.3.1.14 & Kotlin v1.5.0-M2
KT-46622
60+ second freezes with Kotlin plugin 1.5.0: GetModuleInfoKt.findJvmStdlibAcrossDependencies
IDE. Gradle Integration
KT-46417
[UNRESOLVED_REFERENCE] For project to project dependencies of native platform test source sets
Libraries
KT-46280
JvmRecord annotation missing constructor in common
Middle-end. IR
KT-44013
NPE: When calling constructor of a function type while inheriting from it, despite it's an interface
Tools. Android Extensions
KT-46590
Kotlin Android Extensions 1.5.0 generates bad writeToParcel() method for nullable Array types
Tools. Gradle
KT-41142
Kotlin version conflict when using Kotlin Gradle plugins in pre-compiled script plugin
KT-46353
Optimizations disabled in Gradle 7 for KAPT when generating sources
KT-46368
Memory leak with 1.5.0-RC when building with Gradle
KT-46689
Track -Xuse-old-backend flag usage
Tools. Gradle. JS
KT-46006
KJS \ Gradle: Task without declaring an explicit or implicit dependency on jsGenerateExternalsIntegrated
in Gradle 7
KT-46162
KJS: Exported items unavailable on dev server
KT-46331
KJS: With kotlin.js.webpack.major.version=4
browserXRun tasks fail
Tools. Parcelize
KT-46567
Kotlin 1.5.0 parcelize compilation fails in new backend when using TypeParceller with nested generics
Tools. kapt
KT-45532
Do not create Kapt stubs directory during configuration time
Checksums
File |
Sha256 |
kotlin-compiler-1.5.10.zip |
2f8de1d73b816354055ff6a4b974b711c11ad55a68b948ed30b38155706b3c4e |
kotlin-native-linux-1.5.10.tar.gz |
0463222fb84e0f997e3c71af89ed1d1c4b3b9894cafffe5fc0ba1f125cf362ea |
kotlin-native-macos-1.5.10.tar.gz |
bc227baad4a4c8b5cdf0b1a08fa3fb59132043f2ea88e2343c5f25584f5de3cd |
kotlin-native-windows-1.5.10.zip |
e0816d91da9c4c38b3ef8891033185cb183f4a901054c9f17a9c72295ed40324 |
Kotlin 1.5.0
Changelog
Backend. Native
KT-42053
Support compiler caches for linux_x64
KT-43690
Support compiler caches for ios_arm64
Backend. IR
KT-42684
StackOverflowError on recursive inline arguments in inline fun
Compiler
New Features
KT-28791
Kotlin serialization with inline classes
KT-30222
Support JVM target version selection in Kotlin bytecode tool window
KT-41884
Support 'file' target for JvmSynthetic annotation
KT-43677
Support for Java records
KT-43920
Support loading binary Java annotations on fields
KT-44278
Generate SAM-converted lambdas and function references using 'invokedynamic' on JDK 1.8+
KT-44650
Deprecate JVM target version 1.6
KT-44787
Suspend functions in fun interfaces
KT-44865
Allow to declare protected constructors in sealed classes
KT-44869
Compiling sealed interface with version less than 1.5: error message from future could be provided
Performance Improvements
KT-6336
Optimize generation of local functions
KT-7307
Optimize infix call of String.plus
KT-18692
Optimize '<optimizable_range> step x' for-in loop
KT-19978
Inefficient bytecode generated for function references undergoing Java SAM conversion
KT-23565
OperationsMapGenerated.kt generates unreasonable amount of bytecode
KT-23825
Tail suspend call utilizing elvis operator does not take advantage of suspend tail call optimization
KT-23826
A suspend function on the right side of a returned || condition is not tail call optimized
KT-25348
No compile time unsigned integer conversion when using hex literal
KT-26060
Support a compiler mode to compile lambda expressions using invokedynamic
instruction
KT-26590
Do not generate create method for suspend lambdas if its arity >= 2
KT-27427
Optimize nullable check introduced with 'as' cast
KT-28246
Redundant boxing/unboxing isn't eliminated by the compiler in case of inline classes and javaClass intrinsic
KT-30605
Constant folding doesn't evaluate inv() function
KT-36845
Generate enum-based TABLESWITCH/LOOKUPSWITCH on a value with smart cast to enum in JVM_IR
KT-39585
JVM BE generates redundant accessor calls when accessing static final field lifted from companion
KT-40886
Old JVM BE unspills ACONST_NULL from continuation
KT-42621
Kotlin binary size considerably larger for code extensively using stream API
KT-44153
NI: Low Memory and IntelliJ hangs when quotes in split() are missed
KT-45410
JVM / IR: Extreme performance regression on arithmetic operations inside a loop
Fixes
KT-6007
Support changed return type of inlined generic function when lambda returns anonymous object
KT-6055
Failed invoke plus assign on array element accessed via several args through local get/set convention extensions
KT-6879
CompilationException when local classes hierarchy is placed within other local or inner declaration
KT-8120
NoSuchMethodError on local class constructor call inside a local class
KT-8199
"Cannot pop operand off an empty stack" for local class using a captured variable as default value for constructor parameter
KT-10835
"AssertionError: Non-outer parameter incorrectly mapped to outer" when inlining object literal extending inner class
KT-12790
Don't generate synthetic accessors for private inline function/properties
KT-13213
IllegalArgumentException in ByteVector.putUTF8 on attempt to compile file with moderately long string literal
KT-14628
"UnsupportedOperationException: Don't know how to generate outer expression" for nested class inheriting from inner class with a companion object
KT-14833
JVM internal error: Augment assignment and increment are not supported for local delegated properties and inline properties
KT-15403
Suspend operator get wrong code generated by BE (NoSuchMethodError)
KT-15404
Suspend operator set wrong code generated
KT-16084
Proguard can't find enclosing class of let closure inside apply closure
KT-16151
Internal compiler error when using plusAssign operator with mutable map
KT-16221
Support in/!in suspend operators
KT-16282
"Cannot pop operand off an empty stack" for plusAssign with default parameters in setter operator
KT-16445
java.lang.VerifyError: Bad type on operand stack
when delegating an interface through a private reified function inside an object
KT-16520
Invalid bytecode semantics for set call by convention with default parameters
KT-16567
Inliner creates redundant objects on source inlining
KT-16752
Delegating function interface to function reference does not work
KT-17554
Incorrect cast to Unit generated on annotated when-expression with a single-branch if inside
KT-17738
Java cannot extend class implementing kotlin.collections.Map
KT-17753
Strange behavior of if and return statements
KT-18583
"ISE: Recursive call in a lazy value" for generic sealed class with nested subclass in a when(this)
with inferred return type
KT-19861
"IllegalStateException: Label wasn't found during iterating through instructions" for plusAssign
with safe call
KT-20306
Make 'when' over an 'expect' enum class non-exhaustive
KT-20869
kotlin.jvm.internal.DefaultConstructorMarker should be public
KT-20996
IllegalStateException: Cannot get FQ name of local class: class in metadata serialization for common code
KT-21014
Incorrect bytecode generated for 'PrimitiveArray::size'
KT-21092
Reference javaClass
for generic property: "couldn't transform method node: get()"
KT-21778
"IllegalStateException: Couldn't build context" for inline function inside an anonymous object
KT-21900
VerifyError on equals on generic primitive type
KT-22098
"UnsupportedOperationException: Don't know how to generate outer expression" on extension function call inside lambda in anonymous object super constructor call
KT-22488
Bad line numbers generated for '&&' expression
KT-22972
A compiler bug(?) in Number class descendants
KT-23619
Transform stateless singleton lambda during inline
KT-23881
Declaration of lambda in inlined apply block holds reference to superfluous references causing leak
KT-24135
Calling invoke on crossinline suspend lambda leads to no state-machine
KT-24193
NoClassDefFoundError: java/lang/Cloneable$DefaultImpls on inheritance from Cloneable through an interfac...
Read more
Kotlin 1.5.0-RC
Changelog
Compiler
New Features
KT-28791
Kotlin serialization with inline classes
KT-43920
Support loading binary Java annotations on fields
Performance Improvements
KT-44153
NI: Low Memory and IntelliJ hangs when quotes in split() are missed
KT-45410
JVM / IR: Extreme performance regression on arithmetic operations inside a loop
Fixes
KT-35224
It's possible to pass non-spread arrays after arguments with SAM-conversion
KT-36853
IR: UninitializedPropertyAccessException on tailrec with object expression in default argument
KT-41056
Increase stub version due to new "contract" keyword
KT-43887
Problem with FunctionReferenceLowering$FunctionReferenceBuilder in kotlin native
KT-44210
KJS / IR: "AssertionError: Undefined parameter referenced: defined" caused by plus assign operators in build blocks
KT-44947
Sealed interfaces: Sealed fun interface leads to "NoWhenBranchMatchedException"
KT-44993
JVM IR: VerifyError on getfield with Kotlin generic field and elvis operator
KT-45139
Inline class: AssertionError: Expected top level inline class
KT-45195
JVM IR: annotation methods are generated as default interface methods if allopen
is used
KT-45446
JVM / IR: NullPointerException caused by unreachable code and comparison
KT-45721
JVM / IR: "Unbound symbols not allowed" caused by class reference in sequence lambda
KT-45853
JVM / IR: "Accidental override" caused by inheriting Throwable.getCause from Java interface
KT-45861
Turning warnings into errors for calls with type parameters annotated by @OnlyInputTypes
KT-45868
JVM IR: ClassCastException with SAM function in init block when SAM is generated via invokedynamic
KT-45920
JVM IR: "Accidental override" on redefining get()
in custom Map class
KT-45963
JVM / IR: "AbstractMethodError: Receiver class does not define or inherit an implementation of the resolved method" in Dokka tests
KT-45967
JVM IR: "IllegalAccessError" with invokedynamic to Java SAM over callable reference to private function
KT-45982
Wrong subtyping result on captured types with postponed type variables
IDE. Inspections and Intentions
KT-38155
Lift assignment out of 'if' produces type mismatch without manually adding a semicolon
JavaScript
KT-44796
KJS / IR: default parameter of function with @JsName leads to "RangeError: Maximum call stack size exceeded"
Libraries
KT-39177
Make CharCategory available in common multiplatform code
KT-43772
Kotlin/Native unfinished workers detected.
Tools. Gradle
KT-43605
Kotlin Gradle Plugin 1.4.20 undeclared system property reads cause problems with Gradle configuration cache enabled
KT-44462
Kotlin Gradle plugin creates compile
configuration with Gradle 7.0
KT-44949
Compatibility with Gradle 7.0
KT-44957
gradle - target.compilations seems to be deprecated
KT-45340
Update minimal supported version of Kotlin Gradle Plugin to 6.1
Tools. Gradle. Multiplatform
KT-44900
Support gradle configuration cache with kotlin.multiplatform plugin
Tools. kapt
KT-43686
KaptWithoutKotlincTask should use @CompileClasspath
for kotlinStdlibClasspath
for cache relocateability.
KT-44130
KAPT changes field order in 1.4.30-M1
Checksums
File |
Sha256 |
kotlin-compiler-1.5.0-RC.zip |
91a82ea9ff1b49ef1c342d52b3fe54fed92aa79201ee0d452fe9b72e698ea98b |
kotlin-native-linux-1.5.0-RC.tar.gz |
6336cf1d360bd62adfffb4442a31e06150721cc767c76eca2830e9e45eed9bbc |
kotlin-native-macos-1.5.0-RC.tar.gz |
2d868b738b77ca290ea4c714669e31ed29f3befbb71aa0d0b4b0ad1ebddf1a9d |
kotlin-native-windows-1.5.0-RC.zip |
dd3c6bec6aa1b50e1764484406d450d4ae491169a47add5e2174e82de73e567d |
Kotlin 1.5.0-M2
Changelog
Compiler
New Features
KT-30222
Support JVM target version selection in Kotlin bytecode tool window
KT-41884
Support 'file' target for JvmSynthetic annotation
KT-44278
Generate SAM-converted lambdas and function references using 'invokedynamic' on JDK 1.8+
Performance Improvements
KT-26060
Support a compiler mode to compile lambda expressions using invokedynamic
instruction
KT-42621
Kotlin binary size considerably larger for code extensively using stream API
Fixes
KT-20306
Make 'when' over an 'expect' enum class non-exhaustive
KT-20869
kotlin.jvm.internal.DefaultConstructorMarker should be public
KT-26592
Do not generate private suspend functions as synthetic package-private
KT-38100
Support local delegated properties (not inlined) in new JVM default modes
KT-40392
Deprecate JvmDefault annotation and old -Xjvm-default modes
KT-41758
Deprecate kotlin.Metadata.bytecodeVersion and avoid using it in the compiler
KT-42092
JVM / IR: "AnalyzerException: Argument 1: expected R, but found J" when trying to add to ArrayList the result of a function applied to int
KT-42321
JVM IR: do not cast integer value based on the type of a literal receiver of an operator call
KT-42404
"Supertypes of the following classes cannot be resolved" in Rider project
KT-42472
No TYPE_INFERENCE_UPPER_BOUND_VIOLATED for Delegated Properties do not check types (in Kotlin 1.4.10)
KT-43167
JVM IR, serialization: "No mapping for symbol: VALUE_PARAMETER INSTANCE_RECEIVER" with data class containing property defined in body
KT-43303
NI: False negative TYPE_INFERENCE_UPPER_BOUND_VIOLATED when inferred type argument is not a subtype of type parameter upper bound
KT-44368
"IllegalStateException: Error type encountered" when inlining 'invoke' operator without enough information on type variable
KT-44412
JVM IR backend fails to compile break in condition of do while
KT-44471
Fix failing script tests after switching to 1.5
KT-44474
Compiler expects sealed type inheritors from platform specific source-sets in when expression in common source-set
KT-44483
JVM IR: CCE on calling generic vararg function reference with Array expected type
KT-44550
KotlinBinaryClassCache leaks Kotlin plugin classloader on plugin unload
KT-44546
NI: changed variable fixation order (that can lead to changed resolution)
KT-44583
"Supertypes of the following classes cannot be resolved" error message gives no context
KT-44627
JVM IR: ACCIDENTAL_OVERRIDE when overriding a generic field where the type parameter has a primitive bound
KT-44703
JVM / IR: "IllegalStateException: Unhandled special name in mangledNameFor" caused by a reference to inline class inside interface's companion with lazy initialization
KT-44714
Debugger / Coroutines: Local variables are trimmed out too aggressively
KT-44722
JVM IR: ClassCastException with inline class, let and bound function reference
KT-44726
JVM IR: Incorrect KType nullability for platform type reified as non-null
KT-44798
JVM IR: Inherited platform declarations clash for class implementing both List and Set
KT-44801
1.4.30 JVM IR: Unbound symbols not allowed with anonymous object
KT-44803
FIR bootstrap: incorrect nullability is set for type alias-based type
KT-44827
Non-existing outer class is written in anonymous class for SAM wrapper in inline lambda with capture
KT-44878
JVM_IR: "IllegalStateException: Unexpected types" when checking non-nullable variable is in
range between nullable ones with smart-cast
KT-44926
MPP: Actual typealias to compiled inline class incompatible with expect inline class
KT-44974
LambdaConversionException in case of SAM-converted captuing extension lambda
KT-45008
JVM IR: hashCode is generated as invokeinterface if smart cast to interface is present
KT-45011
JVM / IR: "AssertionError: Unbound symbols not allowed"
KT-45022
IR: "AssertionError: Undefined variable referenced" from psi2ir caused by plusAssign operator of object
KT-45064
JVM IR: "java.lang.AssertionError: SyntheticAccessorLowering should not attempt to modify other files!" with member reference to property in another file with private setter
KT-45069
JVM / IR: New SAM conversions mode fails when converting from Unit to Any
KT-45131
JVM / IR: "RuntimeException: Lambda, SAM or anonymous object should have only one constructor" caused by inline class that type cast to reified type parameter inside lambda in inline function
KT-45243
"IllegalStateException: Lambdas shouldn't be visited by ESExpressionVisitor" caused by lambda inside kotlin.test.assertNotNull
KT-45259
JVM: ClassCastException caused by Result as lambda parameter type
KT-45292
AssertionError with recursive inline extension property
KT-45300
Deprecate super calls in public-api inline functions
KT-45409
Rename jspecify annotations’ package and default not null annotation
IDE
KT-44487
MPP, IDE: No error in IDE when sealed class inheritor from common source-set is not used in exhaustive when expression in platform source-set
KT-45254
Highlighting for files with certain errors appears only on second opening
IDE. Decompiler, Indexing, Stubs
KT-43699
IDE: Unresolved extension method from Java code for simple class with typealias and generics (IllegalStateException: Unknown type parameter)
KT-44756
Infinite "UpToDateStubIndexMismatch: PSI and index do not match." with IDEA 2021.1 EAP upon attempt to open "org.gradle.configurationcache" even they seem to be the same
IDE. Gradle Integration
KT-37127
Implement precise importing of platforms of root source sets (commonMain/commonTest) when hierarchical multiplatform support is enabled
IDE. Misc
KT-44675
Incorrect reference to resource into 202 plugin
IDE. Refactorings
KT-44839
Sealed interfaces: move refactoring warnings works with "more freedom for sealed classes" rules for language level < 1.5
IDE. Script
KT-43288
Allow push notifications about script configuration /dependencies changes via the ScriptDefinitionsProvider
EP
JavaScript
KT-39272
KJS / IR: Can't use javascript keywords as JsName
KT-41650
JS IR BE: default
should be a reserved identifier
KT-44433
KJS IR: support function interfaces with suspend member
KT-45059
KJS / IR: Add possibility for runtime diagnostics of DCE result
Libraries
Read more
Kotlin 1.4.32
Changelog
IDE
KT-43824
KtLightClassForSourceDeclaration#isInheritor works in a different way than java implementation
KT-45287
LightClasses: KtLightSimpleModifierList
is no more a parent of KtLightAnnotationForSourceEntry
KT-45291
LightClasses: can't get annotations for constructor val-parameter
KT-45417
ULC leakage of primitive type annotations
Tools. CLI
KT-44758
kotlin-compiler-embeddable dependency includes unshaded fastutil
package
KT-45007
Concurrent Kotlin script compilation/execution results in NullPointerException in KeyedExtensionCollector.getPoint()
Checksums
File |
Sha256 |
kotlin-compiler-1.4.32.zip |
dfef23bb86bd5f36166d4ec1267c8de53b3827c446d54e82322c6b6daad3594c |
kotlin-native-linux-1.4.32.tar.gz |
3712fab4c60484fd8b5538dd018a0023033cb3ea38d2a3023c79b342e4e8b24d |
kotlin-native-macos-1.4.32.tar.gz |
a55eb3c60bb9810360c5a992dca34328d806fe13f3bfc3120b49345f569fd3cc |
kotlin-native-windows-1.4.32.zip |
3bd6f1b9293897a45d0b33ee14ca51b33b57d0413b774458c6e4aee393e1b772 |
Kotlin 1.5.0-M1
You could find information about EAP program and setup instructions here
Changelog
Backend. Native
KT-42053
Support compiler caches for linux_x64
KT-43690
Support compiler caches for ios_arm64
Compiler
New Features
KT-42522
Enable string concatenation via invokedynamic by default for JVM target 9 and above
KT-43677
Support for Java records
KT-44650
Deprecate JVM target version 1.6
KT-44787
Suspend functions in fun interfaces
KT-44865
Allow to declare protected constructors in sealed classes
KT-44869
Compiling sealed interface with version less than 1.5: error message from future could be provided
Performance Improvements
KT-6336
Optimize generation of local functions
KT-7307
Optimize infix call of String.plus
KT-18692
Optimize '<optimizable_range> step x' for-in loop
KT-19978
Inefficient bytecode generated for function references undergoing Java SAM conversion
KT-23565
OperationsMapGenerated.kt generates unreasonable amount of bytecode
KT-23825
Tail suspend call utilizing elvis operator does not take advantage of suspend tail call optimization
KT-23826
A suspend function on the right side of a returned || condition is not tail call optimized
KT-25348
No compile time unsigned integer conversion when using hex literal
KT-26590
Do not generate create method for suspend lambdas if its arity >= 2
KT-27427
Optimize nullable check introduced with 'as' cast
KT-28246
Redundant boxing/unboxing isn't eliminated by the compiler in case of inline classes and javaClass intrinsic
KT-30605
Constant folding doesn't evaluate inv() function
KT-36845
Generate enum-based TABLESWITCH/LOOKUPSWITCH on a value with smart cast to enum in JVM_IR
KT-39585
JVM BE generates redundant accessor calls when accessing static final field lifted from companion
KT-40886
Old JVM BE unspills ACONST_NULL from continuation
Fixes
KT-6007
Support changed return type of inlined generic function when lambda returns anonymous object
KT-6055
Failed invoke plus assign on array element accessed via several args through local get/set convention extensions
KT-6879
CompilationException when local classes hierarchy is placed within other local or inner declaration
KT-8120
NoSuchMethodError on local class constructor call inside a local class
KT-8199
"Cannot pop operand off an empty stack" for local class using a captured variable as default value for constructor parameter
KT-10835
"AssertionError: Non-outer parameter incorrectly mapped to outer" when inlining object literal extending inner class
KT-12790
Don't generate synthetic accessors for private inline function/properties
KT-13213
IllegalArgumentException in ByteVector.putUTF8 on attempt to compile file with moderately long string literal
KT-14628
"UnsupportedOperationException: Don't know how to generate outer expression" for nested class inheriting from inner class with a companion object
KT-14833
JVM internal error: Augment assignment and increment are not supported for local delegated properties and inline properties
KT-15403
Suspend operator get wrong code generated by BE (NoSuchMethodError)
KT-15404
Suspend operator set wrong code generated
KT-16084
Proguard can't find enclosing class of let closure inside apply closure
KT-16151
Internal compiler error when using plusAssign operator with mutable map
KT-16221
Support in/!in suspend operators
KT-16282
"Cannot pop operand off an empty stack" for plusAssign with default parameters in setter operator
KT-16445
java.lang.VerifyError: Bad type on operand stack
when delegating an interface through a private reified function inside an object
KT-16520
Invalid bytecode semantics for set call by convention with default parameters
KT-16567
Inliner creates redundant objects on source inlining
KT-16752
Delegating function interface to function reference does not work
KT-17554
Incorrect cast to Unit generated on annotated when-expression with a single-branch if inside
KT-17738
Java cannot extend class implementing kotlin.collections.Map
KT-17753
Strange behavior of if and return statements
KT-18583
"ISE: Recursive call in a lazy value" for generic sealed class with nested subclass in a when(this)
with inferred return type
KT-19861
"IllegalStateException: Label wasn't found during iterating through instructions" for plusAssign
with safe call
KT-20996
IllegalStateException: Cannot get FQ name of local class: class in metadata serialization for common code
KT-21014
Incorrect bytecode generated for 'PrimitiveArray::size'
KT-21092
Reference javaClass
for generic property: "couldn't transform method node: get()"
KT-21778
"IllegalStateException: Couldn't build context" for inline function inside an anonymous object
KT-21900
VerifyError on equals on generic primitive type
KT-22098
"UnsupportedOperationException: Don't know how to generate outer expression" on extension function call inside lambda in anonymous object super constructor call
KT-22488
Bad line numbers generated for '&&' expression
KT-22972
A compiler bug(?) in Number class descendants
KT-23619
Transform stateless singleton lambda during inline
KT-23881
Declaration of lambda in inlined apply block holds reference to superfluous references causing leak
KT-24135
Calling invoke on crossinline suspend lambda leads to no state-machine
KT-24193
NoClassDefFoundError: java/lang/Cloneable$DefaultImpls on inheritance from Cloneable through an interface
KT-24305
ClassNotFoundException when using Java reflection on local class in an inlined lambda
KT-24564
Custom operator fun set on ByteArray resolves properly but is miscompiled
KT-25400
"NoClassDefFoundError: kotlin/KotlinPackage" with Turkish system locale on macOS
KT-26130
Incorrect method signature for a generic function with inline class as a type parameter upper bound
KT-26360
"Method from super interface has a different signature" for Interface that extends both interfaces with and without @JvmDefault
KT-26473
Error on compiling inline class with calls of super methods equals(), hashCode(), toString()
KT-26474
VE “Bad type on operand stack” at runtime on calling toString() method of inline class with calls of super methods (toString(), equals(), hashCode()) inside
KT-27449
NoSuchMethodError for local suspend function with suspend lambda parameter with default value
...
Read more
Kotlin 1.4.31
1.4.31
Compiler
KT-39776
2020.3+: Unresolved reference to Kotlin stdlib function
IDE. Gradle Integration
KT-44845
After update to Kotlin 1.4.30 all external dependencies is unresolved in IDE with kotlin.mpp.enableGranularSourceSetsMetadata=true
IDE. Gradle. Script
KTIJ-11137
build.gradle.kts: Fatal error during save/load standalone scripts settings
KTIJ-898
Unable to import with Kotlin DSL buildscript - NullPointerException in KotlinDslScriptModelProcessorKt.toListOfScriptModels
IDE. Multiplatform
KTIJ-1200
KotlinIconProviderKt.addExpectActualMarker takes up to 180+ seconds
IDE
Fixes
KT-44697
New JVM IR backend notification - narrow its triggering to Kotlin projects
KT-44523
IDE notification for trying new JVM backend
KTIJ-696
Freeze during startup of IDEA with intellij project with Kotlin (211-1.4.10-release-IJ1440)
Checksums
File |
Sha256 |
kotlin-compiler-1.4.31.zip |
b50e7016febf7510325d685ae69cc62f49a7ca7f670cb4e0888112e3ec09c6ec * |
kotlin-native-linux-1.4.31.tar.gz |
87fc40385ffbd44eebde6487d15e1c5c67c218870b332b525e122f014b7de3e3 |
kotlin-native-macos-1.4.31.tar.gz |
0e351756b382096204d61456f855480ce6b65ac53897c4bfa78a287895f37e32 |
kotlin-native-windows-1.4.31.zip |
a60aec97fd21294ab11e57acdd33d37d79db11b22656fa435b791e9a709727b4 |
*
Sorry, Sha256 sum was initially published incorrectly. Now it is fixed.