github JetBrains/kotlin v1.7.20-Beta
Kotlin 1.7.20-Beta

latest releases: build-2.1.20-dev-4509, build-2.1.20-dev-4489, build-2.1.20-dev-4474...
pre-release2 years ago

Changelog

Analysis API

  • KT-52667 FIR IDE: fun interfaces (SAM interfaces) are not properly resolved
  • KT-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 qualifiers
  • KT-50236 Fix OOB modification trackers for non-Kotlin code
  • KT-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 framework
  • KT-51665 FIR: implement label resolve for "typed this" case
  • KT-52361 Report warning on potentially empty intersection types

Performance Improvements

  • KT-47816 Disable script discovery for non-script environments
  • KT-48635 JVM IR: Double/Float values are boxed when comparing for equality in equals method of data/value classes
  • KT-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: 2
  • KT-53124 Receiver type mismatch when combining extension properties, type projections, Java sources, and F-bounded type-variables
  • KT-51868 JVM / IR: Inconsistent behaviour between lambda expression and SAM interface conversion for the same interface
  • KT-36770 Prohibit unsafe calls with expected @NotNull T and given Kotlin generic parameter with nullable bound
  • KT-52974 "IllegalStateException: Symbol with IrSimpleFunctionSymbolImpl is unbound" compiling native targets of MPP project
  • KT-53007 JVM: "Bad invokespecial instruction: current class isn't assignable to reference class" when call superclass of outer class method from inner class
  • KT-53019 K2: cannot cast callable reference to Function1 in runtime
  • KT-53031 K2 compiler crashes with IllegalStateException: No type in ProtoBuf.ValueParameter
  • KT-29168 Prohibit upper bounds violation with generic typealias using not all type parameters as arguments for underlying type in supertypes
  • KT-52432 Using the IDE compiled with K2 (useFir) throws VerifyError exception
  • KT-52327 False negative: TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM isn't reported
  • KT-49682 Support JVM IR in KAPT stub generation
  • KT-24643 Prohibit using a type parameter declared for an extension property inside delegate
  • KT-51972 FIR, Gradle: "Symbol is invisible" compilation error with enabled Kotlin Lombok compiler plugin
  • KT-52011 [FIR] All-open compiler plugin isn't supported
  • KT-51950 JVM IR: "IndexOutOfBoundsException: Cannot pop operand off an empty stack" with crossinline lambdas and interface delegation
  • KT-52540 Native: kotlin.NotImplementedError with Arrow library
  • KT-48031 "IllegalStateException: Type variable TypeVariable(T) should not be fixed!"
  • KT-47708 RequiresOptIn check does not flag experimental method usage in SAM lambda expressions
  • KT-52913 JVM / IR: "IllegalArgumentException: Inline class types should have the same representation" when trying to down cast cast a value class
  • KT-50771 IR partial linkage: Removed abstract callable members are not supported
  • KT-52994 Enable generic inline classes as experimental feature
  • KT-52742 CYCLE_IN_ANNOTATION_PARAMETER_ERROR false positive on annotations with default values
  • KT-52743 Non-null generic functions throws NPE when assigned to val
  • KT-52745 Frontend / K2: "IncompatibleClassChangeError: class A$B overrides final method A.length()I" caused by delegation in a sealed class
  • KT-52832 Tree-generator's method FirExpression::isFirType returns true and false for different field names; it should always be true
  • KT-52403 IncompatibleClassChangeError when inlining suspend funs
  • KT-50107 Missed USAGE_IS_NOT_INLINABLE diagnostic: Leaking inline lambda parameter through extension receiver
  • KT-47965 Missed USAGE_IS_NOT_INLINABLE diagnostic on inline lambda parameter usage as receiver of .let call
  • KT-25787 No error on crossinline usage of receiver parameter of functional type in an inline function
  • KT-52762 Frontend / K2: Named arguments for Java classes lead to "Cannot find a parameter with this name"
  • KT-52680 K2: overload resolution ambiguity if this is casted in a different method
  • KT-52676 K2: Unsupported compile-time value IrGetFieldImpl instead of IrConst in AnnotationCodegen for constant from Java
  • KT-50293 False positive: USELESS_CAST on stub types
  • KT-52175 WRONG_ANNOTATION_TARGET for annotation that used inside if
  • KT-52338 "IncompatibleClassChangeError: Expected non-static field" with Kotlin class with same-named companion object property as base Java class field
  • KT-49507 JVM: "IllegalAccessError: class X tried to access private field" with same-named Kotlin property and Java base class field
  • KT-44512 FIR DFA: incorrect smartcast after null assignment inside a lambda
  • KT-49200 FIR/FE 1.0: different behavior with multiple matching star imports
  • KT-52718 declaringClass deprecation message mentions the wrong replacement in 1.7
  • KT-52190 FIR2IR: Unexpected IrErrorTypeImpl type for put method inside buildMap
  • KT-52197 Incorrect inference of var type inside lambda that passed to extension function with type parameters that defined inside this lambda
  • KT-52057 Unsupported compile-time value STRING_CONCATENATION and GET_FIELD in annotation arguments
  • KT-47823 JVM IR: "IllegalArgumentException: Inline class types should have the same representation" with break usage in the loop range
  • KT-51883 Kotlin 1.6.20 generates "-" in type names around lambdas and inline extension function with reified type which breaks Apache Beam
  • KT-52684 Syntax error regression on complicated combination of LT and GTEQ
  • KT-52417 Reflection: Can't reflect on type parameters captured by SAM converted lambda
  • KT-46797 JVM IR: suspendImpl has no generic signature, breaking reified types in anonymous object supertypes when using the type token pattern
  • KT-51464 FIR: Unable to infer type in coroutines flow code
  • KT-52163 JVM IR: Double.compareTo(Int) compiled to integer comparison
  • KT-41980 FIR: erroneous scope during annotation resolve
  • KT-47159 KtPsiUtils.areParenthesesUseless() is returning a false positive on expressions for interface delegation
  • KT-51418 Substitute anonymous type's supertypes
  • KT-35544 kotlin.TypeCastException has no message on Native
  • KT-52386 StackOverflowError during Kotlin/Native gradle build
  • KT-52592 NPE from KProperty.getExtensionDelegate on property delegated to another property
  • KT-52551 Delegating to object property reference does not invoke object's initializer
  • KT-51704 Contracts: "AssertionError: Arguments and parameters size mismatch" with companion object
  • KT-25527 False positive UNUSED_VALUE for delegated property/variable
  • KT-51002 [FIR] Hidden declaration hides visible one
  • KT-51008 [FIR] Star import does not work for nested calssifiers of java class
  • KT-52407 FIR: Star import has lower priority than built-in import
  • KT-52431 Reported error instead of warning due to empty intersection type found
  • KT-49394 Bad message and suggestion: The feature "unit conversion" is disabled
  • KT-51168 FIR: Inference error with Java interop and captured types
  • KT-49961 "AssertionError: Left expression was not processed: BINARY_EXPRESSION" when analyzing dangling [bracketed] expression inside elvis
  • KT-50108 Difference in fun interface conversion behavior for uninitialized not-null function values
  • KT-51889 Calls to super-classes constructors with context receivers fail on runtime
  • KT-51228 [FIR] Unresolved reference on callable reference on implicit this with smartcast
  • KT-52364 False positive for INFERRED_TYPE_VARIABLE_INTO_EMPTY_INTERSECTION
  • KT-52237 JVM / IR: "IllegalArgumentException: No argument for parameter VALUE_PARAMETER CONTINUATION_CLASS" when implementing Map interface on class with suspending functions
  • KT-50832 Method references to suspend inline functions are processed incorrectly
  • KT-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 fine
  • KT-47203 JVM Debugger: Parameter value doesn't change for tailrec function
  • KT-52131 False positive variable unused warning when calling inline function in finally block
  • KT-51738 Debugger: stepping over in inline function with multiple inline lambda invocations is incorrect
  • KT-52198 Losing reference to the value of an outer variable (Ref$ObjectRef) when using suspend inline with suspendCancellableCoroutine
  • KT-50994 FIR: AssertionError during inference of delegated properties with implicit types
  • KT-51757 FIR does not see various JS/Native specific declarations in common modules
  • KT-51201 FIR: ARGUMENT_TYPE_MISMATCH diagnostic contains generic parameter instead of the actual type
  • KT-48444 FIR: type argument rejected for annotation
  • KT-51754 JVM: Local variable table invalid for do-while with continue
  • KT-51936 Breakpoint not hit on last line of suspend function on Android
  • KT-27333 Forbid @Synchronized annotation on suspend functions
  • KT-51530 "StackOverflowError: CoroutineTransformerMethodVisitor.spillVariables" with data class in Flow
  • KT-51460 FIR: Protected property inaccessible from inner class

