NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Maven Central, #260 by repository stars
Annotation Processor for Kotlin
Latest stable
2.1.21
Last release 2 years ago
no release in 18 months
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 14 of 14 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
46 releases · first in 2023
`KT-57553` Implement deprecation for open val with backing field and deferred initialization in K1
KT-58834 Analysis API: Add source shadowing feature to resolve extensionsKT-57515 LL FIR: Performance bottleneck in CompositeModificationTracker.getModificationCountKT-59266 K2: optimize FirElementBuilder.getOrBuildFir for elements outside bodyKT-59454 K2: drop resolve from org.jetbrains.kotlin.analysis.api.fir.components.KtFirVisibilityChecker#collectContainingDeclarationsKT-59453 K2: completion regression from org.jetbrains.kotlin.analysis.api.fir.components.KtFirVisibilityChecker#collectContainingDeclarationsKT-59189 Analysis API: KtFirKDocReference.resolveToSymbols is slowKT-58125 K2: LL FIR: KtToFirMapping.getElement is slow for KtUserTypes due to on-air resolution of typesKT-60940 K2: Analysis API: Reference shortener incorrectly handles types in vararg parameters declarationsKT-61026 K2 Scripts: FirLazyExpression should be calculated before accessing from on-air resolveKT-61009 K2 Scripts: KtFirExpressionTypeProvider: Expected FirResolvedTypeRef with ConeKotlinType but was FirImplicitTypeRefImplWithoutSource <implicit>KT-60357 K2 IDE. Reified types parameters are not resolved in a function bodyKT-60954 K2: Analysis API: Reference shortener does not work correctly with variable assignmentsKT-60317 K2 IDE. IAE "This method will only work on compiled declarations, but this declaration is not compiled" on invoking Find Usages for enum method in libraryKT-60728 K2: proper support for scripts in LL FIR transformersKT-60706 K2 IDE: FirJvmTypeMapper is not found for kotlin.kotlin-stdlib-commonKT-57743 K2 IDE: StackOverflowError from LLFirSessionCache for simple JPS project with cyclic dependenciesKT-60552 K2: merge StateKeeper and lazy body calculator for ANNOTATIONS_ARGUMENTS_MAPPING transformerKT-60641 Analysis API: Scope for class org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl not found exception when stdlib is missingKT-60586 K2: forbid analyze from write actionKT-60638 K2: Expected FirResolvedTypeRef with ConeKotlinType but was FirImplicitTypeRefImplWithoutSource <implicit>KT-54846 Analysis API: add isExpect/isActual to KtSymbolKT-59077 KtFirExpressionTypeProvider behaviour for KtSimpleNameReferences in function callsKT-60448 FirLazyResolveContractViolationException: lazyResolveToPhase(COMPILER_REQUIRED_ANNOTATIONS) cannot be called from a transformer with a phase COMPILER_REQUIRED_ANNOTATIONS from AllOpen pluginKT-59342 K2 IDE. FirLazyResolveContractViolationException: lazyResolveToPhase(TYPES) cannot be called from a transformer with a phase TYPESKT-59687 K2: Implement proper body update for in-block modificationsKT-60488 Analysis API: forbid providing custom KtLifetimeToken for every analyze callKT-59329 Resolve Extensions reference resolution breaks Find UsagesKT-60295 K2: move checkIsResolved for annotations from LLFirAnnotationArgumentsLazyResolver to LLFirTypeLazyResolverKT-59758 K2: Expected is FirResolvedTypeRef, but was FirImplicitTypeRefImplWithoutSource from ReturnTypeCalculatorWithJumpKT-60377 K2 IDE: This method will only work on compiled declarations, but this declaration is not compiledKT-59685 K2: rewrite on-air resolutionKT-59159 K2 IDE: declaration is not found exceptionKT-59297 K2: exception from body resolve leads to corrupted state and broken analysisKT-60132 K2: properties and functions without a name should be re-analyzable as wellKT-59199 K2 IDE: PSI changes which do not cause OOB modifications can be unseen from the FIR elementsKT-59667 Analysis API: PsiInvalidElementAccessException from JavaClassifierTypeImpl.substitutorKT-59705 KotlinExceptionWithAttachments: No fir element was found for getterKT-59697 AA standalone: JRT module paths are not properly populated in WindowsKT-59505 K2: implicit type lazy resolution doesn't work for delegated declaration from other moduleKT-56426 K2 IDE: Typealised functional types cannot be renderedKT-59598 AA: stackoverflow while simplifying a type with a recursive type parameterKT-58497 K2: Expected FirResolvedTypeRef for initializer type of FirPropertyImpl(Source) but FirImplicitTypeRefImplWithoutSource foundKT-59511 AA standalone mode creates Application Environment for testsKT-58161 Analysis API: Make methods in KtCallResolverMixIn more distinctive based on their receiver/return typeKT-59093 Do not throw exception on KtCall resolution, KtCallElement.resolveCall should return null on unknown casesKT-59240 K2: FirLazyResolveContractViolationException: lazyResolveToPhase(IMPORTS) cannot be called from a transformer with a phase IMPORTS from superTypesKT-59243 K2: FirLazyResolveContractViolationException: lazyResolveToPhase(IMPORTS) cannot be called from a transformer with a phase IMPORTS from permits typesKT-58194 K2: Low Level API: use smart pointers to store references to PSI from FIR declarations for JavaElementKT-59133 K2: java.lang.IllegalStateException: Fir is not initialized for FirRegularClassSymbolKT-58174 K2: LL FIR: Invalid type reference for T & Any typeKT-52615 LL FIR: build RAW FIR only by stubsKT-55053 K2: Exception "lateinit property diagnostic has not been initialized" in FirBuilderKT-58580 K2: LL FIR: Declarations provided by resolve extensions from a dependency module are not visible through LLFirCombinedKotlinSymbolProviderKT-58992 Analysis API: move org.jetbrains.kotlin.analysis.api.fir.utils.addImportToFile out of Analysis APIKT-58727 K2: AA FIR: implicit type in delegated function treated as errorKT-58653 K2: Analysis API: add functions for KtScope members access by nameKT-57559 K2 IDE: KotlinExceptionWithAttachments: Modules are inconsistent on intellij projectKT-58262 Analysis API: Declarations from Analysis API Resolve Extensions are not seen from completionKT-57455 LL FIR: Combine AbstractFirDeserializedSymbolProviders in session dependencies (optimization)KT-57207 LL FIR: Combine JavaSymbolProviders in session dependencies (optimization)KT-58546 K2: LL FIR: support name collision in a designation pathKT-58495 K2: Lazy calculation is redundantKT-58500 K2: null cannot be cast to non-null type org.jetbrains.kotlin.fir.FirPureAbstractElementKT-58493 K2: Expected FirResolvedTypeRef for default value type of FirValueParameterImpl(Source) but FirUserTypeRefImpl foundKT-58496 K2: Expected FirNamedReference, FirErrorNamedReference or FirFromMissingDependenciesNamedReference, but FirExplicitSuperReference foundKT-58499 K2: FirLazyBlock should be calculated before accessingKT-58491 K2: Expected FirResolvedTypeRef or FirImplicitTypeRef for return type of FirDefaultPropertyBackingField(Synthetic) but FirUserTypeRefImpl foundKT-56550 LL FIR: implement parallel resolve for non-jumping phasesKT-58503 Analysis API: KtFirNamedClassOrObjectSymbol.visibility/modality do not trigger STATUS resolveKT-57623 K2 IDE: ConcurrentModificationException from getSuperConeTypesKT-57966 K2: Analysis API: Reference Shortener does not work correctly when called on entire fileKT-58083 K2: LL FIR: implement FakeOverrideTypeCalculatorKT-27170 Android lint tasks fails in Gradle with MPP dependencyKT-61131 Virtual functions trampolines have invalid debug infoKT-58746 K/Wasm: Make Arrays' constructors with size and lambda inline (similar to other implementations)KT-58993 [K/Wasm] Fix w3c declarations with lambda parametersKT-60496 Compose-web Wasm crashes on remember { null } callsKT-60113 K/Wasm: illegal cast when using 1.9.20-devKT-60835 K/Wasm: fix compatibility with Node.js 20.*KT-59722 K/Wasm: Support new encoding with flags for br_on_cast and br_on_cast_fail instructionsKT-59713 K/Wasm: Implement enumEntries intrinsicKT-59082 WASM: NullPointerException caused by companion with String type constantsKT-58941 WASM Hang with extension delegate inside a ClassKT-59294 WASM: localStorage Cannot read properties of undefined (reading 'length')KT-60200 K/Wasm: generate types without supertypes properlyKT-52178 IR dump doesn't seem to work for Kotlin/WASM phasesKT-59556 Wasm: critical dependency when using with webpackKT-58681 K/Wasm: division remainder has a wrong signKT-56711 Wasm: IllegalStateException caused by dynamic typeKT-58545 KMP: prohibit implicit actualization via JavaKT-58536 KMP: prohibit expect tailrec / expect externalKT-58554 KMP: restrict expect opt-in annotations and actual typealiases to annotations with special meaningKT-58551 KMP: check all annotation from expect declaration are present on actualKT-59764 Make a frontend checker that reports cast to forward declaration as uncheckedKT-60528 Updates for JVM/IR backend of kotlin-atomicfu-compiler-pluginKT-59558 Add support for creating annotation instances with type parametersKT-52367 Devirtualization algorithm improvementKT-58652 Native: Implement frontend checkers for HiddenFromObjC on classesKT-59600 K2: CFG: do not add edges to nested classes and functionsKT-57860 K/N: Functions with default arguments of value/inline class types have poor performance due to value class boxingKT-60650 KMP: prohibit problematic actual typealiasesKT-58757 K2: False-positive NON_PUBLIC_CALL_FROM_PUBLIC_INLINE error in case an inline fun is protected and is a part of an internal abstract class declarationKT-59736 kotlinx.serialization + K2 + JS: e: java.lang.IllegalStateException: Symbol for kotlinx.serialization.json.internal/FormatLanguage.<init>|-547215418288530576[1] is unboundKT-59071 K2/MPP: internal declarations from common module are invisible in dependent source sets if there is more that one intermediate source set betweenKT-61270 Enabling Kotlin/Native caching causes 65K warnings from dsymutil when building Compose iOS appKT-57845 K2. Unresolved reference error on calling Java references with fully qualified nameKT-59408 K2: Missing MULTIPLE_DEFAULTS_INHERITED_FROM_SUPERTYPESKT-32275 Embedding kotlin-compiler-embeddable into a Java EE App leads to CDI related deployment errorKT-57329 K/N IR linkage issues due to the combination of static caches w/ Lazy IR & Compose compiler pluginKT-60531 K2/JS: Report diagnostics before running FIR2IRKT-59665 ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS isn't reported for actual typealias and fake-override actualizationKT-59465 K2: build kotlinx-datetimeKT-61461 K2: Kotlin native metadata compilation breaks when stdlib is present in -librariesKT-59247 Kapt+JVM_IR: AssertionError on anonymous object in enum super constructor callKT-58576 K2: IR actualization problems in MPP scenarioKT-61442 K2: Consider stricter filtering on implicit integer coercionKT-61441 K2: Wrong overload is chosen with ImplicitIntegerCoercion enabledKT-59466 K2: build kotlinx-benchmarkKT-61159 K2: OVERLOAD_RESOLUTION_AMBIGUITY between private top-level property in same file and top-level property in different moduleKT-56077 K2: build kotlinx.atomicfuKT-57963 K2: MPP: Annotation calls should be actualizedKT-61418 k2: ImplicitIntegerCoercion to List leads to "IllegalStateException: Cannot find cached type parameter by FIR symbol"KT-58884 K2: NotAMockException for mock testing with lambda expression with MavenKT-58893 K2: MockitoException for mock testing with lambda expression with GradleKT-59483 K2: Build a Native appKT-47702 Support call of Java annotation constructor without specifying a default valueKT-60862 Kotlin Scripting: NoSuchMethodError for ExternalDependenciesResolver.addRepositoryKT-58229 K2/MPP/JVM: compiler codegen crash on call of inherited generic class's method with actual-typealias as value parameterKT-55196 K2: False-negative CONST_VAL_WITH_NON_CONST_INITIALIZER on boolean .not() callKT-57738 K2: unresolved class fields and methods in kotlin scriptsKT-59449 K2: Diagnostic messages contain debugging-style rendered FIRKT-59849 K2: IllegalArgumentException: List has more than one elementKT-57553 Implement deprecation for open val with backing field and deferred initialization in K1KT-60830 KMP, K2: expect actual annotation IR checker doesn't unwrap actual typealiases to annotationsKT-57230 Support Kotlin/Wasm in the K2 platformKT-61029 K2: Duplicates when processing direct overridden callablesKT-61095 K2: "IAE: source must not be null" from FirMultipleDefaultsInheritedFromSupertypesCheckerKT-59409 K2: Missing DEFAULT_VALUE_NOT_ALLOWED_IN_OVERRIDEKT-60800 [atomicfu-K/N]: turn on the tests for the K/N part of the compiler pluginKT-59058 Companion object is not initialized on class constructor callKT-61163 Default params on actual check and inheritance by delegation compilation errorKT-61017 K2: intermediate expect/actual class results in expected class has no actual declaration in moduleKT-60181 K2: "NotImplementedError: An operation is not implemented" with SpringKT-59472 K2: build ReaktiveKT-60902 visibility vs upper bound expect actual matching conflictKT-59378 K2: Missing FINITE_BOUNDS_VIOLATION and FINITE_BOUNDS_VIOLATION_IN_JAVAKT-54786 MPP: "LazyTypeAliasDescriptor cannot be cast to class org.jetbrains.kotlin.descriptors.ClassDescriptor" caused by expected non-constant function argument on iOS if class is type aliasedKT-59753 K2: NotImplementedError when using annotation with vararg with default value from other moduleKT-61145 False negative NOTHING_TO_OVERRIDE when context receivers don't matchKT-60883 K2: Fix testRequireKotlinCompilerVersion in LV 2.0 branchKT-61054 K2: "IAE: source must not be null" with -no-reflect on calling property getter with implicit invokeKT-57126 [KLIB Reproducibility] Manifest is written using os-dependent line separatorsKT-59218 K2: return types of calls to @PolymorphicSignature methods inside try-expressions don't resolve to void when requiredKT-60002 K2: Missing UNSUPPORTED_SUSPEND_TESTKT-61011 K2 Scripts: FirRecursiveProblemChecker: Expected FirResolvedTypeRef with ConeKotlinType but was FirImplicitTypeRefImplWithoutSource <implicit>KT-58906 K2. "Backend Internal error: Exception during IR lowering" instead of CANNOT_INFER_PARAMETER_TYPE error when parameter type missing in lambdaKT-60587 K2: Implement warning NO_REFLECTION_IN_CLASS_PATHKT-59490 K2: build km-shopKT-59355 K2: Allow to actual classifier have wider visibility than the corresponding expect classKT-56179 [K2/N] interop_objc_tests/multipleInheritanceClash.kt test failedKT-59969 K2: Disappeared UNSUPPORTED_CONTEXTUAL_DECLARATION_CALLKT-59411 K2: Missing ENUM_CLASS_CONSTRUCTOR_CALLKT-59410 K2: Missing TYPEALIAS_EXPANDED_TO_MALFORMED_TYPEKT-59393 K2: Missing TYPE_ARGUMENTS_FOR_OUTER_CLASS_WHEN_NESTED_REFERENCEDKT-59382 K2: Missing PROTECTED_CONSTRUCTOR_NOT_IN_SUPER_CALLKT-59901 K2: Disappeared API_NOT_AVAILABLEKT-60779 K2: missing INTERFACE_CANT_CALL_DEFAULT_METHOD_VIA_SUPERKT-60824 K2 IDE: FirSyntheticCallGenerator: IAE: List has more than one elementKT-60144 JVM IR inline: backport primitive boxing in class literalsKT-55955 K2: callable references are not properly resolved when in conflict with expected typeKT-55373 K2. Unresolved reference error for type mismatch with callable referencesKT-59249 K2: Empty varargs are not serialized to KLIBKT-59110 K2. "NotImplementedError: An operation is not implemented." error on incorrect @Target annotationKT-57780 K2: Calling a constructor through a deprecated typealias doesn't report a deprecationKT-59586 K2: support JVM backend diagnostics in light tree modeKT-55221 K2: No error reported for self-referencing local function with inferred return typeKT-59376 K2: Missing TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERRORKT-60474 K2: False negative type mismatch for array literal with wrong numeric literalKT-59610 K2: Calls to annotations with default values are serialized differently in K1 and K2KT-60139 K2: Refactor handling of implicitly actual declarations (annotation & inline class constructors and property of inline class)KT-60793 K2: IllegalStateException: Expected FirResolvedTypeRef with ConeKotlinType but was FirJavaTypeRefKT-60427 K2 @Metadata annotations contain outerType/outerTypeId information for non-inner nested classesKT-60137 K2: Quite complicated redeclaration error description is displayed for data classesKT-60639 K2: IllegalStateException: Unsupported compile-time value GET_CLASS type=kotlin.reflect.KClass<p1.A>KT-59476 K2: build ClashForAndroidKT-56888 CFA: Valid green in K1 -> red in K2. catch_end -> finally -> after_tryKT-59165 K2: Prohibit class literals with empty left-hand sideKT-60573 K2: False positive/negative CONFLICTING_OVERLOADS for main functionsKT-60124 K2: Conflicting declarations on extension properties with different upper-bounded type parameterKT-60259 K2: Reflection target is missing on adapted function referncesKT-59036 InstantiationError when instantiating annotation with a parameter type as a default parameter of another annotationKT-59711 K/N: Implement enumEntries intrinsicKT-60154 K2: Expected some types errorKT-58139 K2/MPP/metadata: compiler FIR serialization crash on complex expression as annotation argumentKT-59485 K2: build Anki-AndroidKT-59415 K2: Missing DATA_CLASS_OVERRIDE_DEFAULT_VALUES_ERRORKT-59710 K/JVM: Implement enumEntries intrinsicKT-57984 K2/JS fails with IdSignature clash for inherited expect/actual functionKT-59398 K2: Missing NOT_SUPPORTED_INLINE_PARAMETER_IN_INLINE_PARAMETER_DEFAULT_VALUEKT-60645 Native: dynamic caches are broken on LinuxKT-50221 FIR: handle enhanced/flexible nullability inside withNullability properlyKT-59281 JVM IR inline: incorrect type of created arrayKT-59507 JVM IR inline: invocation of arrayOfNulls by function reference results in exceptionKT-58359 Allow volatile intrinsics on inline function constant argumentsKT-60598 K2: add OptIn checkers for command line argumentsKT-58360 Intrinsics for atomic update of array elementsKT-59392 K2: Missing NAME_CONTAINS_ILLEGAL_CHARSKT-59391 K2: Missing JS_BUILTIN_NAME_CLASHKT-60580 K2: Not supported: class org.jetbrains.kotlin.fir.types.ConeFlexibleTypeKT-59830 K2. False negative [FINAL_SUPERTYPE] on extending final class through type aliasKT-59644 K2: the companion object in an expect class requires to be explicitly defined for compileNativeMainKotlinMetadataKT-59640 K2: expect constructor requires calling this or super but didn't use toKT-59404 K2: Missing EXPECT_TYPE_IN_WHEN_WITHOUT_ELSEKT-58778 JVM IR inline: add fake variables for debuggerKT-55072 K2: False positive "suspension point is inside a critical section"KT-58883 K2: False negative type mismatch for generic annotation in collection literalKT-59581 K2: Initializer type mismatch: expected Array<KClass<*>>, actual Array<KClass<out Serializable>> in annotation parameter default value using array literalKT-60387 K2: IDE K2: "org.jetbrains.kotlin.fir.expressions.impl.FirArgumentListImpl cannot be cast to class org.jetbrains.kotlin.fir.expressions.impl.FirResolvedArgumentList"KT-59548 FIR2IR: inconsistent generation of dispatch receiver for object methodsKT-59416 K2: Missing EXTERNAL_INTERFACE_AS_REIFIED_TYPE_ARGUMENTKT-59417 K2: Missing CALL_FROM_UMD_MUST_BE_JS_MODULE_AND_JS_NON_MODULEKT-59381 K2: Missing CALL_TO_JS_NON_MODULE_WITH_MODULE_SYSTEMKT-59377 K2: Missing CALL_TO_JS_MODULE_WITHOUT_MODULE_SYSTEMKT-59384 K2: Missing DYNAMIC_NOT_ALLOWEDKT-59406 K2: Missing PROPERTY_DELEGATION_BY_DYNAMICKT-60247 K2: order of data class generated member differs in IRKT-57223 K2: false-negative INAPPLICABLE_JVM_NAME on non-final properties outside interfacesKT-60183 K2: INAPPLICABLE_JVM_NAME on private methods with all-open pluginKT-57240 K2 MPP: Actualization doesn't work for flexible typesKT-60436 K2: investigate possible FirJavaTypeRef equals parameter in FirDataFlowAnalyzer.hasEqualsOverrideKT-60299 K2: when a typealias to Unit is returned, an explicit return is now requiredKT-58005 K2: Unsupported compile-time value BLOCK for Repeatable annotationsKT-60223 K2: Wrong import with import aliasKT-54854 K2. Unresolved reference for not imported declaration when it is already imported as an import alias is absent in K2KT-59708 K2: "Property must be initialized or be abstract" occurs due to constructors orderKT-58483 K2. -Xmulti-platform flag isn't workingKT-53490 FIR: Refactor augmented assignment resolving code - fix lhs-related problems and combine similar code in array and assign operator handlingKT-59673 K2: incorrect error messageKT-58578 K2: Commonize expect-actual logic between FIR and IR actualizerKT-54989 FIR2IR: fragile code in postfix op detectionKT-59464 K2: Investigate cases of implicit type refs in Fir2IrImplicitCastInserterKT-53898 K2: False negative VAL_REASSIGNMENT on member valsKT-55933 K2: False negative Overload resolution ambiguity for call functions with named parameters if one of params is varargKT-56460 K2: Do not re-run DiagnosticCollectorVisitor from FirInlineDeclarationChecker.checkChildrenWithCustomVisitorKT-57641 K2: "java.lang.NoSuchFieldException: INSTANCE" in kotlin-reflect for KClass.objectInstance on an anonymous objectKT-59299 [K2] ISE in IrBindablePublicSymbolBase.bind on equals function from companion of serializable classKT-58844 Incorrect type mismatch error: "actual type is kotlin/Int but kotlin/Int was expected"KT-59413 K2: Missing VALUE_CLASS_CANNOT_HAVE_CONTEXT_RECEIVERSKT-56173 FIR: IrGenerationExtensions cannot see default values from expect declarationsKT-59858 Kotlin Native: Compilation failed: Sequence contains more than one matching element, org.jetbrains.kotlin.backend.konan.lower.FunctionReferenceLowering$FunctionReferenceBuilder.buildClass(FunctionReferenceLowering.kt:644)KT-58539 [K2] Ir actualization fails to match expect/actual declarations that use custom function typesKT-59775 'toString()' on Object returns different result with concatenationKT-59737 K2: Actual class 'actual class FastArrayList<E> : AbstractMutableList<E>, MutableListEx<E>, RandomAccess' has no corresponding members for expected class members because of different parameter names in JavaKT-59613 K2: Unhandled intrinsic in ExpressionCodegen exception in for expect function with default value in parameterKT-59216 K2. Unhelpful unresolved reference when inheriting from interface with constructor call (K1 reports NO_CONSTRUCTOR instead)KT-57377 K2/MPP: internal declarations from common module are inivisible for intermediate modules during metadata compilationKT-59362 K2/MPP: .toByte() conversion for const val causes SourceCodeAnalysisException: java.lang.NullPointerException: nullKT-51670 FIR: questionable behavior for deprecated String constructorsKT-35314 StackOverflowError with nested try-finally and function with contractsKT-53460 False positive smartcast warning in if block after if blockKT-40851 False MUST_BE_INITIALIZED_OR_BE_ABSTRACT error for a property which is initialised in the init blockKT-59695 K2: false negative NON_PUBLIC_CALL_FROM_PUBLIC_INLINEKT-42995 False negative "VAL_REASSIGNMENT" in try/catch block with initialization in scope functionKT-41198 False positive “Variable must be initialized” with assignment in scope function and safe callKT-47494 CFG SOE on incorrect codeKT-47892 False negative BREAK_OR_CONTINUE_OUTSIDE_A_LOOP with continue in init block inside forKT-58901 K2. Value parameter default values are not checked for type mismatchKT-48115 Member functions with type parameter and contract don't produce smartcastsKT-47567 'Val cannot be reassigned' error not reported in unreachable codeKT-59541 K2: Type checking has run into a recursive problem on code that was compiling with Language 1.9KT-58943 K2: Incorrect with K1 priority of "invokeExtension + implicit receiver" candidateKT-37375 [FIR] Incorrect invoke resolutionKT-59286 JVM IR inline: local property not foundKT-58823 K2: Android app crashes right after start: java.lang.NoSuchMethodError: No virtual method findViewById(I)Landroid/view/ViewKT-57754 K2: No public signature built for the synthesized delegate fieldKT-58533 K2: "Not enough information to infer type variable T" for generic call in throw expressionKT-34846 FIR Java: enhance type parameter bounds properlyKT-52043 FIR: FirValueParameter with SubstitutionOverride does not reference the original FIR declarationKT-59291 JVM IR inline: unexpected result of apiVersionIsAtLeast invocationKT-59038 [K2] IllegalStateException in mixed Java/Kotlin inheritanceKT-59487 K2: build KSP-playgroundKT-59489 K2: builld spring-petclinic-kotlinKT-58908 K2. Internal error "kotlin.UninitializedPropertyAccessException: lateinit property firType has not been initialized" on incomplete isKT-56755 K2: Investigate failures related to line numbers with LT compilation enabledKT-56139 K2: consider adding source element for implicit receiversKT-57489 K2: Incorrectly generated line numbers in companion object access inside classKT-58947 Run all existing codegen box tests with kapt stub generationKT-58827 K2 reports ACTUAL_WITHOUT_EXPECT on the whole classKT-54917 K2: ILT leak from a completed generic callKT-56187 K2: type parameter's upper bound is ignored in callable referencesKT-56186 K2: lack of type arguments in type constructor is ignored in callable referencesKT-59356 K2: Restrict rules for matching of expect supertypes for actual classKT-57217 K2: NoSuchMethodError on toChar call on java inheritor of java.lang.NumberKT-58356 K2: StackOverflowError with OptIn and Deprecated, while compiling Kotlin projectKT-57954 K2. Auto-generated "entries" member of enum class has higher priority than user-declared companion object with same name when language version is set to 2.0KT-59508 K2: Make sure that warnings-severity nullability annotations are not perceived as reasons for nullability errorsKT-53820 FIR: mismatching error message for invisible reference/memberKT-58641 K2: PublishedApi has no effect when internal fun used in the test source setKT-59461 K2: Erroneous null check when returning not-null typealias to nullable typeKT-58980 K2: Import of java field from companion's base breaks the compilerKT-59140 K2: "Symbol public final static field is invisible" caused by java static field called in kotlin codeKT-59501 Escape analysis constructs arrays of negative sizeKT-59452 apiVersionIsAtLeast calls in body of stdlib inline function may be evaluated on compile-timeKT-53967 [PL] Classifiers: Turning interface from fun to non-fun + adding member function causes Kotlin/JS fail: IAE: "Sequence contains more than one matching element"KT-59346 Not working breakpoints on not initialized variablesKT-55993 Wrong current pointer: strange behaviour of debugger or compiler when two IFs and an uninitialized variable between themKT-58335 K2: Exposed typealias from implementation dependency produces type mismatch in dependent moduleKT-58719 K2: false-positive INVISIBLE_REFERENCE error in case of importing an internal abstract classKT-57694 K2: False positive [NOTHING_TO_OVERRIDE] for a class overriding 'sort' method from the List collectionKT-58460 K2. return without argument became allowed for functions with return type AnyKT-49249 Incorrect nullability inferred for ThrowableKT-57429 K2: Fix computing a mangled name for members of a generic class that reference the class's type parameters in their signatureKT-57566 K2: Fix name mangling for functions that have dynamic type in their signatureKT-57818 K2: Fix FirMangleComputer to not include the "special" package name into mangled names of property accessors on non-JVM platformsKT-57777 K2: Fix computing a mangled name for the synthesized entries property getter of an enum classKT-57433 K2: Fix computing a mangled name for top-level functions and propertiesKT-58553 k2: Annotation type arguments are lost in FIR2IRKT-58184 K2: False negative INVISIBLE_MEMBER on destructuring declarationKT-58637 K2: False negative ABSTRACT_MEMBER_NOT_IMPLEMENTED on Entry of Enum with abstract member declarationKT-54952 JvmSerializationBindings does not work with K2KT-54844 FIR/Analysis API: create stubs for equals/hashCode/toString for data classes in FIRKT-58555 K2: Generic property reference inside delegation misses type argumentKT-57648 FIR: move deprecation calculation on COMPILER_REQUIRED_ANNOTATIONS phaseKT-57049 K2 generates duplicates of symbols/declarationsKT-55723 K2: deprecations for enum entries are not resolved on the TYPES phaseKT-59033 Doesn’t support vararg parameter in annotation instantiation with empty argumentsKT-58780 JVM IR inline: local property delegation is not working for K2KT-58779 JVM IR inline: correctly process special inlined block in value class loweringKT-58720 Generate full InnerClass attributes for the standard libraryKT-58215 K2: JVM IR produces line numbers for delegation bridges that are not marked with ACC_BRIDGEKT-42696 JVM IR generates line numbers for all bridges leading to extra steps in the debuggerKT-57228 K2: annotations for interface member properties implemented by delegation are copiedKT-57216 K2: non-trivial enum declaration does not have ACC_FINAL in the bytecodeKT-55866 K2: Constant as parameter of @JvmName: BE: "Unsupported compile-time value CALL private final fun <get-TAG>"KT-58717 Object on the left-hand side of callable reference is not initialized if KCallable.name optimization is usedKT-59211 Kapt+JVM_IR: AssertionError on delegating to anonymous objectKT-57251 K2: weird error message when trying to instantiate an expect class without explicit constructorKT-58623 Language version 2.0: compiling into common, Native does not report "Protected function call from public-API inline function is prohibited", while JVM, JS doKT-55945 NoSuchMethodError when calling method with value class parameter on java class inherited from kotlin classKT-58840 K1/K2: false positive EXPOSED_FUNCTION_RETURN_TYPE related to protected lower boundKT-57243 K2: no warning or error reported on expect class in CLI, and JVM backend tries to generate it to a .class fileKT-57833 K2 reports NO_ACTUAL_FOR_EXPECT for inherited properties with the same nameKT-58153 K2/MPP/JVM&Native: cannot override Any::toString when an expect-supertype has Any::toString override in actual-classKT-58124 K2: FIR2IR compiler crash with MPP (Fir2IrSimpleFunctionSymbol is already bound)KT-57803 K2. "Kotlin: Only the Kotlin standard library is allowed to use the 'kotlin' package" error missing in 2.0KT-57504 [K2/N] Wrong coercion of ILT: 7 to kotlinx.cinterop.COpaquePointer causes Cannot adapt kotlin.Int to kotlinx.cinterop.CPointer during autoboxingKT-57484 K2: false positive OVERLOAD_RESOLUTION_AMBIGUITY with ImplicitIntegerCoercionKT-57971 K1/K2: False positive "Redundant 'suspend' modifier" warning on declaration site when suspend function is also argumentKT-56779 Checkers false negative: AbstractMethodError when accessing setter via an interface where the member is defined as var, but it's val in implementationKT-51793 FIR: Investigate property+invoke resolution prioritiesKT-57003 FIR: missing annotation on parameter of data class' synthetic copyKT-57269 K2: collection stub for sort is not generated for custom List subclassesKT-54748 K2: incomprehensible errors when type parameter has the same name as a classKT-50703 FIR: Improve reporting UPPER_BOUND_VIOLATED for type arguments of typealias constructor callsKT-57622 Fix incorrect metadata for data class generated methodsKT-54887 K2: fix behavior of references to value classes equals/hashCode/toStringKT-58937 K2: Annotation vararg arguments are incorrectly serializedKT-58621 K2: Private class shadows public function defined in the same packageKT-59041 K2. "IllegalStateException: Expected FirResolvedTypeRef with ConeKotlinType but was FirImplicitTypeRefImplWithoutSource <implicit>" on incorrect collection declarationKT-58665 K2: Optional.of incorrectly accepts nullable StringKT-58938 K2. Abstract class can be invoked using member reference :: operatorKT-50798 FIR: False negative UPPER_BOUND_VIOLATED_IN_TYPEALIAS_EXPANSIONKT-47409 FIR: Investigate inference for equality (==) operatorKT-58294 K2 compiler crashes with OOM on deserializing annotation applied to itself with a enum outer/nested parameterKT-58972 K2: Error message of PRIVATE_CLASS_MEMBER_FROM_INLINE doesn't mention class membersKT-58989 K2: Forbid suspend operator get/setValue and provideDelegateKT-59177 K2: Report NAMED_ARGUMENTS_NOT_ALLOWED for named parameters in lambdasKT-57028 K2: "NSEE: Sequence contains no element matching the predicate" with stream related Java apiKT-58007 K2: Unsupported compile-time value GET_FIELD FIELD PROPERTY_BACKING_FIELD when const value is default for annotationKT-58472 Secondary constructor breaks MUST_BE_INITIALIZED checkKT-58902 K2: Calls to overridden method with default parameter are not compiledKT-58549 K2: variable type is infered to non-existing interfaceKT-58613 K2: ConcurrentModificationException from FirSignatureEnhancement.performFirstRoundOfBoundsResolutionKT-55552 K2. False negative TYPE_MISMATCH in implementation via delegationKT-57436 Fix computing mangled names of generic properties from IR-based declaration descriptorsKT-57701 Unify selection of inherited callable with default implementation among multiple candidates in JVM, Native & JS backendsKT-58444 K2/MPP/metadata: compiler FIR2IR crash on constant with intrinsic initializer from common source set in Native-shared source setKT-57756 K2: Missing syntax errors when light tree parsing is usedKT-57435 Fix computing mangled names for functions with context receiversKT-57219 K2: incorrect relative order of normal and use-site-targeted annotations on property getter in the resulting bytecodeKT-57955 K2: "ClassCastException: class org.jetbrains.kotlin.ir.declarations.impl.IrExternalPackageFragmentImpl cannot be cast to class org.jetbrains.kotlin.ir.declarations.IrDeclaration" with property delegateKT-57425 K2: False-positive smartcast on property accessed through a property from another moduleKT-57844 K2. Not relevant errors when accessing Java member which have private overloads with argument type mismatchKT-58584 K2: "UninitializedPropertyAccessException: lateinit property packageFqName has not been initialized"KT-58529 K2: "Extension function type is not allowed as supertypes" compile errorKT-58284 K2: False negative ITERATOR_MISSINGKT-55078 K2 IDE: Infinite recursion in org.jetbrains.kotlin.fir.java.JavaScopeProvider#findJavaSuperClassKT-58080 K2: False-positive TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM on annotated const valKT-56523 K2 should report MANY_INTERFACES_MEMBER_NOT_IMPLEMENTEDKT-58238 Support dumping signatures and mangled names in irText testsKT-58456 K2: Custom function type metadata breaks Compose library compatibilityKT-58267 K/N: do not reference hidden Array.content* functions from the compilerKT-54792 Store program order of properties inside @kotlin.MetadataKT-57791 Native: Method returning String? leads to exception: Unexpected receiver type: kotlin.StringKT-58437 K2: Do not use descriptors in KonanSymbolsKT-57432 K2: Don't create default getters and setters in case when they are not neededKT-46047 FIR: incorrect type of integer literalsKT-57487 [K2/N] Stdlib ArraysTest fails with Class found but error nodes are not allowedKT-56951 K2: False negative error on compound assignment for property of type ByteKT-57222 K2: compiler FIR serialization crash on two functions with captured type and object literalKT-58224 K2: deprecation on field is not detected properlyKT-55662 K2. Incorrect type mismatch error "inferred type is IOT" instead of "inferred type is Int"KT-55668 K2. 'in' modifier became applicable to star projectionKT-57064 K2: hidden internals of dealing with type-aliased primitive types are exposed to userKT-58252 K2: Symbol already bound for backing field during building resulting JS artifact for MPP projectKT-56940 K/Wasm: report compiler errors for unsupported external declarationsKT-56943 K/Wasm: implement @WasmImport diagnosticsKT-55903 K2: False negative CANNOT_CHECK_FOR_ERASED on is-check for type with reified type argumentsKT-56944 K/Wasm: implement @JsFun diagnosticsKT-58329 K2: False-positive suspend conversion for anonymous functionsKT-58028 K2: False-positive TYPE_PARAMETER_IS_NOT_AN_EXPRESSIONKT-28611 MPP: Gradle -> IDE: settings provided via compilations DSL are not imported into common modules facetsKT-60603 K2: Investigate intellij tests failures in branch 2.0KT-60590 Fix light classes related tests in branch 2.0KT-60530 K2 scripting: exception on .gradle.kts openingKT-60539 K2: "KtInaccessibleLifetimeOwnerAccessException: org.jetbrains.kotlin.analysis.api.lifetime.KtReadActionConfinementLifetimeToken@3ce52fd9 is inaccessible: Using KtLifetimeOwner from previous analysis" at highlightingKT-60341 K2 IDE: "UnsupportedOperationException: Unknown type CapturedType(*)?"KT-60518 K2 IDE. False positive [NON_MEMBER_FUNCTION_NO_BODY] when completing function with Complete current statementKT-60323 K2 IDE. "KotlinExceptionWithAttachments: Unexpected returnTypeRef. Expected is FirResolvedTypeRef, but was FirImplicitTypeRefImpl" exception on contract return typeKT-60352 K2 IDE. Support Java RecordsKT-56503 K2 IDE: FIR tree is incorrect in a case of ProcessCancelledException was thrown during phase executionKT-59843 SLC: KotlinAsJavaSupport.packageExists (via KotlinStaticPackageProvider) said ROOT package doesn't exist if no KtFiles are givenKT-59836 Symbol Light Classes: Type parameters from the parent interface aren't copied to DefaultImpls methodsKT-59445 Recursion detected on input: JavaAnnotationImplKT-59533 AA/SLC: anonymous object appears during PsiType conversion, resulting in IllegalArgumentException:KtFirPsiTypeProviderKt.asPsiTypeElementKT-59563 Symbol Light Classes: Incorrect type erasure in $annotations methods for extension properties with generic parametersKT-57567 SLC: missing final modifier on enum (non-synthetic) membersKT-59537 SLC: SymbolLightClassForAnonymousObject with null parentKT-59293 Symbol Light Classes: DefaultImpls methods must be static and have an additional $this parameterKT-59325 Symbol Light Classes: Non-existing fields for properties from companion objectsKT-57579 SLC: unboxed type argument as method return typeKT-54804 Generate synthetic functions for annotations on properties in light classesKT-56200 Kotlin FIR reference resolve exception leaks user codeKT-58448 K2 / IDE / SLC: findAttributeValue for attribute w/ default value raises ClassCastExceptionKT-60451 K2 IDE: FirDeclaration was not found for class org.jetbrains.kotlin.psi.KtProperty, fir is class org.jetbrains.kotlin.fir.expressions.impl.FirBlockImplKT-36677 MPP Gradle plugin doesn't respect manually set compiler arg -opt-inKT-58696 MPP + IDEA: tryK2 does not affect LV value of common facetsKT-61464 MPP, IDE: Metadata compilation task options are not imported to the corresponding source setKT-53875 Warn users about erroneously adding dependsOn from test to mainKT-48554 [Multiplatform Import] Ensure consistency between GradleImportProperties and PropertiesProviderKT-60749 Scripting: default definition as a fallbackKT-60171 K2 IDE: scripting freeze on kotlin project build.gradle.kts fileKT-60199 K2 scripting: exception on script openingKT-60193 K2 scripts: configuration discovery fails silently from time to timeKT-59801 K2 IDE: Adding of an import with a task name to a build script leads to unresolved referencesKT-60236 K2 scripting: completion fails with exceptionKT-60053 IdeaKotlinBinaryCoordinates doesn't respect capabilities and classifier attributesKT-56684 Adopt KMM UI tests to be used with IDEAKT-50952 MPP: Commonized cinterops doesn't attach/detach to source set on configuration changesKT-60307 K2 IDE. KotlinExceptionWithAttachments in script fileKT-60519 Analysis API: scripts are not invalidated on PCEKT-59347 Rename Compose Multiplatform wizard to Compose for DesktopKT-60744 Restore binary compatibility of toIrConst functionKT-59308 Auto-generate the IrFactory interfaceKT-59772 Restore compatibility of IrFactory#createFunctionKT-59771 Restore compatibility of IdSignature.CommonSignatureKT-44838 Kotlin/JS source-map-loader slow performance since 1.4.0KT-58684 KJS: ES15 classes — creating instance by classKT-58187 KJS / IR: Huge performance bottleneck while generating sourceMaps (getCannonicalFile)KT-61581 KJS: generate separate imports for useEsModules()KT-56737 K2: build Space JSKT-59001 K/JS: Use open-addressing hash map in JS stdlibKT-6168 Ability to generate one JS file for each Kotlin source fileKT-60667 K2 / KJS: jsTest fails with "SyntaxError: Unexpected token '}'" on runtimeKT-60131 KJS: Interference between @JsExport and final implementation of propertiesKT-60495 K2: Make JS CliTestGenerated working with K2KT-59712 K/JS: Implement enumEntries intrinsicKT-60202 JsExport.Ignored internal extension still has "JavaScript name (<get-const>) generated for this declaration clashes with another declaration"KT-58857 KJS/IR: js file is not generated when source is stored in /var folderKT-53482 KJS: Inheritance from JS class fails in ES6, because constructor is not called with newKT-58891 K/JS: non-local return in lambda may leave an unreachable JS code after returnKT-49077 KJS / IR: Wrong method called when using overloaded methods and class with the same nameKT-59718 K/JS: Concatenating a String with a Char can lead to boxing of the CharKT-59717 K/JS: a redundant boxing of a returned Char from an inline functionKT-39506 Kotlin/JS browser application using JS IR and React fails in runtime with "TypeError: _this__0._set_name__2 is not a function"KT-59151 K2 / KJS: NullPointerException in Fir2IrClassifierStorage.preCacheBuiltinClassesKT-59335 K/JS ES6 classes: A child constructor, when using parent secondary constructor super call, creates a parent objectKT-58797 Optimize the code generated for objects on JS and Wasm backendsKT-52339 FIx failing JS tests after bootstrap updateKT-46643 KJS / IR: Setter of overridden var of external val is removedKT-55315 IR: can't access the stack property of ThrowableKT-59204 Automatically generate NATIVE directive in tests for IR signaturesKT-59239 K/JS: Bridge not generated for checking parameter type in generic class overrideKT-57347 KJS: BE IR Incremental cache invalidation doesn't work after inserting Partial Linkage stubKT-58599 KJS: Adding an override method to open class does not rebuild children JS codeKT-58003 K2/MPP/JS: compiler IR serialization crash on multiple calls to inherited expect-functionKT-38017 KJS: tests generate invalid code depending on file namesKT-25796 KJS: Top-level constructs are put in an incorrect orderKT-58396 KJS / IR: "IllegalStateException: Validation failed in file" with Enum.entries and inheritanceKT-59492 KMM AS plugin for Canary 231 reports errorKT-54402 Programmatic API to dump public signatures from KLibsKT-58877 [klib tool] add ability to dump klib irKT-59136 [PL] Lower the default PL engine messages log level down to INFOKT-59486 klib: Serialize mangled names along with signaturesKT-60576 Keep supported IR signature versions in manifestKT-57614 KMP: consider prohibiting actual typealias when the corresponding expect class has default argumentsKT-61573 Mark expect/actual classifiers as experimentalKT-22841 Prohibit different member scopes for non-final expect and its actualKT-49175 Inconsistency with extension super-type allowance between suspend / non-suspend function typesKT-27750 Reverse reservation of 'yield' as keywordKT-59440 Rework Flags API in kotlinx-metadata-jvmKT-56106 Migrate stdlib to current Kotlin Multiplatform PluginKT-58123 Update deprecations in native atomic classes for 1.9.20KT-58887 Reflection: "IllegalArgumentException: argument type mismatch" when using reflection to invoke a value class returning function that suspendsKT-61342 kotlin-test-wasm-* artifacts include test codeKT-61315 Publish common sources in kotlin-test-js sources jarKT-56608 WASI Preview1 version of Kotlin/Wasm stdlibKT-55765 Review and stabilize stdlib surface available in K/NKT-53154 Deprecate enumValues and replace it with enumEntries in standard libraryKT-55297 kotlin-stdlib should declare constraints on kotlin-stdlib-jdk8 and kotlin-stdlib-jdk7KT-60911 Compatibility publishing of kotlin-stdlib-commonKT-57838 Native: raise ExperimentalNativeApi opt-in requirement level to ERRORKT-58402 Migrate Vector128 from kotlin.native to kotlinx.cinteropKT-53791 Publish standard library as a multiplatform artifact with Gradle metadataKT-57363 Remove reified constraint from Array constructors in platforms where Array type parameter is not required to be reifiedKT-57401 Native: Regex matching zero length should split surrogate pairsKT-57359 Provide Common StringBuilder.append/insert with primitive type argumentsKT-58264 K2: republish kotlinx.metadata to support LV 2.0KT-57710 Native: Internalize @Retain and @RetainForTarget annotationsKT-57720 Native: Consider strictening NativeRuntimeApi opt-in requirement level to ERRORKT-57837 Deprecate kotlin.native.SharedImmutable and kotlin.native.concurrent.SharedImmutableKT-58126 Wasm: Consider removing Primitive.equals(Primitive) overload on primitive typesKT-53327 Migrate all usages of 'Enum.values' to 'Enum.entries' in standard libraryKT-59366 Deprecate KmModule.annotationsKT-59365 Get rid of two-stage parsing in KotlinClassMetadataKT-35116 Enum.valueOf throws inconsistent exception across multiple platformsKT-59223 Native Enum.hashCode should return identity hash code, similar to JVMKT-56637 Native: 'String.indexOf' matches byte sequences not on the char boundary, which also makes the result of 'split' and 'replace' operation incorrectKT-59192 Align behavior of collection constructors across platformsKT-61417 Native: string and array variables are not properly displayed in lldb when compiling with caches with Xcode 15KT-60230 Native: "unknown options: -ios_simulator_version_min -sdk_version" with Xcode 15 beta 3KT-50463 Native: Provide a way to control the KONAN_DATA_DIR by the Gradle mechanismsKT-59448 K2: IR and FIR signatures are not same for composable functionsKT-59149 Native: check compiler compatibility with Xcode 15 beta 1KT-58537 iOS project fails to build with rootProject.name = "Contains Space"KT-59073 Native: don't include kotlinx.cli endorsed library into compiler distributionKT-58654 Compiler error from kotlin.collections.Map : "Invalid phi record", while compiling for kotlin nativeKT-56182 [K2/N] C export doesn't work for non-root packages with K2KT-55578 Custom user message for linker errorKT-56041 [K2/N] Fix broken __builtin_nanf(String)KT-57716 [K2/N] Validation failed in file smoke.kt : unexpected type: expected platform.objc.Protocol?, got objcnames.classes.Protocol?KT-56028 [K2/N] cnames.structs.Foo does not resolveKT-52882 MPP / Native: expect/actual mechanism broken when base contract is NSObjectProtocolKT-59643 K2: Disable merging of forward declaration with real declaration classKT-59642 Remove ability to import forward declaration by library package nameKT-59645 Cast to objective C forward declaration crashes compilerKT-58793 [K2/N] Package separators after mangling are different for IR and FIRKT-56090 [K2/N] Emit DocString klib extensions for ObjCExportKT-57773 Kotlin/Native: track memory in big chunks in the GC schedulerKT-55364 Implement custom allocator for Kotlin/NativeKT-57772 Kotlin/Native: concurrently process weak references in GCKT-57771 Kotlin/Native: parallel mark in GCKT-60608 Introduce AtomicArrays API in K/N stdlibKT-61507 Native: enum hashcode is not finalKT-59120 Native: Rewrite stdlib AtomicReference with Volatile instead of custom C++ codeKT-61304 Reflection: Calling data class copy method via reflection (callBy) fails when the data class has exactly 64 fieldsKT-41373 "KotlinReflectionInternalError: Unresolved class" when inspecting anonymous Java classKT-52071 Continue gracefully when the system property check "kotlin.ignore.old.metadata" failsKT-60662 Add JVM target bytecode version 21KT-58183 ParseCommandLineArgumentsKt.parseCommandLineArguments takes ~500msKT-58690 OutOfMemory when compiling in CLIKT-58065 K2: Enable light tree instead of PSI for CLI compilation of JS and Native by defaultKT-59245 [K1/N] Compile sources to native binary in two stagesKT-56855](https://youtrack.jetbrains.com/issue/KT-5Note truncated.
Your coding agent can read these notes before it upgrades. Set up the MCP server →
One column per quarter.