Kotlin 2.0.20-Beta1
Pre-release
Pre-release
Changelog
Analysis. API
New Features
KT-68143
Analysis API: support KtWhenConditionInRange call resolution
Performance Improvements
KT-67195
K2: do not call redundant resolve on body resolution phase for classes
Fixes
KT-66216
K2 IDE. "FirDeclaration was not found for class org.jetbrains.kotlin.psi.KtProperty, fir is null" on incorrect string templateKT-53669
Analysis API: redesign KtSymbolOrigin to distinguish kotlin/java source/library declarationsKT-62889
K2 IDE. FPMISSING_DEPENDENCY_CLASS
on not available type alias with available underlying typeKT-62343
Analysis API: fix binary incopatibility problems cause byKtAnalysisSessionProvider.analyze
being inlineKT-68498
To get reference symbol the one should be KtSymbolBasedReferenceKT-68393
Analysis API: RenameKaClassLikeSymbol. classIdIfNonLocal
toclassId
KT-62924
Analysis API: rename KtCallableSymbol.callableIdIfNonLocal -> callableIdKT-66712
K2 IDE. SOE on settings string template for string variable with the same nameKT-65892
K2: "We should be able to find a symbol" for findNonLocalFunctionKT-67360
Analysis API: KtDestructuringDeclarationSymbol#entries shouldn't be KtLocalVariableSymbolKT-68198
Analysis API: Support application service registration in plugin XMLsKT-68273
AA: supportKtFirKDocReference#isReferenceToImportAlias
KT-68272
AA: KtFirReference.isReferenceToImportAlias doesn't work for references on constructorKT-67996
Analysis API: rename Kt prefix to KaKT-66996
Analysis API: Expose the abbreviated type of an expandedKtType
KT-66646
K2: Expected FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl from FirJsHelpersKt.isExportedObjectKT-68203
K2: Analysis API: wrong type of receiver value in case of imported object memberKT-68031
LL resolve crash in case of PCLA inference with local objectKT-67851
K2:PsiReference#isReferenceTo
always returns false for references to Java gettersKT-68076
AA: use type code fragments for import alias detectionKT-65915
K2: Analysis API: extract services registration into xml fileKT-68049
Analysis API: do not expose imported symbolsKT-68075
K2: Analysis API: Type arguments for delegation constructor to java constructor with type parameters not supportedKT-65190
AA: reference to the super type is not resolvedKT-68070
AA: KtExpressionInfoProvider#isUsedAsExpression doesn't work for KtPropertyDelegateKT-67748
K2: AllCandidatesResolver modifies the original FirDelegatedConstructorCallKT-67743
K2: Stubs & AbbreviatedTypeAttributeKT-67706
K2: "KtDotQualifiedExpression is not a subtype of class KtNamedDeclaration" from UnusedCheckerKT-68021
Analysis API: do not break the diagnostic collection in a case of exception from some collectorKT-67949
AA: Type arguments of Java methods' calls are not reported as used by KtFirImportOptimizerKT-67988
AA: functional type at receiver position should be wrapped in parenthesisKT-66536
Analysis API: ContextCollector doesn't provide implicit receivers from FirExpressionResolutionExtensionKT-67321
AA: Type arguments of Java methods' calls are not resolvedKT-64158
K2: "KotlinIllegalArgumentExceptionWithAttachments: No fir element was found for KtParameter"KT-60344
K2 IDE. "KotlinExceptionWithAttachments: expectcreateKtCall
to succeed for resolvable case with callable symbol" on attempt to assign value to param named getParamKT-64599
K2: "expectcreateKtCall
to succeed for resolvable case with callable" for unfinished if statementKT-60330
K2 IDE. ".KotlinExceptionWithAttachments: expectcreateKtCall
to succeed for resolvable case with callable symbol" on attempt to assign or compare true with somethingKT-66672
K2 IDE. False positive INVISIBLE_REFERENCE on accessing private subclass as type argument in parent class declarationKT-67750
Analysis API: Removeinfix
modifiers from type equality and subtyping functionsKT-67655
Analysis API: declare a rule how to deal with parameters in KtLifetimeOwnerKT-61775
Analysis API: KtKClassAnnotationValue lacks complete type informationKT-67168
K2: Analysis API: Rendering is broken for JSR-305 enhanced Java typesKT-66689
Analysis API: KtFirPackageScope shouldn't rely on KotlinDeclarationProvider for binary dependencies in standalone modeKT-60483
Analysis API: add isTailrec property to KtFunctionSymbolKT-67472
K2: Analysis API FIR: KtFunctionCall misses argument with desugared expressionsKT-65759
Analysis API: Avoid hard references toLLFirSession
in session validity trackersKT-60272
K2: Implement active invalidation ofKtAnalysisSession
sKT-66765
K2: Analysis API: support classpath substitution with library dependencies in super type transformerKT-67265
K2: status phase should resolve original declarations in the case of classpath subsitutionKT-67244
K2: StackOverflowError in the case of cyclic type hierarchy and library classpath substitutionKT-67080
K2: clearer contract for lazyResolveToPhaseWithCallableMembersKT-65413
K2 IDE: KTOR unresolved serializer() call for@Serializable
class in common codeKT-66713
K2 FIR: Expose a way to get the module name used for name manglingKT-61892
KtType#asPsiType could provide nullability annotationsKT-66122
Analysis API: PassKtTestModule
instead ofTestModule
to tests based onAbstractAnalysisApiBasedTest
Analysis. Light Classes
KT-68275
LC: no arg constructor is not visible in light classesKT-66687
Symbol Light Classes: Duplicate field names for classes with companion objectsKT-66804
Symbol Light Classes: Fields from the parent interface's companion are added to DefaultImpls
Apple Ecosystem
KT-68257
Xcode incorrectly reuses embedAndSign framework when moving to and from 2.0.0KT-65542
Cinterop tasks fails if Xcode 15.3 is used
Backend. Wasm
KT-65798
K/Wasm: make an error on default export usageKT-68453
K/Wasm: "Supported JS engine not detected" in Web WorkerKT-64565
Kotlin/wasm removeEventListener function did not remove the event listenerKT-66099
Wasm: local.get of type f64 has to be in the same reference type hierarchy as (ref 686) @+237036
Compiler
New Features
KT-67611
Implement improved handling of $ in literalsKT-39868
Allow access to protected consts and fields from a super companion objectKT-67787
Implement guard conditions for when-with-subjectKT-68165
Native: type checks on generic types boundaryKT-66169
useContents
lacks acontract
KT-67767
Introduce an ability to enforce explicit return types for public declarations without enabling Explicit API modeKT-65841
Allow to actualize expect types in kotlin stdlib to builtins in JVMKT-53834
Support for JSpecify@NullUnmarked
Performance Improvements
KT-68034
Devirtualization analysis fails to devirtualize string.get
Fixes
KT-68568
K2: False-positive ACCIDENTAL_OVERRIDE caused by missing dependency classKT-66723
K2: NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS for actual typealias that extends to Java class with complicated hierarchy that includes default methodKT-68492
JVM IR backend: IDE / Kotlin Debugger: AE “Non-reified type parameter under ::class should be rejected by type checker” on evaluating private generic functionKT-61875
Native: remove support for bitcode embeddingKT-35305
"Overload resolution ambiguity" on function for unsigned types (UByte, UShort, UInt, ULong)KT-59679
K2: Investigate extracting uncompleted candidates from blocksKT-68193
JDK 21: new MutableList.addFirst/addLast methods allow adding nullable value for non-null typesKT-68383
K2: "Argument type mismatch: actual type is 'kotlin.String', but 'T & Any' was expected." with intersection typesKT-68351
K2: "Suspension functions can only be called within coroutine body"KT-68674
False positive ACTUAL_WITHOUT_EXPECT in K2KT-64335
K2: improve rendering of captured types in diagnostic messagesKT-67933
K2: no conversion between fun interfaces if target hassuspend
KT-68350
K2: "Inapplicable candidate(s)" caused by parameter reference of local class with type parameters from functionKT-68362
False-positive ABSTRACT_MEMBER_NOT_IMPLEMENTED for inheritor of java class which directly implements java.util.MapKT-68446
K2: compile-time failure on smart-casted generic value used as a when-subject in a contains-check with rangeKT-68571
K2: "IllegalStateException: Fake override should have at least one overridden descriptor" caused by exceptions and when statementKT-68339
K2: "Enum entry * is uninitialized here" caused by lazy property with enum inwhen
expressionKT-66688
K2: false-negative "upper bound violated" error in extension receiverKT-64106
Native: the compiler allows using-opt
and-g
at the same timeKT-67887
Expection on assigning to private field of value typeKT-67801
NSME on evaluating private member function with value class parameterKT-67800
NSME on evaluating private top-level function with value class parameterKT-57996
Usages ofFoo @Nullable []
produce only warnings even with-Xtype-enhancement-improvements-strict-mode -Xjspecify-annotations=strict
KT-68630
DiagnosticsSuppressor is not invoked with Kotlin 2.0KT-68222
K2. KMP. False negativeExpected declaration must not have a body
for expected top-level property with getter/setterKT-64103
FirExpectActualDeclarationChecker reports diagnostic error for KtPsiSimpleDiagnostic with KtFakeSourceElementKT-68191
K2. Static fake-overrides are not generated for kotlin Fir2IrLazyClassKT-64990
K2: Remove usages of SymbolTable from FIR2IRKT-67798
NSME on assigning to private delegated property of value classKT-68264
K2: confusing INVISIBLE_* error when typealias is involvedKT-68024
K2: Gradle repo testaccessors to kotlin internal task types...
fails on K2KT-67943
Approximation should not generate types with UPPER_BOUND_VIOLATION errorsKT-67503
K2: False negative "Type Expected" when attempting to annotate a wildcard type argumentKT-68187
K2: Create IrBuiltins in fir2ir only after IR actualizationKT-66443
K2: ArrayIterationHandler doesn't work if UIntArray declared in sourcesKT-68291
K2 / Contracts: Non-existent invocation kind is suggested as a fixKT-67692
Native: support LLVM opaque pointers in the compilerKT-68209
K2: Strange import suggestion when lambda body contains invalid codeKT-67368
"NullPointerException: Parameter specified as non-null is null" local lambda creates new not-null checks with 2.0.0-Beta5KT-66554
K2. Drop FIR based fake-override generator from fir2irKT-64202
K2: Drop old methods for calculation of overridden symbols for lazy declarationsKT-55851
K2: reference to a field from package private class crashes in runtimeKT-67895
K2: Properly implement generation of fake-overrides for fieldsKT-54496
K2:REDUNDANT_MODALITY_MODIFIER
diagnostic disregards compiler pluginsKT-63745
K2: Approximation of DNN with nullability warning attribute leads to attribute incorrectly becoming not-nullKT-63362
AbstractTypeApproximator fixes only first local type in hierarchyKT-67769
K2: "variable must be initialized" on unreachable access in constructorKT-51195
FIR IC: Incremental compilation fails with@PublishedApi
propertyKT-67966
No JVM type annotation is generated on a class supertypeKT-55128
Wrong type path in type annotations when type arguments are compiled to wildcardsKT-46640
Generate JVM type annotations on wildcard boundsKT-67952
Annotations on type parameters are not generated for parameters other than the firstKT-68012
K2. No'operator' modifier is required on 'component'
error in K2KT-61835
K2: FirStubTypeTransformer receives unresolved expressions in builder inference sessionKT-63596
K1/K2: Different behavior for lambda with different return typeKT-67688
K2: False positive CANNOT_INFER_PARAMETER_TYPE for Unit constraint type variableKT-62080
False positive UNUSED_VARIABLE for variable that is used in lambda and in further code with several conditionsKT-60726
K2: Missed TYPE_MISMATCH error: inferred type non-suspend function but suspend function was expectedKT-41835
[FIR] Green code turns to red in presence of smartcasts and redundant type argumentsKT-67579
K1/JVM: false-negative annotation-based diagnostics on usages of ABI compiled with non-trivially configured generation of default methodsKT-67493
K2: argument type mismatch: actual type is 'T', but 'T' was expectedKT-64900
K2:getConstructorKeyword
call inPsiRawFirBuilder.toFirConstructor
forces AST loadKT-67648
K2: wrong exposed visibility errors with WRONG_MODIFIER_CONTAINING_DECLARATION on top-level enum classKT-58686
FIR2IR: Don't use global countersKT-67592
K2: Success execution of:kotlin-stdlib:compileKotlinMetadata
KT-60398
K2: consider forbidding FirBasedSymbol rebindKT-54918
Refactor transformAnonymousFunctionWithExpectedTypeKT-63360
K2: Malformed type mismatch error with functional typeKT-67266
K2: disappeared INLINE_CLASS_DEPRECATEDKT-67569
K2: Fix default value parameters of Enum's constructor if it's declared in source codeKT-67378
K2: Don't usewrapScopeWithJvmMapped
for common source setsKT-67738
K2: Introducekotlin.internal.ActualizeByJvmBuiltinProvider
annotationKT-67136
Put $this parameter to LVT for suspend lambdasKT-62538
K2: Declarations inside external classes should be implicitly externalKT-67627
K2: External interface companion isn't external in IRKT-60290
K2: origin is not set for !in operatorKT-67512
K2: false positive WRONG_GETTER_RETURN_TYPE when getter return type is annotatedKT-67635
K2: No warning TYPE_MISMATCH_WHEN_FLEXIBILITY_CHANGES for SAM constructor with inferred typeKT-67598
K2: Fix incorrect castingUByte
toNumber
inFirToConstantValueTransformer
KT-56564
False positive "non-exhaustive when" in case of intersection typeKT-63969
K2: extra property in metadataKT-63968
K2: extra property in metadata for anonymous variable in scriptKT-67547
K/N can't build caches, fails with "clang++: error=2, No such file or directory"KT-64457
K2: Fix DecompiledKnmStubConsistencyK2TestGeneratedKT-67102
IR Evaluator: NoSuchFieldException when accessing a private delegated propertyKT-66377
IR Evaluator: "no container found for type parameter" when evaluating nested genericsKT-66378
IR Evaluator: Symbol is unboundKT-64506
IDE, IR Evaluator: NPE in ReflectiveAccessLowering.fieldLocationAndReceiver when evaluating private static propertiesKT-67380
K2: Don't check forequals
overriding for classAny
KT-67038
K2: Missing type of FirLiteralExpression causes an exception for property initializer type resolutionKT-59813
K2: Fix the TODO aboutfirEffect.source
inFirReturnsImpliesAnalyzer
KT-59834
K2: Fix the TODO aboutmerge(other)
inUnusedChecker
KT-59833
K2: Stop modifying values of enum entriesKT-59188
K2: Change positioning strategy forWRONG_NUMBER_OF_TYPE_ARGUMENTS
errorKT-59108
K2. SMARTCAST_IMPOSSIBLE instead of UNSAFE_IMPLICIT_INVOKE_CALLKT-65503
The inline processor cannot handle objects inside the lambda correctly when calling an inline function from another moduleKT-30696
NoSuchMethodError if nested anonymous objects are used with propagation reified type parameterKT-58966
Incorrect type inference for parameters with omitted type of anonymous function that is being analyzed as value of function type with receiverKT-67458
Use@PhaseDescription
for JVM backend lowering phasesKT-65647
K2 ignores diagnostics on sourcelessFirTypeRef
sKT-64489
K2: Rename FirAugmentedArraySetKT-67394
FIR: Make FIR repr of For from PSI and LightTree the sameKT-60261
K2: No origin is set for composite assignment operatorsKT-66724
K2 IDE. False positive errors because of wrong type inference in complex case of delegated property and type argumentsKT-40248
Confusing error message NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODYKT-66947
K2: false-positive JSpecify nullability enhancement warning on Java wildcard type argument with same base type but different nullabilities as upper and lower boundsKT-66974
K2: false-negative JSpecify nullability enhancement warning on nullable projection of Java wildcard type argument with non-null bounds in out-positionKT-66946
K2: false-negative JSpecify nullability enhancement warning on Java wildcard type argument with nullable upper bound in out-positionKT-66442
K2: No visibility error on importing private aliasesKT-66598
K2: Allow comparisons,is
-checks and casts between Kotlin and platform typesKT-55966
K2: Not enough information to infer type variable K if smartcast is usedKT-64957
K1: drop ModuleAnnotationResolverKT-64894
OPT_IN_ARGUMENT_IS_NOT_MARKER diagnostic message is unclearKT-67019
K2: IR has incorrect EQ origins for some inplace updating operatorsKT-59810
K2: Support other ConstraintPosition-sKT-55383
K1/K2: isClassTypeConstructor behaves differently for stub typesKT-60089
K2: Introduced ERROR_IN_CONTRACT_DESCRIPTIONKT-60382
K2: Refactor ExpectActualCollectorKT-62929
K2: investigate if guessArrayTypeIfNeeded is necessary in annotation loaderKT-65642
K2: IR: Array access desugaring doesn't have originsKT-24807
No smartcast to Boolean in subject of when-expression when subject type is non-nullableKT-66057
K2: incorrect supertype leads to class declaration being highlighted redKT-63958
K2: drop support of UseBuilderInferenceOnlyIfNeeded=falseKT-63959
K2: treat stub types as non-nullable for isReceiverNullable checkKT-65100
IrFakeOverrideBuilder: support custom 'remove(Int)' handling logic in MutableCollection subclasses
Compose compiler
New features
- cdfe659 Changed how compiler features being rolled out are enabled and disabled in compiler plugin CLI. Features, such as strong skipping and non-skipping group optimizations are now enabled through the "featureFlag" option instead of their own option.
IR. Actualizer
KT-66307
K2: property fake override isn't generated for protected field
IR. Inlining
KT-67660
Suspicious package part FQN calculation in InventNamesForLocalClassesKT-67208
KJS: put ReplaceSuspendIntrinsicLowering after IR inlinerKT-64958
KJS: Put as many as possible lowerings after the inlinerKT-67297
Implement IR deserializer with unbound symbols
IR. Tree
KT-67650
Add default implementations to methods for non-leaf IrSymbol subclasses from SymbolRemapperKT-67649
Autogenerate IrSymbol interface hierarchyKT-44721
IR: merge IrPrivateSymbolBase and IrPublicSymbolBase hierarchiesKT-67580
Autogenerate SymbolRemapperKT-67457
Introduce a way to simplify IR lowering phase creation
JavaScript
New Features
KT-18891
JS: provide a way to declare static members (JsStatic?)
Fixes
KT-68053
K2: NON_EXPORTABLE_TYPE on a typealias of primitive typeKT-68740
Kotlin/JS 2.0.0 IrLinkageError with dynamic function parameters inside data classesKT-62304
K/JS: Investigate the compiler assertion crash in JS FIR with backend testsKT-65018
JS: Deprecate error toleranceKT-64801
K2 + JS and WASM: Inner with default inner doesn't work properlyKT-67248
ModuleDescriptor in JS Linker contains incorrect friend dependeciesKT-67273
Creating Kotlin Collections from JS collectionsKT-64424
K2: Migrate JsProtoComparisonTestGenerated to K2KT-52602
Kotlin/JS + IR: incompatible ABI version is not reported when no declarations are actually used by a Gradle compilationKT-66092
K/JS & Wasm: .isReified for reified upper bound is wrongly falseKT-67112
Unable to apply@JsStatic
for common sources: [NO_CONSTRUCTOR]KT-62329
KJS: "UnsupportedOperationException: Empty collection can't be reduced" caused by external enum with "@JsExport
"KT-67018
K/JS: Executable js file for module-kind=umd contains top level this instead of globalThisKT-64776
Test infra for JS can't process dependency in mpp moduleKT-65076
Use the same instance when a fun interface doesn't capture or capture only singletons
Klibs
KT-68202
KLIB metadata: nested classes are sometimes inside a different 'knm' chunkKT-66968
Provide K/N platforms libs for all available targetsKT-66967
Provide K/N stdlib for all available targets in all distributionsKT-65834
[KLIB Resolve] Drop library versions in KLIB manifestsKT-67446
[KLIB Tool] Drop "-repository " CLI parameterKT-67445
[KLIB Tool] Drop "install" and "remove" commandsKT-66557
Check, that no bad metadata in klib is produced, when we failed to compute constant value
Language Design
KT-11914
Confusing data class copy with private constructor
Libraries
KT-51483
Documentation of trimMargin is (partly) difficult to understandKT-64649
Add explanation to "A compileOnly dependency is used in the Kotlin/Native target" warning messageKT-67807
JS/Wasm: ByteArray.decodeToString incorrectly handles ill-formed 4-byte sequences with a 2nd byte not being continuation byteKT-67768
Wasm: ByteArray.decodeToString throws out-of-bounds exception if the last byte is a start of a 4-byte sequenceKT-66896
Improve Array contentEquals and contentDeepEquals documentation
Native
KT-68094
K2/Native: Member inherits different '@Throws
' when inheriting from generic typeKT-67583
compileKotlin-task unexpectedly downloads K/N dependencies on Linux (but doesn't on Mac)
Native. C and ObjC Import
KT-65260
Native: compiler crashes when casting to an Obj-C class companion
Native. ObjC Export
KT-65666
Native: enable objcExportSuspendFunctionLaunchThreadRestriction=none by default
Native. Runtime. Memory
KT-67779
Native: SpecialRefRegistry::ThradData publication prolongs the pause in CMSKT-66644
Native: threads are too often paused to assist GC (with concurrent mark)KT-66918
Native: scan global root set concurrently
Native. Swift Export
KT-68259
Swift export: secondary constructs lead to compilation errorsKT-67095
Native: fix testNativeRefs export testKT-67099
Remove SirVisitor and SirTransformer from codeKT-67003
Abandon PackageInflator implementation in favour of PackageProvider component
Native. Testing
KT-68500
Native: Drop custom logic in ExtTestCaseGroupProvider, mute codegen/box tests explicitly
Tools. CLI
Tools. CLI. Native
KT-64524
Introduce a CLI argument to override native_targets field in klib manifest
Tools. Compiler Plugin API
KT-68020
K2: run FirSupertypeGenerationExtension over generated declarations
Tools. Compiler Plugins
KT-67605
K2 parcelize: false positive NOTHING_TO_OVERRIDE in one testKT-64455
K2: Implement ParcelizeIrBoxTestWithSerializableLikeExtension for K2
Tools. Fleet. ObjC Export
KT-68051
[ObjCExport] Support reserved method names
Tools. Gradle
KT-68447
ill-added intentionally-broken dependency source configurationsKT-68278
Spring resource loading in combination withjava-test-fixtures
plugin brokenKT-66452
Gradle produces false positive configuration cache problem for Project usage at execution timeKT-68242
Run tests against AGP 8.4.0KT-61574
Add project-isolation test for Kotlin/Android pluginKT-65936
Provide a detailed error for changing kotlin native version dependency.KT-67888
Remove usages of deprecated Configuration.fileCollection() methodKT-62684
PropertiesBuildService should load extraProperties only onceKT-67288
Test DSL should not fail the test if build scan publishing has failed
Tools. Gradle. JS
KT-68482
KotlinNpmInstallTask is not compatible with configuration cacheKT-68072
K/JS, K/Wasm: Module not found in transitive caseKT-68103
K/JS, K/Wasm: Generation of test compilation's package.json requires main compilationKT-67924
K/JS, K/Wasm: kotlinNpmInstall can rewrite root package.json
Tools. Gradle. Kapt
KT-64627
Kapt3KotlinGradleSubplugin uses property lookup that breaks project isolation
Tools. Gradle. Multiplatform
KT-64109
Using compileOnly/runtimeOnly dependencies in K/N-related configurations leads to odd behaviourKT-58319
kotlin.git: ProjectMetadataProviderImpl "Unexpected source set 'commonMain'"
Tools. Gradle. Native
KT-65761
Missing JDK Platform ClassLoader when compiling Kotlin native in daemonKT-67935
OverriddenKotlinNativeHomeChecker does not work well with relative pathsKT-64430
Remove deprecated KotlinToolRunner(project) constructorKT-64427
Stop using deprecated KotlinToolRunner(project) constructor call
Tools. Incremental Compile
KT-63476
Investigate the debug output of JVM compilation in KMP IC smoke tests
Tools. JPS
KT-63707
JPS: "Multiple values are not allowed for" caused by Compose
Tools. Kapt
KT-67495
File leak in when building with kaptKT-66780
K2 KAPT Kotlinc should exit with an exit code 1 (compilation error) if a Kapt task failsKT-66998
K2 KAPT: Reimplement support for DefaultImpls
Tools. Scripts
KT-67575
FromConfigurationsBase script definition unexpected behaviour with regex from gradle templatesKT-67066
DeepCopyIrTreeWithSymbols does not copy IrScript nodes correctlyKT-67071
K2: ScriptCompilationConfigurationFromDefinition is not serializableKT-67063
LauncherReplTest flaky on Windows