IDE

  • KT-52571 MPP Tasks on import are not up-to-date after subsequent launches
  • KT-47777 ISE thrown from KtLightClassForFacadeImpl.Companion.createForFacadeNoCache has wrong message.

IDE. FIR

  • KT-52360 FIR IDE: Make the fix of isInheritor method better
  • KT-51786 FIR IDE: IllegalStateException exception in Inspections' infrastructure
  • KT-52331 Analysis API: ArrayIndexOutOfBoundsException exception in Diagnostics' infrastructure

IDE. Gradle Integration

  • KT-47627 IDE import fails with com.intellij.util.lang.PathClassLoader error for runCommonizer 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 typescript
  • KT-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 boilerplate
  • KT-51123 Provide a way to add comments to generated JS
  • KT-48493 KJS / IR: Invalid d.ts for inner classes inside objects
  • KT-52553 KJS / IR: diamond hierarchy with super.toString produces stack overflow in runtime
  • KT-23252 JS: Unit materialization on declaration and assignment
  • KT-51128 Kotlin/JS - IR generate huge count of useless blocks
  • KT-50778 KJS/IR: Inline class has no field when building production distribution
  • KT-50157 KSJ IR: Applying identity equality operator to Chars always returns false
  • KT-38262 Javascript generation (and Typescript) fails on 'then', 'catch' and 'finally' (and others?) claiming they are reserved names
  • KT-51066 KJS / IR: suspend lambda parameter of value class is undefined
  • KT-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 context
  • KT-49264 Deprecate infix function calls of functions named "suspend" with dangling function literal

