Changelog
Analysis API
KT-52667
FIR IDE: fun interfaces (SAM interfaces) are not properly resolvedKT-52136
FIR: Implicit type declaration from the other module cannot be used for overloading
Analysis API. FE1.0
KT-51962
Analysis API: Finish Analysis API for FE1.0
Analysis API. FIR
KT-52779
FIR IDE: Import Optimizer cannot handle generic type qualifiersKT-50236
Fix OOB modification trackers for non-Kotlin codeKT-51240
Analysis API: KtAnalysisSession for a specific module cannot create a symbol for PSI that cannot be seen from that module.KT-50868
Analysis API: decompiled type aliases are not resolved
Compiler
New Features
KT-33755
Kotlin/Native: Provide a way to customize a bundle Identifier of a generated frameworkKT-51665
FIR: implement label resolve for "typed this" caseKT-52361
Report warning on potentially empty intersection types
Performance Improvements
KT-47816
Disable script discovery for non-script environmentsKT-48635
JVM IR: Double/Float values are boxed when comparing for equality in equals method of data/value classesKT-23397
Optimize out field for property delegate when it's safe (JVM)
Fixes
KT-53272
Backend Internal error: Exception during IR lowering / No such value argument slot: 2KT-53124
Receiver type mismatch when combining extension properties, type projections, Java sources, and F-bounded type-variablesKT-51868
JVM / IR: Inconsistent behaviour between lambda expression and SAM interface conversion for the same interfaceKT-36770
Prohibit unsafe calls with expected@NotNull
T and given Kotlin generic parameter with nullable boundKT-52974
"IllegalStateException: Symbol with IrSimpleFunctionSymbolImpl is unbound" compiling native targets of MPP projectKT-53007
JVM: "Bad invokespecial instruction: current class isn't assignable to reference class" when call superclass of outer class method from inner classKT-53019
K2: cannot cast callable reference to Function1 in runtimeKT-53031
K2 compiler crashes with IllegalStateException: No type in ProtoBuf.ValueParameterKT-29168
Prohibit upper bounds violation with generic typealias using not all type parameters as arguments for underlying type in supertypesKT-52432
Using the IDE compiled with K2 (useFir) throws VerifyError exceptionKT-52327
False negative: TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM isn't reportedKT-49682
Support JVM IR in KAPT stub generationKT-24643
Prohibit using a type parameter declared for an extension property inside delegateKT-51972
FIR, Gradle: "Symbol is invisible" compilation error with enabled Kotlin Lombok compiler pluginKT-52011
[FIR] All-open compiler plugin isn't supportedKT-51950
JVM IR: "IndexOutOfBoundsException: Cannot pop operand off an empty stack" with crossinline lambdas and interface delegationKT-52540
Native: kotlin.NotImplementedError with Arrow libraryKT-48031
"IllegalStateException: Type variable TypeVariable(T) should not be fixed!"KT-47708
RequiresOptIn check does not flag experimental method usage in SAM lambda expressionsKT-52913
JVM / IR: "IllegalArgumentException: Inline class types should have the same representation" when trying to down cast cast a value classKT-50771
IR partial linkage: Removed abstract callable members are not supportedKT-52994
Enable generic inline classes as experimental featureKT-52742
CYCLE_IN_ANNOTATION_PARAMETER_ERROR false positive on annotations with default valuesKT-52743
Non-null generic functions throws NPE when assigned to valKT-52745
Frontend / K2: "IncompatibleClassChangeError: class A$B overrides final method A.length()I" caused by delegation in a sealed classKT-52832
Tree-generator's method FirExpression::isFirType returns true and false for different field names; it should always be trueKT-52403
IncompatibleClassChangeError when inlining suspend funsKT-50107
Missed USAGE_IS_NOT_INLINABLE diagnostic: Leaking inline lambda parameter through extension receiverKT-47965
Missed USAGE_IS_NOT_INLINABLE diagnostic on inline lambda parameter usage as receiver of .let callKT-25787
No error on crossinline usage of receiver parameter of functional type in an inline functionKT-52762
Frontend / K2: Named arguments for Java classes lead to "Cannot find a parameter with this name"KT-52680
K2: overload resolution ambiguity ifthis
is casted in a different methodKT-52676
K2: Unsupported compile-time value IrGetFieldImpl instead of IrConst in AnnotationCodegen for constant from JavaKT-50293
False positive: USELESS_CAST on stub typesKT-52175
WRONG_ANNOTATION_TARGET for annotation that used inside ifKT-52338
"IncompatibleClassChangeError: Expected non-static field" with Kotlin class with same-named companion object property as base Java class fieldKT-49507
JVM: "IllegalAccessError: class X tried to access private field" with same-named Kotlin property and Java base class fieldKT-44512
FIR DFA: incorrect smartcast after null assignment inside a lambdaKT-49200
FIR/FE 1.0: different behavior with multiple matching star importsKT-52718
declaringClass deprecation message mentions the wrong replacement in 1.7KT-52190
FIR2IR: Unexpected IrErrorTypeImpl type for put method inside buildMapKT-52197
Incorrect inference of var type inside lambda that passed to extension function with type parameters that defined inside this lambdaKT-52057
Unsupported compile-time value STRING_CONCATENATION and GET_FIELD in annotation argumentsKT-47823
JVM IR: "IllegalArgumentException: Inline class types should have the same representation" withbreak
usage in the loop rangeKT-51883
Kotlin 1.6.20 generates "-" in type names around lambdas and inline extension function with reified type which breaks Apache BeamKT-52684
Syntax error regression on complicated combination of LT and GTEQKT-52417
Reflection: Can't reflect on type parameters captured by SAM converted lambdaKT-46797
JVM IR: suspendImpl has no generic signature, breaking reified types in anonymous object supertypes when using the type token patternKT-51464
FIR: Unable to infer type in coroutines flow codeKT-52163
JVM IR: Double.compareTo(Int) compiled to integer comparisonKT-41980
FIR: erroneous scope during annotation resolveKT-47159
KtPsiUtils.areParenthesesUseless()
is returning a false positive on expressions for interface delegationKT-51418
Substitute anonymous type's supertypesKT-35544
kotlin.TypeCastException has no message on NativeKT-52386
StackOverflowError during Kotlin/Native gradle buildKT-52592
NPE from KProperty.getExtensionDelegate on property delegated to another propertyKT-52551
Delegating to object property reference does not invoke object's initializerKT-51704
Contracts: "AssertionError: Arguments and parameters size mismatch" with companion objectKT-25527
False positive UNUSED_VALUE for delegated property/variableKT-51002
[FIR] Hidden declaration hides visible oneKT-51008
[FIR] Star import does not work for nested calssifiers of java classKT-52407
FIR: Star import has lower priority than built-in importKT-52431
Reported error instead of warning due to empty intersection type foundKT-49394
Bad message and suggestion: The feature "unit conversion" is disabledKT-51168
FIR: Inference error with Java interop and captured typesKT-49961
"AssertionError: Left expression was not processed: BINARY_EXPRESSION" when analyzing dangling [bracketed] expression inside elvisKT-50108
Difference in fun interface conversion behavior for uninitialized not-null function valuesKT-51889
Calls to super-classes constructors with context receivers fail on runtimeKT-51228
[FIR] Unresolved reference on callable reference on implicitthis
with smartcastKT-52364
False positive for INFERRED_TYPE_VARIABLE_INTO_EMPTY_INTERSECTIONKT-52237
JVM / IR: "IllegalArgumentException: No argument for parameter VALUE_PARAMETER CONTINUATION_CLASS" when implementing Map interface on class with suspending functionsKT-50832
Method references to suspend inline functions are processed incorrectlyKT-52194
False positive "Class 'my.packge.MyClass' is compiled by a pre-release version of Kotlin and cannot be loaded by this version of the compiler" but builds fineKT-47203
JVM Debugger: Parameter value doesn't change for tailrec functionKT-52131
False positive variable unused warning when calling inline function in finally blockKT-51738
Debugger: stepping over in inline function with multiple inline lambda invocations is incorrectKT-52198
Losing reference to the value of an outer variable (Ref$ObjectRef) when using suspend inline with suspendCancellableCoroutineKT-50994
FIR: AssertionError during inference of delegated properties with implicit typesKT-51757
FIR does not see various JS/Native specific declarations in common modulesKT-51201
FIR: ARGUMENT_TYPE_MISMATCH diagnostic contains generic parameter instead of the actual typeKT-48444
FIR: type argument rejected for annotationKT-51754
JVM: Local variable table invalid for do-while with continueKT-51936
Breakpoint not hit on last line of suspend function on AndroidKT-27333
Forbid@Synchronized
annotation on suspend functionsKT-51530
"StackOverflowError: CoroutineTransformerMethodVisitor.spillVariables" with data class in FlowKT-51460
FIR: Protected property inaccessible from inner class
IDE
KT-52571
MPP Tasks on import are not up-to-date after subsequent launchesKT-47777
ISE thrown from KtLightClassForFacadeImpl.Companion.createForFacadeNoCache has wrong message.
IDE. FIR
KT-52360
FIR IDE: Make the fix ofisInheritor
method betterKT-51786
FIR IDE: IllegalStateException exception in Inspections' infrastructureKT-52331
Analysis API: ArrayIndexOutOfBoundsException exception in Diagnostics' infrastructure
IDE. Gradle Integration
KT-47627
IDE import fails with com.intellij.util.lang.PathClassLoader error forrunCommonizer
Gradle task on 212, 213 IDEAs
IDE. Script
KT-52525
Update scripts handling in source roots
JavaScript
New Features
KT-39423
KJS: Optionally generate a method to handle optional parameters for function in typescriptKT-42282
KJS IR: add an ability to run separate tests
Performance Improvements
KT-50270
KJS IR: Unnecessary getter and setter calls when accessing class members
Fixes
KT-51133
Kotlin/JS - IR: even simple lambdas generate a lot of useless boilerplateKT-51123
Provide a way to add comments to generated JSKT-48493
KJS / IR: Invalid d.ts for inner classes inside objectsKT-52553
KJS / IR: diamond hierarchy with super.toString produces stack overflow in runtimeKT-23252
JS: Unit materialization on declaration and assignmentKT-51128
Kotlin/JS - IR generate huge count of useless blocksKT-50778
KJS/IR: Inline class has no field when building production distributionKT-50157
KSJ IR: Applying identity equality operator to Chars always returns falseKT-38262
Javascript generation (and Typescript) fails on 'then', 'catch' and 'finally' (and others?) claiming they are reserved namesKT-51066
KJS / IR: suspend lambda parameter of value class is undefinedKT-51102
KJS/IR: Assertion failed at translateCallArguments(jsAstUtils.kt:343)KT-51878
KJS / Legacy: Unit is not materialized in an overridden method, but it should be
Language Design
KT-47986
Implicit inferring a type variable into an upper bound in the builder inference contextKT-49264
Deprecate infix function calls of functions named "suspend" with dangling function literal
Libraries
KT-52932
Open-ended ranges in the standard libraryKT-52909
Implement a walk extension function for java.nio.file.PathKT-52910
Provide visit extension functions for java.nio.file.PathKT-48232
Multiplatform function for computing cubic rootKT-52778
The documentation for theDuration
does not indicate any differences from the ISO-8601KT-52618
ThreadLocalRandom is not a good source of randomness on Android before SDK 34, so don't use it for Kotlin Random
Native
KT-51297
Native: allow calling Kotlin suspend functions on non-main thread from SwiftKT-48558
Windres broken in new MinGW toolchainKT-50983
Linker fails on Windows if add .res file with VERSIONINFOKT-52150
harmony_LICENSE.txt contains invalid utf8 characters
Native. C Export
KT-45468
Kotlin/Native: Bitcode verification error when trying to export a cached klib to a static or dynamic library
Native. C and ObjC Import
KT-49034
Kotlin/Native:cnames.structs.Foo
resolves into wrong declarationKT-26478
Objective-C object's class name is null in ClassCastException's message
Native. ObjC Export
KT-51593
Include more information in Objective-C header documentationKT-33117
Improve customizing Info.plist in produced frameworksKT-52681
Native:@end;
for Objective-C is generated with an unnecessary semicolon
Native. Platforms
KT-52226
Kotlin/Native: Add support for cross-compilation of MIPS targets from macOS and Windows hosts
Native. Runtime
KT-52430
KMM 1.6.21 framework built with Xcode13, new MM GC Can't support iOS 9.x
Native. Runtime. Memory
KT-52692
Kotlin/Native: fix tests with aggressive GCKT-52130
Kotlin/Native: use Xallocator for Kotlin objects onlyKT-51436
Kotlin/Native: optimize mark queue
Reflection
KT-51804
An error occurs when callBy a KFunction that contains a value class as an argument, has a default argument set, and has more than 32 arguments.
Tools. CLI
KT-52465
CLI: IllegalStateException IrSimpleFunctionPublicSymbolImpl when source root is duplicatedKT-52380
Invalid path to compiler plugins should be reported as a compiler errorKT-51025
JVM CLI compiler takes class file from classpath instead of input java source fileKT-51846
Setting random value to the compiler argument where number is expected should produce an error. "-Xbackend-threads=abcd"
Tools. Compiler Plugins
KT-52486
[K2] Looking for function/constructor whose parameters are annotated or meta annotatedKT-52872
Mark supportsK2 in ComponentRegistrar.kt as JvmDefault to avoid compatibility problemsKT-52804
A function obtained by Fir IrBuiltins has an incorrect packageKT-52468
Rename module and jar for lombok compiler plugin
Tools. Gradle
KT-51923
Improve usability of errors and warnings by being able to click on themKT-53244
Report from gradle about compiler pluginsKT-52839
Warn in Gradle log why incremental compilation failedKT-46019
Compatibility with Gradle 7.1 releaseKT-47047
Migrate Kotlin Gradle Plugin from using Gradle conventionsKT-52698
Don't add InspectClassesForMultiModuleIC task when new incremental compilation is enabledKT-52867
Provide simplified JVM toolchain configuration methodKT-45747
Add basic JUnit 5 Kotlin Gradle Plugin Android tests setup
Tools. Gradle. Cocoapods
KT-53174
CocoaPods: Synthetic Podfile does not specify platformKT-53127
"MaterialComponents normal armv7" in Cocoapods plugin between Kotlin 1.6.21 and 1.7.0KT-44155
Cocoapods doesn't support pods without module map file insideKT-49032
Cocoapods cinterop: some header files are not found
Tools. Gradle. JS
KT-52637
KJS / Gradle: Add SCSS webpack configKT-51527
Kotlin/JS: BrowserXRun causes full-screen Webpack error "Compiled with problems: asset size limit/entrypoint size limit" for fresh Kotlin-React project from wizardKT-51532
Kotlin/JS: passing environment variable via Gradle script causes "Execution optimizations have been disabled" warnings
Tools. Gradle. Multiplatform
KT-52243
CInteropProcess is not cacheable despite the annotationKT-52741
MPP: klib outputs are not reproducibleKT-52208
MPP: Gradle plugin 1.7 doesn't support latest api versions (1.8, 1.9)
Tools. Gradle. Native
KT-52632
Gradle / Native: commonizeNativeDistributionTask can never be up-to-dateKT-52328
"ld: framework not found SQLCipher" linkDebugTestIosSimulatorArm64 error
Tools. Incremental Compile
KT-53168
Incremental compilation doesn't perform correctly after a few iterationsKT-52925
[IR BE] Non incremental build occurs after build failure for compileKotlinJs taskKT-52946
CompileKotlinJs task is executed non-incrementally if there were changes made to the dependant moduleKT-52329
Reduce memory usage of classpath snapshot cache
Tools. JPS
KT-47824
'when expression must be exhaustive' isn't thrown during incremental compilationKT-51873
JPS build is incorrect after gdw build
Tools. REPL
KT-45065
REPL: Incorrect output for unsigned value
Tools. Scripts
KT-52598
Scripts and REPL snippets are not checked against using 'kotlin' packageKT-47187
Kotlin ScriptEngine Failes to Compile a Trivial Statement After Failing to Compile a Broken OneKT-47191
[Kotlin Script Engine] Compiling Without Evaluating Leaves Engine in a Bad State
Checksums
File | Sha256 |
---|---|
kotlin-compiler-1.7.20-Beta.zip | 53428b151e365b3359518bd78d000368e89d9909c43800f4b32340a8cdd6e730 |
kotlin-native-linux-x86_64-1.7.20-Beta.tar.gz | 24be8e2b25a35ff286578b56870b4f11e3f7b0b5dd61e4e43c91a68c32b5bad6 |
kotlin-native-macos-x86_64-1.7.20-Beta.tar.gz | c2045250a495ed194ad080038f7f25fff7b9a81efc3f7446a877170b6d394313 |
kotlin-native-macos-aarch64-1.7.20-Beta.tar.gz | 03413b92201842ae933e2f72345bb90d955baff26c6d1d0a470c8a5cb27a071c |
kotlin-native-windows-x86_64-1.7.20-Beta.zip | ccb573100660b35fae0dab217f74cd30c03929af353772f80d7ab94e940120c6 |