157 KiB
157 KiB
1.8.0
Analysis API
KT-50255Analysis API: Implement standalone mode for the Analysis API
Analysis API. FIR
KT-54292Symbol Light classes: implement PsiVariable.computeConstantValue for light fieldKT-54293Analysis API: fix constructor symbol creation when its accessed via type alias
Android
KT-53342TCS: New AndroidSourceSet layout for multiplatformKT-53013Increase AGP compile version in KGP to 4.1.3KT-54013Report error when using deprecated Kotlin Android Extensions compiler pluginKT-53709MPP, Android SSL2: Conflicting warnings forandroidTest/kotlinsource set folder
Backend. Native. Debug
KT-53561Invalid LLVM module: "inlinable function call in a function with debug info must have a !dbg location"
Compiler
New Features
KT-52817Add@JvmSerializableLambdaannotation to keep old behavior of non-invokedynamic lambdasKT-54460Implementation of non-local break and continueKT-53916Support Xcode 14 and new Objective-C frameworks in Kotlin/Native compilerKT-32208Generate method annotations into bytecode for suspend lambdas (on invokeSuspend)KT-53438Introduce a way to get SourceDebugExtension attribute value via JVMTI for profiler and coverage
Performance Improvements
KT-53347Get rid of excess allocations in parserKT-53689JVM: Optimize equality on class literalsKT-53119Improve String Concatenation Lowering
Fixes
KT-53465Unnecessary checkcast to array of reified type is not optimized since Kotlin 1.6.20KT-49658NI: False negative TYPE_MISMATCH on nullable type withwhenKT-48162NON_VARARG_SPREAD isn't reported on *toTypedArray() callKT-43493NI: False negative: no compilation error "Operator '==' cannot be applied to 'Long' and 'Int'" is reported in builder inference lambdasKT-54393Change in behavior from 1.7.10 to 1.7.20 for java field override.KT-55357IllegalStateException when reading a class that delegates to a Java class with a definitely-not-null type with a flexible upper boundKT-55068Kotlin Gradle DSL: No mapping for symbol: VALUE_PARAMETER SCRIPT_IMPLICIT_RECEIVER on JVM IR backendKT-51284SAM conversion doesn't work if method has context receiversKT-48532Remove old JVM backendKT-55065Kotlin Gradle DSL: Reflection cannot find class data for lambda, produced by JVM IR backendKT-53270K1: implement synthetic Enum.entries propertyKT-52823Cannot access class Thread.State after upgrading to 1.7 from 1.6.1 using -Xjdk-release=1.8KT-55108IR interpreter: Error occurred while optimizing an expression: VARARGKT-53547Missing fun IrBuilderWithScope.irFunctionReferenceKT-54884"StackOverflowError: null" caused by Enum constant name in constructor of the same Enum constantKT-47475"IncompatibleClassChangeError: disagree on InnerClasses attribute": cross-module inlined WhenMappings has mismatched InnerClassesKT-55013State checker use-after-free with XCode 14.1KT-54802"VerifyError: Bad type on operand stack" for inline functions on arraysKT-54707"VerifyError: Bad type on operand stack" in inline call chain on a nullable array valueKT-48678Coroutine debugger: disable "was optimised out" compiler featureKT-54745Restore KtToken constructors without tokenId parameter to preserve back compatibilityKT-54650Binary incompatible ABI change in Kotlin 1.7.20KT-52786Frontend / K2: IndexOutOfBoundsException when opting in to K2KT-54004Builder type inference does not work correctly with variable assignment and breaks run-timeKT-54581JVM: "VerifyError: Bad type on operand stack" with generic inline function andwheninside try-catch blockKT-53794IAE "Unknown visibility: protected/protected and package/" on callable reference to protected member of Java superclassKT-54600NPE on passing nullable Kotlin lambda as Java's generic SAM interface withsupertype boundKT-54463Delegating to a field with a platform type causes java.lang.NoSuchFieldError: value$delegateKT-54509Ir Interpreter: unable to evaluate string concatenation with "this" as argumentKT-54615JVM: Internal error in file lowering: java.lang.AssertionError: Error occurred while optimizing an expressionKT-53146JVM IR: unnecessary checkcast of null leads to NoClassDefFoundError if the type isn't available at runtimeKT-53712Add mode to prevent generating JVM 1.8+ annotation targets (TYPE_USE, TYPE_PARAMETER)KT-54366K2: no JVM BE specific diagnostics (in particular CONFLICTING_JVM_DECLARATIONS) in 1.8KT-35187NullPointerException on compiling suspend inline fun with typealias to suspend function typeKT-54275K2: "IllegalArgumentException: KtParameter is not a subtype of class KtAnnotationEntry for factory REPEATED_ANNOTATION"KT-53656"IllegalStateException: typeParameters == null for SimpleFunctionDescriptorImpl" with recursive generic type parametersKT-46727Report warning on contravariant usages of star projected argument from JavaKT-53197K2: 'init' hides member of supertype 'UIComponent' and needs 'override' modifierKT-53867K2:@JvmRecorddoes not compile to a java recordKT-53964K2 is unable to work with Java recordsKT-53349K2: TYPE_MISMATCH caused by non-local returnKT-54100"Type variable TypeVariable(P) should not be fixed" crash in code with errorsKT-54212K2: cannot calculate implicit property typeKT-53699K2: Exception during IR lowering in code with coroutinesKT-54192Warn about unsupported feature on generic inline class parametersKT-53723Friend modules aren't getting passed to cache build during box testsKT-53873K2: Duplicated diagnostics reported from user type ref checkersKT-50909"VerifyError: Bad type on operand stack" caused by smartcasting for nullable inline class property in classKT-54115Restore Psi2IrTranslator constructor from 1.7.20KT-53908K2: Self-referencing generics in Java class causes New Inference Error (IE: class Foo<T extends Foo>)KT-53193K2: compile error on project that compiles fine with normal 1.7.10KT-54062K2 Invalid serialization for type-aliased suspend function type with extension receiverKT-53953Forbid usages of super or super if in fact it accesses an abstract memberKT-47473NI: Missed UPPER_BOUND_VIOLATED diagnostics if use type aliases with type parametersKT-54049K2: false positive MANY_IMPL_MEMBER_NOT_IMPLEMENTEDKT-30054Wrong approximation if nullable anonymous object with implemented interface is usedKT-53751Postpone IgnoreNullabilityForErasedValueParameters featureKT-53324Implement Enum.entries lowering on K/NKT-44441K2: report redeclaration error if there is a Java class with the same name as the Kotlin classKT-53807No warning about declaringClass on an enum valueKT-53493K2:val on function parametercounts as just warningKT-53435K2: "IllegalArgumentException: class KtValueArgument is not a subtype of class KtExpression for factory ANNOTATION_ARGUMENT_MUST_BE_CONST" if string in nested annotation is concatenatedKT-52927AssertionError: LambdaKotlinCallArgumentImplKT-53922Make Enum.entries unstable feature to poison binariesKT-53783Exception during psi2ir when declaring expect data objectKT-53622[OVERLOAD_RESOLUTION_AMBIGUITY] when enum entry called 'entries' is present in K2KT-41670JVM IR: AbstractMethodError when using inheritance for fun interfacesKT-53178K2: implement diagnostics for serialization pluginKT-53804Restore old and incorrect logic of generating InnerClasses attributes for kotlin-stdlibKT-52970Default value constant in companion object works on JVM and JS, but fails on nativeKT-51114FIR: Support DNN checksKT-27936Write InnerClasses attribute for all class names used in a class fileKT-53719Parsing regression on function call with type arguments and labeled lambdaKT-53261Evaluate effect from inline for primitive typesKT-53706K2: Context receivers are not resolved on properties during type resolution stageKT-39492Kotlin.Metadata's packageName field cannot be an empty stringKT-53664Ir Interpreter: unable to evaluate name of function reference marked with JvmStatic from another moduleKT-52478[Native] Partial linkage: Building native binary from cached KLIBs fails if one library depends on removed nested callable member from another oneKT-48822CompilationException: Back-end (JVM) Internal error: Failed to generate expression: KtProperty - ConcurrentModificationExceptionKT-50281IllegalStateException: unsupported call of reified inlined functionKT-50083Different error messages in android and JVM (Intrinsics.checkNotNullParameter).KT-53236Support Enum.entries codegen on JVM/IR BEKT-41017FIR: should we support smartcast after null checkKT-53202"ISE: Descriptor can be left only if it is last" after direct invoke optimization on a capturing lambdaKT-46969@BuilderInferencewith nested DSL scopes cause false-positive scope violation in Kotlin 1.5KT-53257FIR: Improper context receiver argument is chosen when there are two extension receiver candidatesKT-53090Anonymous function and extension function literals are generated as classes even with -Xlambdas=indyKT-53208K2: Cannot get annotation for default interface method parameter when compiled with-Xuse-k2KT-53184K2: NoSuchMethodError on KProperty1.get() referenced via nullable typealiasKT-53198K2: Return type mismatch: expected kotlin/Unit, actual kotlin/Unit?KT-53100Optimization needed: (CONSTANT_PRIMITIVE(x: T?)) => xKT-49875[FIR] Support infering PRIVATE_TO_THIS visibilityKT-53024Refactor FIR renderer to composable architectureKT-50995[FIR] Support SAM with receiver pluginKT-53148K1: introduce warning for inline virtual member in enumKT-49847Devirtualization fails to eliminate boxing in function reference contextKT-52875Extension function literal creation with-Xlambdas=indyfails with incorrect argumentsKT-53072INVALID_IF_AS_EXPRESSION error isn't shown in the IDE (LV 1.8)KT-52985Native: a function with typeT?returned akotlin.Unitinstead ofnullKT-52020FIR warning message includes internal renderingKT-48778-Xtype-enhancement-improvements-strict-mode not respecting@NonNullannotation for property accesses?
IDE
Fixes
KTIJ-22357CCE “class org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl cannot be cast to class org.jetbrains.kotlin.fir.types.FirResolvedTypeRef” in K2KT-55150Argument for@NotNullparameter 'scope' of org/jetbrains/kotlin/resolve/AnnotationResolverImpl.resolveAnnotationType must not be nullKTIJ-22165IDE notification to promote users to migrate to the new Kotlin/JS toolchainKTIJ-22166IDE notification (or something else) about JPS and Maven support for Kotlin/JS is deprecatedKT-53543Rework light classes for file facadeKT-48773Investigate the possibility of removing dependency on old JVM backend in light classesKTIJ-19699IDE: False positive type mismatch in Java code for Kotlin nested class non-direct inheritor from external libraryKT-51101FIR IDE: Exception on "Show Type Info" actionKTIJ-22295MPP, IDE: False positive UPPER_BOUND_VIOLATED when JVM module implements the generic interface from MPP module and the type parameter is not equal to itself.KT-51656FIR IDE: ProgressCancelled exception is masked in the compiler during resolveKT-51315FIR IDE: move out base modules from fe10 plugin to reuse in k2 pluginKTIJ-22323K2: ISE during resolve of stdlib calls from the stdlibKTIJ-21391Generate -> Override methods : don't delegate to abstract methodsKT-53097Extract common part of light classes to another moduleKTIJ-22354FIR LC: annotation owner is always nullKTIJ-22157Kotlin call resolver leaks user code when reporting exception
IDE. Completion
KTIJ-22552Kotlin: 'for loop' postfix completion doesn't work - "Fe10SuggestVariableNameMacro must be not requested from main classloader"KTIJ-22503Support code completion for data objects
IDE. Debugger
KT-51755Compilation exception with scripting compilation during debug sessionKTIJ-21963Debugger / IR: Expression evaluation of the debugger doesn't work
IDE. Decompiler, Indexing, Stubs
KTIJ-22750Initialize Kotlin stub element types lazilyKTIJ-18094IDE: "AssertionError: Stub count doesn't match stubbed node length" with minified Android AAR libraryKTIJ-17632IndexOutOfBoundsException: Cannot decompile a class located in minified AAR
IDE. Gradle Integration
KT-48135In the IDE import, reuse dependency granular source set KLIBs across multi-project build to avoid duplicate external librariesKTIJ-22345False positive unresolved reference for members of subclasses of expect classes.KT-53514HMPP: False positive forNone of the following functions can be called with the arguments supplied.with Enum in common moduleKT-51583Gradle 7.4+ | SamplesVariantRule interference: Could not resolve all files for configuration ':kotlinKlibCommonizerClasspath'KTIJ-21077Dependency matrix does not work with Jetpack compose / multiplatform projects
IDE. Inspections and Intentions
KTIJ-19531Adapt changes about new rules for method implementation requirementsKTIJ-22087Support IDE inspections for upcoming data objectsKTIJ-20510Quick fix to implement and call correct super method in case of inheritance with defaultsKTIJ-20170Provide quickfix for deprecated resolution to private constructor of sealed classKTIJ-22630FIR IDE: Lazy resolve exception after invocation ofOverride membersaction on value classKT-49643Intentions: "Implement members" fails when base type function declaration uses unresolved generic types
IDE. JS
KTIJ-22167Make JS IR default in projects created by wizardKTIJ-22332Wizard: Kotlin/JS projects: cssSupport DSL should be updated
IDE. KDoc
KTIJ-22324K2 IDE: implement reference resolve inside KDocs
IDE. Multiplatform
KTIJ-19566New Project Wizard: Update HMPP-related flags in multiplatform wizards
IDE. Navigation
KT-51314FIR IDE: show Kotlin declarations in search symbolKTIJ-22755Find usage for constructor from kotlin library doesn't work for secondary constructor usages
IDE. Script
KTIJ-22598Add warning for standalone scripts in source rootsKT-54325.settings.gradle.kts and .init.gradle.kts are reported as standalone scripts
IDE. Structural Search
KTIJ-21986KSSR: "CodeFragment with non-kotlin context should have fakeContextForJavaFile set: originalContext = null" warning shows up when replacing
IDE. Tests Support
KT-50269FIR IDE: Allow running tests via gutter
IDE. Wizards
KTIJ-23537Wizard: projects with Android modules require higher sdkCompileVersionKTIJ-23525Wizard: Compose multiplatform: project won't build and require higher compileSdkVersionKTIJ-22763New Project Wizard: remove deprecated Android extensions plugin from Android target in the project constructorKTIJ-22481Wizard: Kotlin -> Browser application (gradle groove). Build error
JavaScript
Fixes
KT-55097KJS / IR + IC: Using an internal function from a friend module throws an unbound symbol exceptionKT-54406Kotlin/JS: build with dependencies fails with "Could not find "kotlin" in [~/.local/share/kotlin/daemon]"KT-53074Make JS IR BE default in toolchain (gradle & CLI)KT-50589UTF-8 Instability in kotlin.js.mapKT-54934KJS / IR + IC: Suspend abstract function stubs are generated with unstable lowered ic signaturesKT-54895KJS / IR + IC: broken cross module references for function default param wrappersKT-54520KJS / IR Allow IdSignature clashesKT-54120JS IR + IC: pointless invalidation of dependent code after modifying companionsKT-53986KJS / IR + IC: compiler produces different JS file names with IC and without ICKT-54010JS IR + IC: Force IC cache invalidation after updating language version or featuresKT-53931KJS / Gradle: Regression with 1.7.20-RC: ReferenceError: println is not definedKT-53968Kotlin/JS: no UninitializedPropertyAccessException on access to non-initialized lateinit property defined in dependenciesKT-54686KJS / IR: Incorrect generation of signatures when one of argument is nested classKT-54479KJS / IR + IC: Adding or removing companion fields leads java.lang.IllegalStateException in the compiler IC infrastructureKT-54382KJS / IR: Wrong type check for inheritors of suspend functionsKT-54323KJS / IR + IC: Intrinsics from stdlib may lose their dependencies in incremental rebuildKT-53361KJS / IR: No debug info is generated for in-line js codeKT-53321Implement Enum.entries lowering on JS/IRKT-53112KJS IR turn on IC infra by defaultKT-50503Kotlin/JS: IR + IC: compileTestDevelopmentExecutableKotlinJs fails with ISE: "Could not find library" after removing module dependencyKT-54011JS IR + IC: EnumEntries don't work well when IC is enabledKT-53672KJS / IR: "IndexOutOfBoundsException: Index 0 out of bounds for length 0" caused by function reference to extension function of reified type variableKT-43455KJS: IR. Incremental compilation problem with unbound symbolsKT-53539KJS: Exported class inherited non-exported class shows warningKT-53443KJS/IR: NullPointerException caused by anonymous objects inside lambdasKT-52795K/JS and K/Native IR-validation/compilation errors for a valid kotlin codeKT-52805KJS/IR: Invalid call of inline function inalsoblockKT-51151KJS / IR: Wrong overloaded generic method with receiver is calledKT-52830KJS/IR: Sourcemap disabling doesn't workKT-52968KJS / IR: Buggy generation of overridden methodsKT-53063KJS / IR + IC: undefined cross module reference for implemented interface functionsKT-51099KJS / IR + IC: Cache invalidation doesn't check generic class variance annotations (in, out)KT-51090KJS / IR + IC: Cache invalidation doesn't check suspend qualifierKT-51088KJS / IR + IC: Cache invalidation doesn't check class qualifiers (data, inline)KT-51083KJS / IR + IC: Cache invalidation doesn't check inline function which was non inline initiallyKT-51896KJS / IR + IC: Cache invalidation doesn't trigger rebuild for fake overridden inline functions
Language Design
KT-48385Deprecate confusing grammar in when-with-subjectKT-48516Forbid@Synchronizedannotation on suspend functionsKT-41886Ability to require opt-in for interface implementation, but not for usageKT-34943OVERLOAD_RESOLUTION_AMBIGUITY inconsistent with the equivalent Java codeKT-51334Implement type-bound labelthis@Type
Libraries
New Features
KT-21007Provide Kotlin OSGI Bundle with extensions for JRE8 (and JRE7)KT-54082Comparable and subtractible TimeMarksKT-52928Provide copyToRecursively and deleteRecursively extension functions for java.nio.file.PathKT-49425Update OptIn documentation to reflect latest design changesKT-54005Allow callingdeclaringJavaClasson EnumKT-52933rangeUntil members in built-in types
Performance Improvements
KT-53508Cache typeOf-related KType instances when kotlin-reflect is used
Fixes
KT-51907Switch JVM target of the standard libraries to 1.8KT-54835Document that Iterable.all(emptyCollection) returns TRUE.KT-54168Expand on natural order in comparator docsKT-53277Stabilize experimental API for 1.8KT-53864Review deprecations in stdlib for 1.8KT-47707Remove the system property and the brittlecontainsoptimization code itselfKT-52336Different behavior on JVM and Native in stringBuilder.append(charArray, 0, 1)KT-53927Remove deprecation from ConcurrentModificationException constructorsKT-53152Introduce EnumEntries to stdlib as backing implementation of Enum.entriesKT-53134stdlib > object Charsets > not thread safe lazy initializationKT-51063Gradle project with JPS runner: "JUnitException: Failed to parse version" JUnit runner internal error with JUnitKT-52908Native: setUnhandledExceptionHook swallows exceptions
Native
KT-51043Kotlin Native: ObjC-Interop: kotlin.ClassCastException: null cannot be cast to kotlin.Function2KT-50786Native: prohibit suspend calls inside autoreleasepool {}KT-52834Implement test infrastructure for K2/Native
Native. C Export
KT-36878Reverse C Interop: incorrect headers generation for primitive unassigned type arraysKT-53599[Reverse C Interop] Provide box/unbox API for unsigned primitive typesKT-41904Kotlin/Native : error: duplicate member for interface and function with the same nameKT-42830[Reverse C Interop] Add API to get value of boxed primitivesKT-39496K/N C: optional unsigned types as function parameters crash the compilerKT-39015Cannot compile native library with nullable inline class
Native. C and ObjC Import
KT-54738Cocoapods cinterop: linking platform.CoreGraphics packageKT-54001Kotlin/Native: support header exclusion in cinterop def filesKT-53151Native: Custom declarations in .def don't work with modules, only headers
Native. ObjC Export
KT-53680Obj-C refinement annotationsKT-54119Native: runtime assertion failed due to missing thread state switchKT-42641Don't export generated component* methods from Kotlin data classes to Obj-C header
Native. Platform Libraries
KT-54225Native: update to Xcode 14.1KT-54164Native: commonizer fails on CoreFoundation typesKT-39747Why is there no WinHttp API in Kotlin/Native's Windows API?
Native. Runtime
KT-49228Kotlin/Native: Allow to unset unhandled exception hookKT-27305Fix FILE macro insideRuntimeCheckandRuntimeAssert
Native. Runtime. Memory
KT-54498Deprecation message of 'FreezingIsDeprecated' is not really helpfulKT-53182New memory manager: Unexpected memory usage on IOS
Native. Stdlib
KT-52429Small Usability Improvements for Worker API
Reflection
KT-54629Incorrectly cached class classifierKT-54611KTypeImpldoes not take into account class loader from theclassifierpropertyKT-48136MakeReflection.getOrCreateKotlinPackageuse cache whenkotlin-reflectis usedKT-50705Use ClassValue to cache KClass objects in kotlin-reflectKT-53454Properly cache the same class's KClass when it's loaded by multiple classloaders in getOrCreateKotlinClass
Specification
KT-54210Update Kotlin specification to mention that since 1.8 generics in value classes are allowed
Tools. CLI
KT-54116Add JVM target bytecode version 19KT-53278Support values 6 and 8 for -Xjdk-releaseKT-46312CLI: Kotlin runner should use platform class loader to load JDK modules on Java 9+
Tools. Commonizer
KT-54310Commonizer fails on 1.8.0-dev K/N distributionsKT-48576[Commonizer] platform.posix.pselect not commonized in Ktor
Tools. Compiler Plugins
KT-46959Kotlin Lombok: Support generated builders (@Builder)KT-53683Unresolved reference compilation error occurs if a file is annotated with@Singular and has any guava collection type : ImmutableTable, ImmutableList or elseKT-53657[K2] Unresolved reference compilation error occurs if a field is annotated with@Singular and has type NavigableMap without explicit types specificationKT-53647[K2] Unresolved reference compilation error occurs if a field is annotated with@Singular and has type Iterable<>KT-53724Param of the@Singular lombok annotation ignoreNullCollections=true is ignored by kotlin compilerKT-53451[K2] References to methods generated by@With lombok annotation can't be resolved with enabled K2 compilerKT-53721[K2] There is no compilation error while trying to add null as a param of the field with non-null typeKT-53370Kotlin Lombok compiler plugin can't resolve methods generated for java boolean fields annotated with@With annotation
Tools. Compiler plugins. Serialization
KT-54878JVM/IR: java.lang.ClassCastException: class org.jetbrains.kotlin.ir.types.impl.IrStarProjectionImpl cannot be cast to class org.jetbrains.kotlin.ir.types.IrTypeProjection on serializer<Box<*>>()KT-55340Argument for kotlinx.serialization.UseSerializers does not implement KSerializer or does not provide serializer for concrete typeKT-55296Improve exceptions in serialization pluginKT-55180KJS: regression in serialization for Kotlin 1.8.0-betaKT-53157Recursion detected in a lazy value under LockBasedStorageManager in kotlinx.serializationKT-54297Regression in serializable classes with star projectionsKT-49660kotlinx.serialization: IndexOutOfBoundsException for parameterized sealed classKT-43910JS IR: Serialization with base class: "IndexOutOfBoundsException: Index 0 out of bounds for length 0"
Tools. Daemon
KT-52622Kotlin/JS, Kotlin/Common compilations start Kotlin daemon incompatible with Kotlin/JVM compilation on JDK 8
Tools. Gradle
New Features
KT-27301Expose compiler flags via Gradle lazy propertiesKT-53357Change single build metrics propertyKT-50673Gradle: KotlinCompile task(s) should use@NormalizeLineEndingsKT-34464Kotlin build report path not clickable in the IDE
Performance Improvements
KT-51525[Gradle] Optimize evaluating args for compile tasksKT-52520Remove usage of reflection from CompilerArgumentsGradleInput
Fixes
KT-48843Add ability to disable Kotlin daemon fallback strategyKT-55334kaptGenerateStubs passes wrong android variant module names to compilerKT-55255Gradle: stdlib version alignment fails build on dynamic stdlib version.KT-55363[K1.8.0-Beta] Command line parsing treats plugin parameters as source filesKT-54993Raise kotlin.jvm.target.validation.mode check default level to error when build is running on Gradle 8+KT-54136Duplicated classes cause build failure if a dependency to kotlin-stdlib specified in an android projectKT-50115Setting toolchain via Java extension does not configure 'kotlinOptions.jvmTarget' value when Kotlin compilation tasks are created eagerlyKT-55222Migrate AndroidDependencyResolver to the new Gradle APIKT-55119There is no validation for different jvmTarget and targetCompatibility values in multiplatform projects with jvm target and used java sourcesKT-55102Compile java task fails with different target version in pure kotlin projectKT-54995[1.8.0-Beta] compileAppleMainKotlinMetadata fails on default parameters withNo value passed for parameter 'mustExist'KT-35003Automatically set targetCompatibility for kotlin-jvm projects to work with gradle 6 metadataKT-45335kotlinOptions.jvmTarget conflicts with Gradle variantsKT-48798Android: going from one to more than one productFlavor causes inputs of commonSourceSet$kotlin_gradle_plugin property of compileKotlin task to changeKT-55019Gradle sync: UnknownConfigurationException when adding implementation dependencies to a Kotlin with Java compilationKT-55004jvmTarget value is ignored by depending modules if a task "UsesKotlinJavaToolchain" is configured for all project modules using allProjects {}KT-54888Add Gradle property to suppress kotlinOptions.freeCompilerArgs modification on execution phaseKT-54399Undeprecate 'kotlinOptions' DSLKT-54306Change the naming of newly added Compiler*Options classes and interfacesKT-54580KotlinOptions in AbstractKotlinCompilation class are deprecatedKT-54653java.lang.NoClassDefFoundError: kotlin/jdk7/AutoCloseableKt exception if a dependency to the kotlin-stdlib is addedKT-52624Compatibility with Gradle 7.3 releaseKT-54703Stdlib substitution does not work with JPMS modulesKT-54602Prevent leaking Gradle Compile DSL types into compiler cli runtimeKT-54439Project failed to sync Native LaguageSettings to compiler options in afterEvaluateKT-53885Bump minimal supported Gradle version to 6.8.3KT-53773Protect and system properties can contain sensitive dataKT-53732Add custom values limits for build scan reportsKT-52623Compatibility with Gradle 7.2. releaseKT-51831Gradle: removekotlin.compiler.execution.strategysystem propertyKT-51679Change deprecation level to error for KotlinCompile setClasspath/getClasspath methodsKT-54335Kotlin build report configuration. There is no validation for SINGLE_FILE output if the required kotlin.build.report.single_file property is empty or absentKT-54356Kotlin build report configuration. Wrong path is used for the property kotlin.internal.single.build.metrics.fileKT-53617KotlinCompilerExecutionStrategy value is ignored by depending modules if configure once for all project modules using allProjects {}KT-53823Kotlin Gradle Plugin uses deprecated Gradle API: Provider.forUseAtConfigurationTime()KT-54142Increase Kotlin Gradle plugin Gradle target API to 7.5KT-50161Android variant filter breaks KotlinCompile cache compatibilityKT-54113LanguageSettings to KotlinNativeLink.toolOptions sync are executed on the wrong contextKT-53830Versions of kotlin-stdlib-jdk8 and kotlin-stdlib-jdk7 aren't overrided if added as transitive dependencies to kotlin-stdlibKT-54112Missing target input on KotlinNativeLink taskKT-45879Documentation: Wrong kotlin languageVersion "1.6 (EXPERIMENTAL)"KT-54103Remove JvmTarget.JVM_1_6 from generated Gradle compiler typeKT-52959KMP code is breaking Gradle project isolationKT-50598MULTIPLE_KOTLIN_PLUGINS_SPECIFIC_PROJECTS_WARNING is only shown on first buildKT-53246Gradle: Special characters in paths of errors and warnings should be escapedKT-47730How to avoid stdlib coming from Kotlin gradle pluginKT-52209Corrupted cache and non-incremental build if produce caches "in process" and restore then compiling with kotlin daemonKT-41642"TaskDependencyResolveException: Could not determine the dependencies" when trying to apply stdlibKT-53390Drop usage of -Xjava-source-roots when passing java sources required for Kotlin compilationKT-52984Kotlin Gradle plugin is misbehaving by resolving DomainObjectCollection earlyKT-38622Non-incremental compilation because of R.jar with Android Gradle plugin 3.6KT-38576AnalysisResult.RetryWithAdditionalRoots crashes during incremental compilation with java classes in classpath
Tools. Gradle. Cocoapods
KT-54314Cocoapods: Signing pod dependency for Xcode 14KT-54060Xcode 14: disable bitcode embedding for Apple frameworksKT-53340Change default linking type for frameworks registered by cocoapods pluginKT-53392Deprecate and delete downloading pod dependencies by direct linkKT-53695Build of macOS application fails if a framework is integrated via Cocoapods plugin
Tools. Gradle. JS
KT-53367KJS: Migrate cssSupport APIKT-45789KJS / IR: Transitive NPM dependencies are not included in PublicPackageJsonTask outputKT-55099K/JS: Second declaration of JS target without compiler type report warning incorrectlyKT-52951[KGP/JS] Browser test target registration via propertiesKT-52950KJS: Report if yarn.lock was updated during builtKT-53374KJS / Gradle: Implement IDEA sync detection logic via ValueSource to improve configuration cache supportKT-53381Kotlin/JS: with erased kotlin-js-store/ and reportNewYarnLock = true the task kotlinUpgradeYarnLock always failsKT-53788KJS / Gradle: Disable Gradle build cache for KotlinJsDce when development mode is enabledKT-53614Kotlin/JS upgrade npm dependencies
Tools. Gradle. Multiplatform
New Features
KT-53396Support 'implementation platform()' by gradle kotlin mpp plugin for JVM targetKT-40489MPP / Gradle: support BOM (enforcedPlatform) artifacts in source set dependencies DSL
Performance Improvements
KT-52726[MPP] Optimize caching/performance/call-sites of 'compilationsBySourceSets'
Fixes
KT-54634MPP: Test Failure causes:KotlinJvmTest$Executor$execute$1 does not define failureKT-35916Gradle MPP plugin: Configurations for a main compilation and its default source set have different namingKT-46960Repeated kotlin/native external libraries in projectKT-27292MPP: jvm { withJava() }: Gradle build: Java source under Kotlin root is resolved while building, but does not produce output class filesKT-34650Naming clash in MPP+Android: androidTest vs androidAndroidTestKT-54387Remove MPP alpha stability warningKT-31468Targets disambiguation doesn't work if a depending multiplatform module useswithJava()modeKT-54090Take an Apple test device from the device listKT-54301KotlinToolingVersionOrNull: IllegalArgumentExceptionKT-53256Implement K/N compiler downloading for KPMKT-45412KotlinCompilation: Make sure .kotlinSourceSets and .allKotlinSourceSets include the default source setKT-49202Tests on android target can't be executed in multiplatform project if dependency to kotlin-test framework is provided as a single dependency and tests configured to be executed via Junit5
Tools. Gradle. Native
New Features
KT-43293Support Gradle configuration caching with Kotlin/NativeKT-53107Add arm64 support for watchOS targets (Xcode 14)
Fixes
KT-53704Native cinterop: eager header path calculationKT-54814Kotlin/Native: Github Actions: Testing watchOSX64 with Xcode 14 — Invalid device: Apple Watch Series 5KT-54627Native: :commonizeNativeDistribution with configuration cache enabled fails even when set to warn on JDK 17KT-54339Link tasks fail if Gradle Configuration Cache is enabledKT-53191Native cinterop sync problem with gradleKT-54583watchosDeviceArm64 target shouldn't register test tasksKT-52303Gradle / Native: Build tasks ignore project.buildDirKT-54442Gradle iOS test tasks fail if a device is not selected explicitlyKT-54177Gradle: DeprecateenableEndorsedLibsflagKT-47355Support macos target for FatFramework taskKT-53339MPP / CocoaPods: The static framework fails to install on a real iOS deviceKT-31573Missing description for Native Gradle tasksKT-53131Gradle Sync: "NoSuchElementException: Array contains no element matching the predicate" with CocoaPodsKT-53686Task assembleReleaseXCFramework fails with "error: the path does not point to a valid framework" if project name contains a dash
Tools. Incremental Compile
KT-54144New IC: "IllegalStateException: The following LookupSymbols are not yet converted to ProgramSymbols" when changing an inline function with custom JvmNameKT-53871New IC: "IllegalStateException: The following LookupSymbols are not yet converted to ProgramSymbols" when changing an inline property accessorKT-19804Relocatable IC caches
Tools. JPS
KT-45474False positive NO_ELSE_IN_WHEN on sealed class with incremental compilationKT-54228Switching abstract to sealed classes causes incremental issueKT-38483JPS: Stopping compilation causes IDE CompilationCanceledExceptionKT-50310False positive NO_ELSE_IN_WHEN on incremental build when adding sealed classesKT-48813Move cache version to compilerKTIJ-921JPS: FileNotFoundException on project build in mixed Kotlin/Scala project
Tools. Kapt
KT-54187JVM IR + kapt: incorrect modifierfinalis generated for nested enum in interfaceKT-48827Remove 'kapt.use.worker.api' property
Tools. Scripts
KT-54355Scripts: Internal compiler error (languageVersion=1.9)KT-53009Scripting: NDFDE “Descriptor wasn't found for declaration SCRIPT” on using script definition with kotlin from master
1.7.21
Compiler
KT-54463Delegating to a field with a platform type causes java.lang.NoSuchFieldError: value$delegateKT-54509Ir Interpreter: unable to evaluate string concatenation with "this" as argumentKT-54004Builder type inference does not work correctly with variable assignment and breaks run-timeKT-54393Change in behavior from 1.7.10 to 1.7.20 for java field override.KT-54615JVM: Internal error in file lowering: java.lang.AssertionError: Error occurred while optimizing an expressionKT-54581JVM: "VerifyError: Bad type on operand stack" with generic inline function andwheninside try-catch blockKT-53146JVM IR: unnecessary checkcast of null leads to NoClassDefFoundError if the type isn't available at runtimeKT-54600NPE on passing nullable Kotlin lambda as Java's generic SAM interface withsupertype boundKT-54707"VerifyError: Bad type on operand stack" in inline call chain on a nullable array valueKT-54650Binary incompatible ABI change in Kotlin 1.7.20KT-54802"VerifyError: Bad type on operand stack" for inline functions on arrays
Native. Runtime. Memory
KT-54498Deprecation message of 'FreezingIsDeprecated' is not really helpful
Tools. Gradle. Multiplatform
KT-54387Remove MPP alpha stability warningKT-48436False positive "The Kotlin source set androidAndroidTestRelease was configured but not added to any Kotlin compilation"
Tools. JPS
KT-45474False positive NO_ELSE_IN_WHEN on sealed class with incremental compilation
1.7.20
Analysis API
KT-52667FIR IDE: fun interfaces (SAM interfaces) are not properly resolvedKT-52136FIR: Implicit type declaration from the other module cannot be used for overloading
Analysis API. FE1.0
KT-51962Analysis API: Finish Analysis API for FE1.0
Analysis API. FIR
KT-52779FIR IDE: Import Optimizer cannot handle generic type qualifiersKT-50236Fix OOB modification trackers for non-Kotlin codeKT-51240Analysis API: KtAnalysisSession for a specific module cannot create a symbol for PSI that cannot be seen from that module.KT-50868Analysis API: decompiled type aliases are not resolved
Compiler
KT-53739Builder inference, extension hides membersKT-53733Kotlin/Native: update source documentation for the new default memory managerKT-53667Compiler crashes on attempt to alloc a string on the stack in new MMKT-53480Internal error in file lowering: java.lang.ClassNotFoundException: com.android.systemui.R$stringKT-52843Compose: NPE at Parameters.getParameterByDeclarationSlot if inline function with default arguments takes a lambda which captures value class represented by LongKT-53475Kotlin/Native for iOS: "IllegalArgumentException: Sequence has more than one element"
New Features
KT-52495Support until operator in back-endsKT-52420Implement resolve of until operatorKT-52419Implement until operator in the parserKT-33755Kotlin/Native: Provide a way to customize a bundle Identifier of a generated frameworkKT-51665FIR: implement label resolve for "typed this" caseKT-52361Report warning on potentially empty intersection types
Performance Improvements
KT-47816Disable script discovery for non-script environmentsKT-48635JVM IR: Double/Float values are boxed when comparing for equality in equals method of data/value classesKT-23397Optimize out field for property delegate when it's safe (JVM)
Fixes
KT-53272Backend Internal error: Exception during IR lowering / No such value argument slot: 2KT-53124Receiver type mismatch when combining extension properties, type projections, Java sources, and F-bounded type-variablesKT-51868JVM / IR: Inconsistent behaviour between lambda expression and SAM interface conversion for the same interfaceKT-36770Prohibit unsafe calls with expected@NotNullT and given Kotlin generic parameter with nullable boundKT-52974"IllegalStateException: Symbol with IrSimpleFunctionSymbolImpl is unbound" compiling native targets of MPP projectKT-53007JVM: "Bad invokespecial instruction: current class isn't assignable to reference class" when call superclass of outer class method from inner classKT-53019K2: cannot cast callable reference to Function1 in runtimeKT-53031K2 compiler crashes with IllegalStateException: No type in ProtoBuf.ValueParameterKT-29168Prohibit upper bounds violation with generic typealias using not all type parameters as arguments for underlying type in supertypesKT-52432Using the IDE compiled with K2 (useFir) throws VerifyError exceptionKT-52327False negative: TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM isn't reportedKT-49682Support JVM IR in KAPT stub generationKT-24643Prohibit using a type parameter declared for an extension property inside delegateKT-51972FIR, Gradle: "Symbol is invisible" compilation error with enabled Kotlin Lombok compiler pluginKT-52011[FIR] All-open compiler plugin isn't supportedKT-51950JVM IR: "IndexOutOfBoundsException: Cannot pop operand off an empty stack" with crossinline lambdas and interface delegationKT-52540Native: kotlin.NotImplementedError with Arrow libraryKT-48031"IllegalStateException: Type variable TypeVariable(T) should not be fixed!"KT-47708RequiresOptIn check does not flag experimental method usage in SAM lambda expressionsKT-52913JVM / IR: "IllegalArgumentException: Inline class types should have the same representation" when trying to down cast cast a value classKT-50771IR partial linkage: Removed abstract callable members are not supportedKT-52994Enable generic inline classes as experimental featureKT-52742CYCLE_IN_ANNOTATION_PARAMETER_ERROR false positive on annotations with default valuesKT-52743Non-null generic functions throws NPE when assigned to valKT-52745Frontend / K2: "IncompatibleClassChangeError: class A$B overrides final method A.length()I" caused by delegation in a sealed classKT-52832Tree-generator's method FirExpression::isFirType returns true and false for different field names; it should always be trueKT-52403IncompatibleClassChangeError when inlining suspend funsKT-50107Missed USAGE_IS_NOT_INLINABLE diagnostic: Leaking inline lambda parameter through extension receiverKT-47965Missed USAGE_IS_NOT_INLINABLE diagnostic on inline lambda parameter usage as receiver of .let callKT-25787No error on crossinline usage of receiver parameter of functional type in an inline functionKT-52762Frontend / K2: Named arguments for Java classes lead to "Cannot find a parameter with this name"KT-52680K2: overload resolution ambiguity ifthisis casted in a different methodKT-52676K2: Unsupported compile-time value IrGetFieldImpl instead of IrConst in AnnotationCodegen for constant from JavaKT-50293False positive: USELESS_CAST on stub typesKT-52175WRONG_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-49507JVM: "IllegalAccessError: class X tried to access private field" with same-named Kotlin property and Java base class fieldKT-44512FIR DFA: incorrect smartcast after null assignment inside a lambdaKT-49200FIR/FE 1.0: different behavior with multiple matching star importsKT-52718declaringClass deprecation message mentions the wrong replacement in 1.7KT-52190FIR2IR: Unexpected IrErrorTypeImpl type for put method inside buildMapKT-52197Incorrect inference of var type inside lambda that passed to extension function with type parameters that defined inside this lambdaKT-52057Unsupported compile-time value STRING_CONCATENATION and GET_FIELD in annotation argumentsKT-47823JVM IR: "IllegalArgumentException: Inline class types should have the same representation" withbreakusage in the loop rangeKT-51883Kotlin 1.6.20 generates "-" in type names around lambdas and inline extension function with reified type which breaks Apache BeamKT-52684Syntax error regression on complicated combination of LT and GTEQKT-52417Reflection: Can't reflect on type parameters captured by SAM converted lambdaKT-46797JVM IR: suspendImpl has no generic signature, breaking reified types in anonymous object supertypes when using the type token patternKT-51464FIR: Unable to infer type in coroutines flow codeKT-52163JVM IR: Double.compareTo(Int) compiled to integer comparisonKT-41980FIR: erroneous scope during annotation resolveKT-47159KtPsiUtils.areParenthesesUseless()is returning a false positive on expressions for interface delegationKT-51418Substitute anonymous type's supertypesKT-35544kotlin.TypeCastException has no message on NativeKT-52386StackOverflowError during Kotlin/Native gradle buildKT-52592NPE from KProperty.getExtensionDelegate on property delegated to another propertyKT-52551Delegating to object property reference does not invoke object's initializerKT-51704Contracts: "AssertionError: Arguments and parameters size mismatch" with companion objectKT-25527False 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-52407FIR: Star import has lower priority than built-in importKT-52431Reported error instead of warning due to empty intersection type foundKT-49394Bad message and suggestion: The feature "unit conversion" is disabledKT-51168FIR: Inference error with Java interop and captured typesKT-49961"AssertionError: Left expression was not processed: BINARY_EXPRESSION" when analyzing dangling [bracketed] expression inside elvisKT-50108Difference in fun interface conversion behavior for uninitialized not-null function valuesKT-51889Calls to super-classes constructors with context receivers fail on runtimeKT-51228[FIR] Unresolved reference on callable reference on implicitthiswith smartcastKT-52364False positive for INFERRED_TYPE_VARIABLE_INTO_EMPTY_INTERSECTIONKT-52237JVM / IR: "IllegalArgumentException: No argument for parameter VALUE_PARAMETER CONTINUATION_CLASS" when implementing Map interface on class with suspending functionsKT-50832Method references to suspend inline functions are processed incorrectlyKT-52194False 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-47203JVM Debugger: Parameter value doesn't change for tailrec functionKT-52131False positive variable unused warning when calling inline function in finally blockKT-51738Debugger: stepping over in inline function with multiple inline lambda invocations is incorrectKT-52198Losing reference to the value of an outer variable (Ref$ObjectRef) when using suspend inline with suspendCancellableCoroutineKT-50994FIR: AssertionError during inference of delegated properties with implicit typesKT-51757FIR does not see various JS/Native specific declarations in common modulesKT-51201FIR: ARGUMENT_TYPE_MISMATCH diagnostic contains generic parameter instead of the actual typeKT-48444FIR: type argument rejected for annotationKT-51754JVM: Local variable table invalid for do-while with continueKT-51936Breakpoint not hit on last line of suspend function on AndroidKT-27333Forbid@Synchronizedannotation on suspend functionsKT-51530"StackOverflowError: CoroutineTransformerMethodVisitor.spillVariables" with data class in FlowKT-51460FIR: Protected property inaccessible from inner classKT-53947IllegalStateException: No mapping for symbol: VALUE_PARAMETER INSTANCE_RECEIVERKT-51234Context receivers can be duplicated in function declarationKT-51576Context receivers: "AssertionError: Callers must check that current token is IDENTIFIER followed with '@'" withatcharacterKT-49479JVM / IR: "IllegalStateException: IrErrorType" during IR lowering with non-trivial recursion callsKT-52270NullPointerException caused by braces on if-else returning a method reference inside lambdaKT-47621False negative INVISIBLE_MEMBER on call to inaccessible protected synthetic property setterKT-37796NI: "ISE: Error type encountered" when inferring type of a property that delegates to itselfKT-45430PSI2IR: "org.jetbrains.kotlin.psi2ir.generators.ErrorExpressionException: null: KtCallExpression: toString()" with recursive function call in "also" block in nontrivial contextKT-52691K2: Expected FirResolvedTypeRef with ConeKotlinType but was FirImplicitTypeRefImpl with intertwined functional interfacesKT-52822Fix contract for KtElement.getReference()KT-50223IndexOutOfBoundsException fromClassicTypeSystemContext$DefaultImpls.getParameterduring call resolutionKT-51963Change Maven version to 1.7.255KT-47664Incorrect type checking in the case of generic typesKT-48765NI: Inferred type does not respect the bound of type variableKT-51243False positive error "No required context receiver" inside contextual lambdaKT-43541TYPE_MISMATCH for member function which is not occur for top level function during unsafe castKT-51016[FIR] False positive OVERLOAD_RESOLUTION_AMBIGUITY between two extensions on different supertypesKT-50155FIR: support contextual receiversKT-38637Catch NoSuchFieldException in optimized when expression over enum
Docs & Examples
KT-49896Kotlin/JS: improve-Xir-property-lazy-initializationdescription due to making it true by default
IDE
KTIJ-22286Kotlin JPS project created via wizard does not contain Kotlin libraries in case of not-released versionKTIJ-22065IDE notification motivating Kotlin users to use EAPKTIJ-22209Configure Kotlin on 221 idea adds 1.6.10 Kotlin (despite the fact that IDE plugin is 1.7.10)KTIJ-22171Fix test BuiltInDecompilerConsistencyTestKTIJ-22016Empty .kt file and build.gradle.kts can trigger an error while searching for a facade light classKT-52571MPP Tasks on import are not up-to-date after subsequent launchesKT-47777ISE thrown from KtLightClassForFacadeImpl.Companion.createForFacadeNoCache has wrong message.
IDE. FIR
KT-52360FIR IDE: Make the fix ofisInheritormethod betterKT-51786FIR IDE: IllegalStateException exception in Inspections' infrastructureKT-52331Analysis API: ArrayIndexOutOfBoundsException exception in Diagnostics' infrastructure
IDE. Code Style, Formatting
KTIJ-21346Incorrect formatting for functions with context receivers and visibility modifiers
IDE. Completion
KTIJ-21910FIR IDE: Fix completion tests started failing after visibility checker refinement
IDE. Decompiler, Indexing, Stubs
KTIJ-21243ContextReceivers: "UpToDateStubIndexMismatch: PSI and index do not match" plugin exception on library with context receivers usage attempt
IDE. Gradle Integration
KT-47627IDE import fails with com.intellij.util.lang.PathClassLoader error forrunCommonizerGradle task on 212, 213 IDEAsKTIJ-21638MPP: IntelliJ can not resolve MPP references in common-codeKT-52216HMPP / KTOR: False positive "TYPE_MISMATCH" with Throwable descendant
IDE. Inspections and Intentions
KTIJ-22540Invalid "remove unnecessary parentheses" when delegating a functional interface to a SAM in brackets
IDE. J2K
KTIJ-21665J2K generates non compiling code when liftingreturnand one branch is broken before binary operator
IDE. JS
KTIJ-22337Wizard: Kotlin/Js for browser: cssSupport DSL should be updated
IDE. K2
KTIJ-21672FIR IDE: Method reference on generic class breaks resolveKTIJ-21714FIR IDE: Inherently imported type from another module is not properly resolved
IDE. Script
KT-52525Update scripts handling in source roots
IDE. Misc
KTIJ-21699Refactoring: move out parts of the plugin useful for both FE10 and K2
JavaScript
New Features
KT-39423KJS: Optionally generate a method to handle optional parameters for function in typescriptKT-42282KJS IR: add an ability to run separate tests
Performance Improvements
KT-50270KJS IR: Unnecessary getter and setter calls when accessing class members
Fixes
KT-51133Kotlin/JS - IR: even simple lambdas generate a lot of useless boilerplateKT-51123Provide a way to add comments to generated JSKT-48493KJS / IR: Invalid d.ts for inner classes inside objectsKT-52553KJS / IR: diamond hierarchy with super.toString produces stack overflow in runtimeKT-23252JS: Unit materialization on declaration and assignmentKT-51128Kotlin/JS - IR generate huge count of useless blocksKT-50778KJS/IR: Inline class has no field when building production distributionKT-50157KSJ IR: Applying identity equality operator to Chars always returns falseKT-38262Javascript generation (and Typescript) fails on 'then', 'catch' and 'finally' (and others?) claiming they are reserved namesKT-51066KJS / IR: suspend lambda parameter of value class is undefinedKT-51102KJS/IR: Assertion failed at translateCallArguments(jsAstUtils.kt:343)KT-51878KJS / Legacy: Unit is not materialized in an overridden method, but it should be
Language Design
KT-47986Implicit inferring a type variable into an upper bound in the builder inference contextKT-49264Deprecate infix function calls of functions named "suspend" with dangling function literalKT-25636Native: Object is frozen by default problemKT-49303Implement support for basic compile-time evaluation
Libraries
KT-52932Open-ended ranges in the standard libraryKT-52910Provide visit extension functions for java.nio.file.PathKT-48232Multiplatform function for computing cubic rootKT-52778The documentation for theDurationdoes not indicate any differences from the ISO-8601KT-52618ThreadLocalRandom is not a good source of randomness on Android before SDK 34, so don't use it for Kotlin Random
Native
KT-53346MPP project with kotlinx-serialization-json:1.4.0-RC is not built
Native. C Export
KT-45468Kotlin/Native: Bitcode verification error when trying to export a cached klib to a static or dynamic library
Native. C and ObjC Import
KT-53373Native: @ExportObjCClass doesn't work with the new memory managerKT-49034Kotlin/Native:cnames.structs.Fooresolves into wrong declarationKT-26478Objective-C object's class name is null in ClassCastException's message
Native. ObjC Export
KT-51593Include more information in Objective-C header documentationKT-33117Improve customizing Info.plist in produced frameworksKT-52681Native:@end;for Objective-C is generated with an unnecessary semicolon
Native. Platforms
KT-52226Kotlin/Native: Add support for cross-compilation of MIPS targets from macOS and Windows hosts
Native. Runtime
KT-52430KMM 1.6.21 framework built with Xcode13, new MM GC Can't support iOS 9.xKT-53534Kotlin/Native:-Xruntime-logs=gc=infoflag doesn't work with compiler caches in 1.7.20-beta
Native. Runtime. Memory
KT-52692Kotlin/Native: fix tests with aggressive GCKT-52130Kotlin/Native: use Xallocator for Kotlin objects onlyKT-51436Kotlin/Native: optimize mark queue
Reflection
KT-51804An 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-52465CLI: IllegalStateException IrSimpleFunctionPublicSymbolImpl when source root is duplicatedKT-52380Invalid path to compiler plugins should be reported as a compiler errorKT-51025JVM CLI compiler takes class file from classpath instead of input java source fileKT-51846Setting 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-52872Mark supportsK2 in ComponentRegistrar.kt as JvmDefault to avoid compatibility problemsKT-52804A function obtained by Fir IrBuiltins has an incorrect packageKT-52468Rename module and jar for lombok compiler plugin
Tools. Gradle
KT-53670Gradle: Cyclic dependency between kotlin-gradle-plugin-idea-1.7.20-Beta and kotlin-gradle-plugin-idea-proto-1.7.20-BetaKT-53615Gradle: Fix deprecation warnings in CleanableStoreImplKT-53118Fully up-to-date builds are slower with Kotlin 1.7.0KT-51923Improve usability of errors and warnings by being able to click on themKT-53244Report from gradle about compiler pluginsKT-52839Warn in Gradle log why incremental compilation failedKT-46019Compatibility with Gradle 7.1 releaseKT-47047Migrate Kotlin Gradle Plugin from using Gradle conventionsKT-52698Don't add InspectClassesForMultiModuleIC task when new incremental compilation is enabledKT-52867Provide simplified JVM toolchain configuration methodKT-45747Add basic JUnit 5 Kotlin Gradle Plugin Android tests setupKT-46034Shadow Kotlin Gradle plugin dependenciesKT-28664Support ExtensionContainer on kotlin targets and source sets.KT-19472Useful extensions of Gradle Kotlin DSL provided by Gradle Kotlin pluginKT-34393Kotlin Gradle DSL: Inconsistent srcDir configuration between Java and KotlinKT-51629There isn't enough info about incremental compilation state in logs while running build with --info key
Tools. Gradle. Cocoapods
KT-53174CocoaPods: Synthetic Podfile does not specify platformKT-53127"MaterialComponents normal armv7" in Cocoapods plugin between Kotlin 1.6.21 and 1.7.0KT-44155Cocoapods doesn't support pods without module map file insideKT-49032Cocoapods cinterop: some header files are not foundKT-53337Add warning about future changing default linking type of framework provided via cocoapods plugin
Tools. Gradle. JS
KT-52637KJS / Gradle: Add SCSS webpack configKT-51527Kotlin/JS: BrowserXRun causes full-screen Webpack error "Compiled with problems: asset size limit/entrypoint size limit" for fresh Kotlin-React project from wizardKT-51532Kotlin/JS: passing environment variable via Gradle script causes "Execution optimizations have been disabled" warningsKT-52221Kotlin/JS: failed Node tests are not reported in a standard way
Tools. Gradle. Multiplatform
KT-52243CInteropProcess is not cacheable despite the annotationKT-52741MPP: klib outputs are not reproducibleKT-52208MPP: Gradle plugin 1.7 doesn't support latest api versions (1.8, 1.9)KT-54071MPP/AGP compatibility: Bump maxSupportedVersion to 7.3.0
Tools. Gradle. Native
KT-52632Gradle / Native: commonizeNativeDistributionTask can never be up-to-dateKT-52328"ld: framework not found SQLCipher" linkDebugTestIosSimulatorArm64 error
Tools. Incremental Compile
KT-53168Incremental compilation doesn't perform correctly after a few iterationsKT-52925[IR BE] Non incremental build occurs after build failure for compileKotlinJs taskKT-52946CompileKotlinJs task is executed non-incrementally if there were changes made to the dependant moduleKT-52329Reduce memory usage of classpath snapshot cacheKT-53266Increment Compilation: "IllegalStateException: The following LookupSymbols are not yet converted to ProgramSymbols" when changing companion object constant fieldKT-53231New IC reports build failures for missing classpath snapshots
Tools. JPS
KT-47824'when expression must be exhaustive' isn't thrown during incremental compilationKT-51873JPS build is incorrect after gdw buildKTIJ-17072JPS does not rebuild Kotlin usages of declared in Java when enum entry is addedKT-51537Rebuild module on plugin classpaths change
Tools. REPL
KT-45065REPL: Incorrect output for unsigned valueKT-53043Scripting: Changes in REPL protocol: mark end of errors
Tools. Scripts
KT-52598Scripts and REPL snippets are not checked against using 'kotlin' packageKT-47187Kotlin 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
Tools. Kapt
KT-52761Kotlin 1.7.0 breaks kapt processing for protobuf generated java sources
1.7.10
Compiler
KT-52702Invalid locals information when compilingkotlinx.collections.immutablewith Kotlin 1.7.0-RC2KT-52892Disappeared specific builder inference resolution ambiguity errorsKT-52782Appeared receiver type mismatch error due to ProperTypeInferenceConstraintsProcessing compiler featureKT-52718declaringClass deprecation message mentions the wrong replacement in 1.7
IDE
Fixes
KTIJ-19088KotlinUFunctionCallExpression.resolve() returns null for calls to @JvmSynthetic functionsKTIJ-19624NoDescriptorForDeclarationException on iosTest.kt.vmKTIJ-21515Load JVM target 1.6 as 1.8 in Maven projectsKTIJ-21735Exception when opening a projectKTIJ-17414UAST: Synthetic enum methods have null return valuesKTIJ-17444UAST: Synthetic enum methods are missing nullness annotationsKTIJ-19043UElement#comments is empty for a Kotlin property with a getterKTIJ-10031IDE fails to suggest a project declaration import if the name clashes with internal declaration with implicit import from stdlib (ex. @Serializable)KTIJ-21151Exception about wrong read access from "Java overriding methods searcher" with Kotlin overridesKTIJ-20736NoClassDefFoundError: Could not initialize class org.jetbrains.kotlin.idea.roots.KotlinNonJvmOrderEnumerationHandler. Kotlin plugin 1.7 fails to startKTIJ-21063IDE highlighting: False positive error "Context receivers should be enabled explicitly"KTIJ-20810NoClassDefFoundError: org/jetbrains/kotlin/idea/util/SafeAnalyzeKt errors in 1.7.0-master-212 kotlin plugin on project openKTIJ-17869KotlinUFunctionCallExpression.resolve() returns null for instantiations of local classes with default constructorsKTIJ-21061UObjectLiteralExpression.getExpressionType() returns the base class type for Kotlin object literals instead of the anonymous class typeKTIJ-20200UAST: @Deprecated(level=HIDDEN) constructors are not returning UMethod.isConstructor=true
IDE. Code Style, Formatting
KTIJ-20554Introduce some code style for definitely non-null types
IDE. Completion
KTIJ-14740Multiplatform declaration actualised in an intermediate source set is shown twice in a completion popup called in the source set
IDE. Debugger
KTIJ-20815MPP Debugger: Evaluation of expect function for the project with intermediate source set may fail with java.lang.NoSuchMethodError
IDE. Decompiler, Indexing, Stubs
KTIJ-21472"java.lang.IllegalStateException: Could not read file" exception on indexing invalid class fileKTIJ-20802Definitely Not-Null types: "UpToDateStubIndexMismatch: PSI and index do not match" plugin error when trying to use library function with T&Any
IDE. FIR
KTIJ-20971FIR IDE: "Parameter Info" shows parameters of uncallable methodsKTIJ-21021FIR IDE: Completion of extension function does not work on nullable receiverKTIJ-21343FIR IDE: Navigation from explicit invoke call does not workKTIJ-21013FIR IDE: Inconsistent smartcasts highlightingKTIJ-21374FIR IDE: Incorrect highlighting for operatorsKTIJ-20443FIR IDE: Work in Dumb modeKTIJ-20852FIR IDE: Exception when checkingisInheritoron two classes in different modulesKTIJ-20637FIR IDE: Strange exception while commenting-uncommenting FirReferenceResolveHelper.kt
IDE. Gradle Integration
KTIJ-21807Gradle to IDEA import: language and API version settings are not imported for Native facetKTIJ-21692Kotlin Import Test maintenance: 1.7.0-BetaKTIJ-20567Kotlin/JS: Gradle import into IDEA creates no proper sub-modules, source sets, facets
IDE. Hints. Inlay
KTIJ-20552Support definitely non-null types in inlay hints
IDE. Inspections and Intentions
New Features
KTIJ-18979Quickfix for INTEGER_OPERATOR_RESOLVE_WILL_CHANGE to add explicit conversion callKTIJ-19950Provide quickfixes forINVALID_IF_AS_EXPRESSION_WARNINGandNO_ELSE_IN_WHEN_WARNINGKTIJ-19866Create quick-fix for effective visibility error on private-in-file interface exposing private classKTIJ-19939Provide quickfix for deprecated confusing expressions in when branches
Fixes
KTIJ-20705Register quickfix forNO_CONSTRUCTOR_WARNINGdiagnosticKTIJ-21226"Remove else branch" quick fix is not suggestedKTIJ-20981Definitely non-null types: quick-fixes suggested incorrectly for LV=1.6 when Xenhance-type-parameter-types-to-def-not-null flag is setKTIJ-20953Add quickfix for OVERRIDE_DEPRECATION warning to 1.7 - 1.9 migrationKTIJ-20734Replace with [@JvmInline] value quick fix should be appliable on a whole projectKTIJ-21420Add 'else' branch quick fix suggestion is displayed twice in case 'if' isn't completedKTIJ-21192"Make protected" intention is redundant for interface propertiesKTIJ-18120"Make public" intention does not add explicit "public" modifier when using ExplicitApi Strict modeKTIJ-20493"Create expect" quick fix doesn't warn about platform-specific annotations
IDE. Misc
KTIJ-21582Notification for Kotlin EAP survey
IDE. Native
KTIJ-21602With Native Debugging Support plugin Gradle run configurations can't be executed from IDEA: LLDB_NATVIS_RENDERERS_ENABLED
IDE. Wizards
KTIJ-20919Update ktor-html-builder dependency in kotlin wizardsKTIJ-20962Wizard: Invalid Ktor imports
Tools. Gradle
KT-52777'org.jetbrains.kotlinx:atomicfu:1.7.0' Gradle 7.0+ plugin variant was published with missing classes
Tools. Gradle. JS
KT-52856Kotlin/JS: Upgrade NPM dependencies
Tools. Gradle. Multiplatform
KT-52955SourceSetMetadataStorageForIde: Broken 'cleanupStaleEntries' with enabled configuration caching or isolated ClassLoadersKT-52694Kotlin 1.7.0 breaks Configuration Caching in Android projects
Tools. Incremental Compile
KT-52669Full rebuild in IC exception recovery leaves corrupt IC data
Tools. JPS
KTIJ-17280JPS: don't use java.io.File.createTempFile as it is not working sometimesKTIJ-20954NPE at at org.jetbrains.kotlin.metadata.jvm.deserialization.JvmProtoBufUtil.readNameResolver on compiling by JPS with LV > 1.7
1.7.0
Analysis API. FIR
KT-50864Analysis API: ISE: "KtCallElement should always resolve to a KtCallInfo" is thrown on call resolution inside plusAssign targetKT-50252Analysis API: Implement FirModuleResolveStates for librariesKT-50862Analsysis API: do not create use site subsitution override symbols
Analysis API. FIR Low Level API
KT-50729Type bound is not fully resolvedKT-50728Lazy resolve of extension function from 'kotlin' package breaks over unresolved typeKT-50271Analysis API: get rid of using FirRefWithValidityCheck
Backend. Native. Debug
KT-50558K/N Debugger. Error is not displayed in variables view for catch block
Compiler
New Features
KT-26245Add ability to specify generic type parameters as not-nullKT-45165Remove JVM target version 1.6KT-27435Allow implementation by delegation to inlined value of inline classKT-47939Support method references to functional interface constructorsKT-50775Support IR partial linkage in Kotlin/Native (disabled by default)KT-51737Kotlin/Native: Remove unnecessary safepoints on watchosArm32 and iosArm32 targetsKT-44249NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER with type usage in higher order function
Performance Improvements
KT-48233Switching to JVM IR backend increases compilation time by more than 15%KT-51699Kotlin/Native: runtime has no LTO in debug binariesKT-34466Use optimized switch over enum only when all entries are constant enum entry expressionsKT-50861FIR: Combination of array set convention and plusAssign works exponentiallyKT-47171For loop doesn't avoid boxing with value class iterators (JVM)KT-29199'next' calls for iterators of merged primitive progressive values are not specializedKT-50585JVM IR: Array constructor loop should use IINCKT-22429Optimize 'for' loop code generation for reversed arraysKT-50074Performance regression in String-based 'when' with single equality clauseKT-22334Compiler backend could generate smaller code for loops using range such as integer..array.size -1KT-35272Unnecessary null check on unsafe cast after not-null assertion operatorKT-27427Optimize nullable check introduced with 'as' cast
Fixes
KT-46762Finalize support for jspecifyKT-51499@file:OptIn doesn't cover override methodsKT-52037FIR: add error in 1.7.0 branch if run with non-compatible pluginsKT-46756Release the K2/JVM compiler in AlphaKT-49715IR: "IllegalStateException: Function has no body: FUN name:toString" during IR lowering with shadowed extension inside interfaceKT-45508False negative ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED on a fake override with an abstract super class memberKT-28078Report error "Public property exposes its private type" for primary constructor properties instead of warningKT-49017Forbid usages of super or super if in fact it accesses an abstract memberKT-38078Prohibit calling methods from Any with "super" qualifier once they are overridden as abstract in superclassKT-52363Evaluate impact of qualifiedthisbehavior change warningsKT-52561JVM: Coroutine state machine loses value after a check-induced smart castKT-52311java.lang.VerifyError: Bad type on operand stackKT-41124Inconsistency of exceptions at init block for an enum entry with and without a qualifier nameKT-46860Make safe calls always nullableKT-52503New green code appeared at the callable reference resolutionKT-51925Native: "IllegalStateException: Symbol for kotlinx.cinterop/CStructVar|null[0] is unbound" caused by inline functionKT-49317"IllegalStateException: Parent of this declaration is not a class: FUN LOCAL_FUNCTION_FOR_LAMBDA" with parameter of suspend type with the default parameterKT-51844New errors in overload resolution involving vararg extension methodsKT-52006"java.lang.Throwable: Unbalanced tree Exception" on indexing kotlin projectKT-51223Report warning about conflicting inherited members from deserialized dependenciesKT-51439FE 1.0: implement type variance conflict deprecation on qualifier type argumentsKT-51433FE 1.0: implement warnings about label resolve changesKT-51317Regression in resolution of lambdas where expected type has an extension receiver parameterKT-45935JVM IR: Add not-null assertion for explicit definitely not-null parametersKT-51818"ClassCastException: class CoroutineSingletons cannot be cast to class" with suspendCoroutineUninterceptedOrReturn and coroutinesKT-51718JVM / IR: "VerifyError: Bad type on operand stack" caused by nullable variable inside suspend functionKT-51927Native:The symbol of unexpected type encountered during IR deserializationerror when multiple libraries have non-conflicting declarations with the same nameKT-52394JVM: Missing annotation on method with value class return type when a subclass is present in the same file in Kotlin 1.7.0-BetaKT-51640FIR: remove warning about "far from being production ready"KT-45553FIR: support hiding declaration from star import by as importKT-52404Prolong deprecation cycle for errors at contravariant usages of star projected argument from JavaKT-50734TYPE_MISMATCH: NonNull parameter with a type of Nullable type argument causes compiler warningKT-51235JVM / IR: "AbstractMethodError: Receiver class does not define or inherit an implementation of the resolved method" when property with inline class type is overridden to return Nothing?KT-48935NI: Multiple generic parameter type constraints are not applied as expected when the parameter is of function typeKT-49661NI: No TYPE_INFERENCE_UPPER_BOUND_VIOLATED when argument is inferred by return typeKT-50877Inconsistent flexible typeKT-51988"NPE: getContainingDeclaration…lDeclarationType.REGULAR) must not be null" when using @BuilderInference with multiple type argumentsKT-48890Revert Opt-In restriction "Overriding methods can only have opt-in annotations that are present on their basic declarations."KT-52035FIR: add error in 1.7.0 branch if run on JS / Native configurationKT-45461NI: False negative TYPE_INFERENCE_UPPER_BOUND_VIOLATED when passing an argument to a function with generic constraintsKT-52146JVM IR: "AssertionError: Primitive array expected" on vararg of SAM types with self-type and star projectionKT-50730Implement error for a super class constructor call on a function interface in supertypes listKT-52040JVM: ClassFormatError Illegal method name "expectFailure$__proxy-0"KT-50845Postpone rxjava errors reporting in the strict mode till 1.8 due to found broken casesKT-51979"AssertionError: No modifier list, but modifier has been found by the analyzer" exception on incorrect Java interface overrideKT-51759FIR DFA: false positive "Variable must be initialized"KT-50378Unresolved reference for method in Jsoup library in a kts script fileKT-34919"Visibility is unknown yet" when named parameter in a function type used in a typealias implemented by an abstract classKT-51893Duplicated [OVERRIDE_DEPRECATION] on overridden propertiesKT-41034K2: Change evaluation semantics for combination of safe calls and convention operatorsKT-51843Functional interface constructor references are incorrectly allowed in 1.6.20 without any compiler flagsKT-51914False positive RETURN_TYPE_MISMATCH in intellij ultimateKT-51711Compiler warning is displayed in case there is 'if' else branch used with elvisKT-33517Kotlin ScriptEngine does not respect async code when using bindingsKT-51850FIR cannot resolve ambiguity with different SinceKotlin/DeprecatedSinceKotlinKT-44705Deprecate using non-exhaustive if's and when's in rhs of elvisKT-44510FIR DFA: smartcast after elvis with escaping lambdaKT-44879FIR DFA: Trackincanddecoperator calls in preliminary loop visitorKT-51758FIR: explicit API mode errors should not be reported for effectively internal / private entitiesKT-51203FIR: Inconsistent RETURN_TYPE_MISMATCH and TYPE_MISMATCH reporting on functions and propertiesKT-51624FIR: false-positive INAPPLICABLE_LATEINIT_MODIFIER for lateinit properties with unresolved typesKT-51204FIR IC: Incremental compilation fails on nested crossinlineKT-51798Fix ISE from IR backend when data class inherits equals/hashCode/toString with incompatible signatureKT-46187FIR: OVERLOAD_RESOLUTION_AMBIGUITY on SAM-converted callable reference to List::plusKT-51761Incorrect NONE_APPLICABLE in expect classKT-51756FIR: false positive NO_VALUE_FOR_PARAMETER in expect class delegated constructor callKT-49778Support cast to DefinitelyNotNull type in NativeKT-51441-Xpartial-linkage option specified in Gradle build script is not passed to Native linkerKT-34515NI: "AssertionError: Base expression was not processed: POSTFIX_EXPRESSION" with double not-null assertion to bracketsKT-48546PSI2IR: "org.jetbrains.kotlin.psi2ir.generators.ErrorExpressionException: null: KtCallExpression" with recursive property access in lazy blockKT-28109"AssertionError: No setter call" for incrementing parenthesized result of indexed access convention operatorKT-46136Unsubstituted return type inferred for a function returning anonymous object upcast to supertypeKT-51364FIR: ambiguity due to String constructors clashKT-51621FIR: visible VS invisible qualifier conflictKT-50468FIR compilers fails with CCE when meets top-level destructionKT-51557Inline stack frame is not shown for default inline lambdaKT-51358OptIn: show default warning/error message in case of empty message argumentKT-44152FIR2IR fails on declarations from java stdlib if java classes are loaded from PSI instead of binariesKT-50949PSI2IR: NSEE fromArgumentsGenerationUtilsKt.createFunctionForSuspendConversionwith providing lambda as argument with suspend typeKT-39256ArrayStoreException with list of anonymous objects with inferred types created in reified extension functionKT-39883Deprecate computing constant values of complex boolean expressions in when condition branches and conditions of loopsKT-36952Exception during codegen: cannot pop operand off an empty stack (reference equality, implicit boxing, type check)KT-51233AssertionError in JavaLikeCounterLoopBuilder with ComposeKT-51254Verify Error on passing null to type parameter extending inline classKT-50996[FIR] Support Int -> Long conversion for property initializersKT-51000[FIR] Support Int -> Long? conversionKT-51003[FIR] Consider Int -> Long conversion if expected type is type variableKT-51018[FIR] Wrong type inference if one of constraints is integer literalKT-51446Metadata serialization crashes with IOOBE when deserializing underlying inline class value with type table enabledKT-50973Redundant line number mapping for finally block with JVM IRKT-51272Incompatible types: KClass and callable reference Collection::classKT-51274"Expected some types" exception on when branch for when expression of erroneous typeKT-51229FIR: private constructor of internal data class treated as internal and not privateKT-50750[FIR] Report UNSUPPORTED on array literals not from annotation classesKT-51200False EXPOSED_PARAMETER_TYPE for internal type parameter of internal typeKT-49804False positive of UPPER_BOUND_VIOLATED and RETURN_TYPE_MISMATCHKT-51121Inconsistent SAM behavior in multiple cases causing AbstractMethodError (Kotlin 1.6.10)KT-50136FIR: syntax error on (T & Any)KT-49465FIR2IR: support definitely not-null typesKT-51357FIR: error in inference while using integer literal in expected Long positionKT-49925[FIR] Incorrect builder inference (different cases)KT-50542"IllegalStateException: Type parameter descriptor is not initialized: T declared in sort" with definitely non-null type Any & T in generic constraintKT-51171FIR: classErrorresolution problemKT-51156Multiplatform linkDebugFramework task throws NoSuchElementException when expect class constructors utilize nested enum constantKT-51017[FIR] Ambiguity on callable reference between two functions on generic receiver with different boundsKT-51007[FIR] False positive ILLEGAL_SUSPEND_FUNCTION_CALL if fun interface with suspend function declared in another moduleKT-50998[FIR] Int.inv() cal does not considered as compile time callKT-51009[FIR] Incorrect inference of lambda in position of returnKT-50997[FIR] Incorrect type of typealias for suspend functional typeKT-49714Compiler reports "'operator modifier is inapplicable" if expect class with increment operator is provided via type aliasKT-48623Type nullability enhancement improvementsKT-44623"IllegalStateException: IdSignature is allowed only for PublicApi symbols" when suspending receiver is annotated with somethingKT-46000JVM / IR: AssertionError on isSubtypeOfClass check in copyValueParametersToStatic with ComposeKT-50211Annotation Instantiation with default arguments in NativeKT-49412Controversial "type argument is not within its bounds" reported by FIRKT-48044[FIR] Investigate behavior ofUPPER_BOUND_VIOLATEDon complex casesKT-37975Don't show deprecation of enum class itself for its own memberKT-50737Inheritance from SuspendFunction leads to compiler crashKT-50723Implement a fix of reporting of uninitialized parameter in default values of parametersKT-50749Implement UNSUPPORTED reporting on array literals inside objects in annotation classesKT-50753Implement reporting errors on cycles in annotation parameter typesKT-50758Fix inconsistency of exceptions at init block for an enum entry with and without a qualifier nameKT-50182CONST_VAL_NOT_TOP_LEVEL_OR_OBJECT: clarify error message forconstin object expressionKT-50183Fix missing apostrophe escapes in compiler error messagesKT-50788FIR: false unsafe call on not-null genericKT-50785FIR: inconsistent smart cast after comparison with trueKT-50858[FIR LL] FIR in low level mode creates multiple symbols for same declarationKT-50822Analysis API: make declaration transformers machinery to be a thread safeKT-50972FIR doesn't report VAL_REASSIGNMENT on synthetic propertiesKT-50969FIR: diamond inheritance with different parameter types depends on a supertype orderKT-50875FIR: no smart cast after reassignment with elvisKT-50835Inline functions with suspend lambdas break the tail-call optimizationKT-49485JVM / IR: StackOverflowError with long when-expression conditionsKT-35684NI: "IllegalStateException: Expected some types" from builder-inference about intersecting empty types on trivial codeKT-50776FIR: ambiguity between Sequence.forEach and Iterable.forEachKT-48908Error for annotation on parameter type could have distinct ID and message referring 1.6KT-48907SUPERTYPE_IS_SUSPEND_FUNCTION_TYPE error could have message referring version 1.6KT-50774FIR2IR: NSEE in case of lambda in enum entry constructor callKT-49016Drop QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE diagnosticKT-34338Parameterless main causes duplicate JVM signature errorKT-50577JVM_IR: No NPE when casting uninitialized value of non-null type to non-null typeKT-50476JVM_IR: NSME when calling 'super.removeAt(Int)' implemented in Java interface as a default methodKT-50257JVM_IR: Incorrect bridge delegate signature for renamed remove(I) causes SOE with Kotlin class inherited from fastutils IntArrayListKT-50470FIR: inapplicable candidate in delegate inference due to nullabilityKT-32744Inefficient compilation of null-safe call (extra null checks, unreachable code)
Docs & Examples
KT-52032Document performance optimizations of the Kotlin/JVM compiler in 1.7.0KT-49424Update KEEP for OptIn
IDE
Fixes
KTIJ-21735Exception when opening a projectKTIJ-17414UAST: Synthetic enum methods have null return valuesKTIJ-17444UAST: Synthetic enum methods are missing nullness annotationsKTIJ-19043UElement#comments is empty for a Kotlin property with a getterKTIJ-10031IDE fails to suggest a project declaration import if the name clashes with internal declaration with implicit import from stdlib (ex. @Serializable)KTIJ-21515Load JVM target 1.6 as 1.8 in Maven projectsKTIJ-21151Exception about wrong read access from "Java overriding methods searcher" with Kotlin overridesKTIJ-20736NoClassDefFoundError: Could not initialize class org.jetbrains.kotlin.idea.roots.KotlinNonJvmOrderEnumerationHandler. Kotlin plugin 1.7 fails to startKT-50111Resolving into KtUltraLightMethodKTIJ-21063IDE highlighting: False positive error "Context receivers should be enabled explicitly"KTIJ-20810NoClassDefFoundError: org/jetbrains/kotlin/idea/util/SafeAnalyzeKt errors in 1.7.0-master-212 kotlin plugin on project openKTIJ-19088KotlinUFunctionCallExpression.resolve() returns null for calls to @JvmSynthetic functionsKTIJ-17869KotlinUFunctionCallExpression.resolve() returns null for instantiations of local classes with default constructorsKTIJ-21061UObjectLiteralExpression.getExpressionType() returns the base class type for Kotlin object literals instead of the anonymous class typeKTIJ-20200UAST: @Deprecated(level=HIDDEN) constructors are not returning UMethod.isConstructor=trueKTIJ-19624NoDescriptorForDeclarationException on iosTest.kt.vm
IDE. Code Style, Formatting
KTIJ-20554Introduce some code style for definitely non-null types
IDE. Completion
KTIJ-14740Multiplatform declaration actualised in an intermediate source set is shown twice in a completion popup called in the source set
IDE. Debugger
KTIJ-20815MPP Debugger: Evaluation of expect function for the project with intermediate source set may fail with java.lang.NoSuchMethodError
IDE. Decompiler, Indexing, Stubs
KTIJ-21472"java.lang.IllegalStateException: Could not read file" exception on indexing invalid class fileKTIJ-20802Definitely Not-Null types: "UpToDateStubIndexMismatch: PSI and index do not match" plugin error when trying to use library function with T&AnyKT-51248Function and parameter names with special symbols have to backticked
IDE. FIR
KTIJ-20443FIR IDE: Work in Dumb modeKTIJ-21374FIR IDE: Incorrect highlighting for operatorsKTIJ-21013FIR IDE: Inconsistent smartcasts highlightingKTIJ-21343FIR IDE: Navigation from explicit invoke call does not workKTIJ-20852FIR IDE: Exception when checkingisInheritoron two classes in different modulesKTIJ-21021FIR IDE: Completion of extension function does not work on nullable receiverKTIJ-20637FIR IDE: Strange exception while commenting-uncommenting FirReferenceResolveHelper.ktKTIJ-20971FIR IDE: "Parameter Info" shows parameters of uncallable methods
IDE. Gradle Integration
KTIJ-21807Gradle to IDEA import: language and API version settings are not imported for Native facetKTIJ-21692Kotlin Import Test maintenance: 1.7.0-BetaKTIJ-20567Kotlin/JS: Gradle import into IDEA creates no proper sub-modules, source sets, facets
IDE. Hints. Inlay
KTIJ-20552Support definitely non-null types in inlay hints
IDE. Inspections and Intentions
New Features
KTIJ-18979Quickfix for INTEGER_OPERATOR_RESOLVE_WILL_CHANGE to add explicit conversion callKTIJ-19950Provide quickfixes forINVALID_IF_AS_EXPRESSION_WARNINGandNO_ELSE_IN_WHEN_WARNINGKTIJ-19866Create quick-fix for effective visibility error on private-in-file interface exposing private classKTIJ-19939Provide quickfix for deprecated confusing expressions in when branches
Fixes
KTIJ-20705Register quickfix forNO_CONSTRUCTOR_WARNINGdiagnosticKTIJ-21226"Remove else branch" quick fix is not suggestedKTIJ-20981Definitely non-null types: quick-fixes suggested incorrectly for LV=1.6 when Xenhance-type-parameter-types-to-def-not-null flag is setKTIJ-20953Add quickfix for OVERRIDE_DEPRECATION warning to 1.7 - 1.9 migrationKTIJ-20734Replace with [@JvmInline] value quick fix should be appliable on a whole projectKTIJ-21420Add 'else' branch quick fix suggestion is displayed twice in case 'if' isn't completedKTIJ-21192"Make protected" intention is redundant for interface propertiesKTIJ-18120"Make public" intention does not add explicit "public" modifier when using ExplicitApi Strict modeKTIJ-20493"Create expect" quick fix doesn't warn about platform-specific annotations
IDE. Misc
KTIJ-21582Notification for Kotlin EAP survey
IDE. Multiplatform
KT-49523Improve environment setup experience for KMM projectsKT-50952MPP: Commonized cinterops doesn't attach/detach to source set on configuration changes
IDE. Native
KT-44329Improve UX of using Native libraries in KotlinKTIJ-21602With Native Debugging Support plugin Gradle run configurations can't be executed from IDEA: LLDB_NATVIS_RENDERERS_ENABLED
IDE. Wizards
KTIJ-20919Update ktor-html-builder dependency in kotlin wizardsKTIJ-20962Wizard: Invalid Ktor imports
JavaScript
New Features
KT-51735KJS / IR: Minimize member names in production mode
Performance Improvements
KT-51127Kotlin/JS - IR generates plenty of uselessUnit_getInstance()KT-50212KJS IR: Upcast should be a no-opKT-16974JS: Kotlin.charArrayOf is suboptimal due to Rhino bugs
Fixes
KT-44319JS IR BE: Add an ability to generate separate JS files for each moduleKT-52518Kotlin/JS IR: project with 1.6.21 fails to consume library built with 1.7.0-RC: ISE "Unexpected IrType kind: KIND_NOT_SET" at IrDeclarationDeserializer.deserializeIrTypeData()KT-52010K/JS IR: both flows execute when using elvis operatorKT-41096KJS IR: @JsExport should use original js name for external declarationsKT-52144KJS / IR: Missing property definitions for interfaced defined propertiesKT-52252KJS / IR: overridden properties are undefined/nullKT-51973KJS / IR overridden properties of inherited interface missingKT-51125Provide a way to useimportkeyword injsexpressionsKT-40888KJS / IR: Missing methods are no longer generated (polyfills)KT-50504KJS / IR: Transpiled JS incorrectly uses the unscrambled names of internal fieldsKT-51853JS compilation fails with "Uninitialized fast cache info" errorKT-51205K/JS IR: external class is mapped to anyKT-50806Typescript definitions contain invalid nested block comments with generic parent and type argument without@JsExportKT-51841KJS / IR: No flat hash for FUN FAKE_OVERRIDE with kotlin.incremental.js.ir=trueKT-51081KJS / IR + IC: Passing an inline function with default params as a param to a higher-order function crashes the compilerKT-51084KJS / IR + IC: Cache invalidation doesn't check generic inline functions reified qualifierKT-51211K/JS IR: JsExport: Can't export nested enumKT-51438KJS / IR: Duplicated import names for the same external namesKT-51238Kotlin/JS: IR + IC: build fails after clean oncompileTestDevelopmentExecutableKotlinJstask: "Failed to create MD5 hash for file '.../build/classes/kotlin/main' as it does not exist"KT-50674KJS / IR: JS code cannot modify local variableKT-50953KJS IR: Incorrect nested commenting in d.tsKT-15223JS: function that overrides external function withvarargparameter is translated incorrectlyKT-50657KJS / IR 1.6.20-M1-39 - Date in Kotlin JS cannot be created from long.
Language Design
New Features
KT-45618Stabilize builder inferenceKT-30485Underscore operator for type argumentsKT-49006Support at least three previous versions of language/APIKT-16768Context-sensitive resolution prototype (Resolve unqualified enum constants based on expected type)KT-14663Support having a "public" and a "private" type for the same propertyKT-50477Functional conversion does not work on suspending functionsKT-32162Allow generics for inline classes
Fixes
KT-12380Support sealed (exhaustive) whensKT-27750Reverse reservation of 'yield' as keywordKT-22956Release OptIn annotationsKT-44866Change behavior of private constructors of sealed classesKT-49110Prohibit access to members of companion of enum class from initializers of entries of this enumKT-29405Switch default JVM target version to 1.8
Libraries
New Features
KT-50484Extensions for java.util.Optional in stdlibKT-50146Reintroduce min/max(By/With) operations on collections with non-nullable return typeKT-46132Specialized default time source with non-allocating time marksKT-41890Support named capture groups in Regex on NativeKT-48179Introduce API to retrieve the number of CPUs the runtime has
Performance Improvements
KT-42178Range and Progression should override last()
Fixes
KT-42436Supportjava.nio.Pathextension in the standard libraryKT-51470Stabilize experimental API for 1.7KT-51775JS: Support named capture groups in RegexKT-51776Native: Support back references to groups with multi-digit indexKT-51082Introduce Enum.declaringJavaClass propertyKT-51848Promote deepRecursiveFunction to stable APIKT-48924KJS:toStringin base 36 produces different results in JS compare to JVMKT-50742Regular expression is fine on jvm but throws PatternSyntaxException for native macosX64 targetKT-50059Stop publishing kotlin-stdlib and kotlin-test artifacts under modular classifierKT-26678Rename buildSequence/buildIterator to sequence/iterator
Native
KT-49406Kotlin/Native: generate standalone executable for androidNative targets by defaultKT-48595Enable Native embeddable compiler jar in Gradle plugin by defaultKT-51377Native: synthetic forward declarations are preferred over commonized definitionsKT-49145Kotlin/Native static library compilation fails for androidNative*KT-49496Gradle (or the KMM plugin) is caching the Xcode Command Line Tools locationKT-49247gradle --offline should translate into airplaneMode for kotin-native compiler
Native. Build Infrastructure
KT-52259kotlin-native releases from GitHub don't contain platform libs
Native. C and ObjC Import
KT-49455Methods from Swift extensions are not resolved in Kotlin shared moduleKT-50648Incorrect KMM cinterop conversion
Native. ObjC Export
KT-50982RuntimeAssertFailedPanic in iOS when Kotlin framework is initialized before loadingKT-49937Kotlin/Native 1.5.31: 'runtime assert: Unexpected selector clash' when 'override fun toString(): String' is used
Native. Platforms
KT-52232Kotlin/Native: simplify toolchain dependency override for MinGW
Native. Runtime
KT-52365Kotlin/Native fails to compile projects for 32-bit targets when new memory manager is enabled
Native. Runtime. Memory
KT-48537Kotlin/Native: improve GC triggers in the new MM.KT-50713Kotlin/Native: Enable Concurrent Sweep GC by default
Native. Stdlib
KT-50312enhancement: kotlin native -- add alloc<TVarOf>(T)
Native. Testing
KT-50316Kotlin/Native: Produce a list of available tests alongside the final artifactKT-50139Create tests for Enter/Leave frame optimization
Reflection
KT-27598"KotlinReflectionInternalError" when usingcallByon constructor that has inline class parametersKT-31141IllegalArgumentException when reflectively accessing nullable property of inline class type
Tools. CLI
KT-52409Report error when use-k2 with MultiplatformKT-51717IllegalArgumentException: Unexpected versionNeededToExtract (0) in 1.6.20-RC2 with useFir enabledKT-52217Rename 'useFir' to 'useK2'KT-29974Add a compiler option '-Xjdk-release' similar to javac's '--release' to control the target JDK versionKT-51673Make language version description not in capital lettersKT-48833-Xsuppress-version-warnings allows to suppress errors about unsupported versionsKT-51627kotlinc fails withjava.lang.RuntimeExceptionif/tmp/build.txtfile exists on the diskKT-51306Support reading language settings from an environment variable and overriding the current settings by themKT-51093"-Xopt-in=..." command line argument no longer works
Tools. Commonizer
KT-43309Overwrite return type and parameter types of callable member to succeed commonizationKT-52050[Commonizer] 'platform.posix.DIR' not implementing 'CPointed' when commonized for 'nativeMain' on linux or windows hostsKT-51224MPP: For optimistically commonized numbers missed kotlinx.cinterop.UnsafeNumberKT-51215MPP: Update Kdoc description for kotlinx.cinterop.UnsafeNumberKT-51686Cinterop: Overload resolution ambiguity in 1.6.20-RC2KT-46636HMPP: missed classes fromplatform.posix.*KT-51332Optimistic number commonization is disabled by default in KGP with enabled HMPP
Tools. Compiler Plugins
KT-50992jvm-abi-gen breaks inline functions in inline classes with private constructors in Kotlin 1.6.20
Tools. Daemon
KT-32885KT. Kotlin daemon compilation process is broken: java.lang.IllegalStateException Service is dying at entities generation by Kotlin.kts script
Tools. Gradle
New Features
KT-49227Support Gradle plugins variantsKT-50869Provide API that allow AGP to set up Kotlin compilationKT-48008Consider offering a KotlinBasePluginKT-52030Provide experimental possibility to view internal information about Kotlin Compiler performance
Performance Improvements
KT-52141Optimize Java class snapshotting for thekotlin.incremental.useClasspathSnapshotfeatureKT-51978Optimize classpath snapshot cache for thekotlin.incremental.useClasspathSnapshotfeatureKT-51326Kotlin-gradle-plugin performance issue with mass java SourceRoots
Fixes
KT-52448Compilation tasks are missing input/output/internal annotations on includes/excludes propertiesKT-52239Type based task configuration-blocks for JVM stopped working in GradleKT-52313No recompilation in Gradle after adding or removing function parameters, removing functions (and maybe more) in dependent modulesKT-51854Add Ktor to gradle performance benchmarkKT-52086Rename flag 'use-fir' to 'use-k2'KT-52509Main variant published to Gradle plugin portal uses unshadowed artifactKT-52392Gradle: 1.7.0 does not support custom gradle build configuration on Windows OSKT-32805KotlinCompile inherits properties sourceCompatibility and targetCompatibility which breaks Gradle's incremental compilationKT-52189Provide Gradle Kotlin/DSL friendly deprecated classpath property in KotlinCompiler taskKT-51415Confusing build failure reason is displayed in case kapt is used and different JDKs are used for compileKotlin and compileJava tasksKT-52187New IC can not be enabled in an Android project using kaptKT-51898Upgrading Kotlin/Kotlin Gradle plugin to 1.5.3 and above breaks 'com.android.asset-pack' pluginKT-51913Gradle plugin should not add attributes to the legacy configurationsKT-34862Restoring from build cache breaks Kotlin incremental compilationKT-45777New IC in GradleKT-51360Show performance difference in percent between releasesKT-51380Add open-source project using Kotlin/JS plugin to build regression benchmarksKT-51937Toolchain usage with configuration cache prevents KotlinCompile task to be UP-TO-DATEKT-48276Remove kotlin2js and kotlin-dce-pluginKT-52138KSP could not access internal methods/properties in Kotlin Gradle PluginKT-51342Set minimal supported Android Gradle plugin version to 3.6.4KT-50494Remove kotlin.experimental.coroutines Gradle DSL optionKT-49733Bump minimal supported Gradle version to 6.7.1KT-48831Remove 'KotlinGradleSubplugin'KT-47924Remove annoying cast in toolchain extension method for Kotlin DSLKT-46541Fail Gradle builds when deprecated kotlinOptions.jdkHome is setKT-51830Gradle: deprecatekotlin.compiler.execution.strategysystem propertyKT-47763Gradle DSL: Remove deprecated useExperimentalAnnotation and experimentalAnnotationInUseKT-51374NoSuchFileException in getOrCreateSessionFlagFile()KT-51837kotlin-gradle-plugin:1.6.20 fails xray scan on shadowed Gson 2.8.6.KT-51454KotlinJvmTest is not a cacheable taskKT-45745Migrate only Kotlin Gradle Plugin tests to new JUnit5 DSL and run them separately on CIKT-47318Remove deprecated 'kotlinPluginVersion' property in `KotlinBasePluginWrapper'KT-51378Gradle 'buildSrc' compilation fails when newer version of Kotlin plugin is added to the build script classpathKT-46038Gradle:kotlin_modulefiles are corrupted in the KotlinCompile output, and gets cachedKT-51064Kotlin gradle build hangs on MetricsContainer.flushKT-48779Gradle: Could not connect to kotlin daemon
Tools. Gradle. Cocoapods
KT-50622Cocoapods Plugin: cocoapods-generate does not work correctly with ruby 3.0.0 and higherKT-51861Custom binary name in CocoaPods plugin isn't respected by fatFramework task
Tools. Gradle. JS
KT-52221Kotlin/JS: failed Node tests are not reported in a standard wayKT-51895K/JS: Redundant technical messages during JS testsKT-51414Allow set up environment variables for JS testsKT-51623Kotlin/JS: Mocha could not failed when external module not foundKT-51503Update NPM dependency versions
Tools. Gradle. Multiplatform
New Features
KT-51386[KPM] IdeaKotlinProjectModelBuilder: Implement dependencies
Fixes
KT-49524Improve DSL for managing Kotlin/Native binary outputKT-51765com.android.lint in multiplatform project without android target should not trigger warningKT-38456MPP with Android source set: allTests task does not execute Android unit testsKT-44227Common tests are not launched on local JVM for Android via allTests task in a multiplatform projectKT-51946Temporarily mark HMPP tasks as notCompatibleWithConfigurationCache for Gradle 7.4KT-52140Support extensibility Kotlin Artifacts DSL by external gradle pluginsKT-51947Mark HMPP tasks as notCompatibleWithConfigurationCache for Gradle 7.4 using ReflectionKT-50925Could not resolve all files for configuration ':metadataCompileClasspath'KT-51262[KPM] IDEA import: Move model builder to KGPKT-51220[KPM][Android] Implement generic data storage and import pipelineKT-48649No run task generated for macosArm64 target in Gradle plugin
Tools. Gradle. Native
KT-47746Allow customization of the Kotlin/Native compiler download urlKT-51884Gradle Native: "A problem occurred starting process 'command 'xcodebuild''" when buildingassembleFooXCFrameworktask on Linux
Tools. Incremental Compile
KT-51546FIR incremental compilation fails with assertion "Trying to inline an anonymous object which is not part of the public ABI"KT-49780IncrementalCompilerRunner bug: Outputs are deleted after successful rebuild following fallback from an exceptionKT-44741Incremental compilation: inspectClassesForKotlinIC doesn't determine changes with imported constant
Tools. JPS
KTIJ-17280JPS: don't use java.io.File.createTempFile as it is not working sometimesKTIJ-20954NPE at at org.jetbrains.kotlin.metadata.jvm.deserialization.JvmProtoBufUtil.readNameResolver on compiling by JPS with LV > 1.7
Tools. Kapt
KT-49533Make kapt work out of the box with latest JDKsKT-52284FIR: add error in 1.7.0 branch if run with KaptKT-51463KAPT: Incremental compilation not working when rerunning unit testsKT-51132KAPT: Support reporting the number of generated files by each annotation processorKT-30172Kapt: Shutdown kotlinc gracefully in case of error in annotation processor
Tools. Scripts
KT-49173Add support for nullable types in provided properties and other configuration-defined declarationsKT-52294[Scripting] Update oudated org.eclipse.aether dependencies to new org.apache.maven.resolverKT-51213Kotlin JSR223 crashes with "ScriptException: ERROR java.lang.NullPointerException:" if bindings contain one or more null valuesKT-48812Script: "IllegalStateException: unknown classifier kind SCRIPT" when passing a function reference to a FlowKT-50902Scripts loaded from the compilation cache ignore theloadDependencieseval configuration propertyKT-52186Scripts: Backend Internal error: Exception during IR lowering when using symbol from a dependency inside a functionKT-51731Script: jsr223 memory leak in spring-boot Fat JarKT-49258Scripts: method 'void ()' not found with multiple evals using kotlin script JSR223KT-51346Scripts: "BackendException: Exception during IR lowering" with variable of imported script inside class