Libraries

  • KT-52932 Open-ended ranges in the standard library
  • KT-52909 Implement a walk extension function for java.nio.file.Path
  • KT-52910 Provide visit extension functions for java.nio.file.Path
  • KT-48232 Multiplatform function for computing cubic root
  • KT-52778 The documentation for the Duration does not indicate any differences from the ISO-8601
  • KT-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 Swift
  • KT-48558 Windres broken in new MinGW toolchain
  • KT-50983 Linker fails on Windows if add .res file with VERSIONINFO
  • KT-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 declaration
  • KT-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 documentation
  • KT-33117 Improve customizing Info.plist in produced frameworks
  • KT-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 GC
  • KT-52130 Kotlin/Native: use Xallocator for Kotlin objects only
  • KT-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 duplicated
  • KT-52380 Invalid path to compiler plugins should be reported as a compiler error
  • KT-51025 JVM CLI compiler takes class file from classpath instead of input java source file
  • KT-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 annotated
  • KT-52872 Mark supportsK2 in ComponentRegistrar.kt as JvmDefault to avoid compatibility problems
  • KT-52804 A function obtained by Fir IrBuiltins has an incorrect package
  • KT-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 them
  • KT-53244 Report from gradle about compiler plugins
  • KT-52839 Warn in Gradle log why incremental compilation failed
  • KT-46019 Compatibility with Gradle 7.1 release
  • KT-47047 Migrate Kotlin Gradle Plugin from using Gradle conventions
  • KT-52698 Don't add InspectClassesForMultiModuleIC task when new incremental compilation is enabled
  • KT-52867 Provide simplified JVM toolchain configuration method
  • KT-45747 Add basic JUnit 5 Kotlin Gradle Plugin Android tests setup

Tools. Gradle. Cocoapods

  • KT-53174 CocoaPods: Synthetic Podfile does not specify platform
  • KT-53127 "MaterialComponents normal armv7" in Cocoapods plugin between Kotlin 1.6.21 and 1.7.0
  • KT-44155 Cocoapods doesn't support pods without module map file inside
  • KT-49032 Cocoapods cinterop: some header files are not found

Tools. Gradle. JS

  • KT-52637 KJS / Gradle: Add SCSS webpack config
  • KT-51527 Kotlin/JS: BrowserXRun causes full-screen Webpack error "Compiled with problems: asset size limit/entrypoint size limit" for fresh Kotlin-React project from wizard
  • KT-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 annotation
  • KT-52741 MPP: klib outputs are not reproducible
  • KT-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-date
  • KT-52328 "ld: framework not found SQLCipher" linkDebugTestIosSimulatorArm64 error

Tools. Incremental Compile

  • KT-53168 Incremental compilation doesn't perform correctly after a few iterations
  • KT-52925 [IR BE] Non incremental build occurs after build failure for compileKotlinJs task
  • KT-52946 CompileKotlinJs task is executed non-incrementally if there were changes made to the dependant module
  • KT-52329 Reduce memory usage of classpath snapshot cache

Tools. JPS

  • KT-47824 'when expression must be exhaustive' isn't thrown during incremental compilation
  • KT-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' package
  • KT-47187 Kotlin ScriptEngine Failes to Compile a Trivial Statement After Failing to Compile a Broken One
  • KT-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

Don't miss a new kotlin release

NewReleases is sending notifications on new releases.