Skip to content

Migrate to Kotlin 2.3.20#8952

Open
landomen wants to merge 1 commit into
developfrom
feature/landomen/kotlin-2.3.20-upgrade
Open

Migrate to Kotlin 2.3.20#8952
landomen wants to merge 1 commit into
developfrom
feature/landomen/kotlin-2.3.20-upgrade

Conversation

@landomen

@landomen landomen commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Task/Issue URL: https://app.asana.com/1/137249556945/project/1214119362406643/task/1214799610249614?focus=true
Tech Design URL (if applicable): N/A

Description

  • Bump versions (versions.properties): version.kotlin 2.2.21 → 2.3.20; KSP 2.2.21-2.0.5 → 2.3.7 (both KSP lines; KSP moved to a decoupled version scheme — 2.3.7 is the build aligned to Kotlin 2.3.20).
  • Bump Metro language level (build.gradle:283-284): Metro-mode languageVersion/apiVersion KOTLIN_2_2 → KOTLIN_2_3.
  • Fix Dagger metadata reader (app/build.gradle): add kapt "org.jetbrains.kotlin:kotlin-metadata-jvm:2.3.20" — Dagger 2.57.2's reader caps at metadata 2.2.0 but 2.3.20 emits 2.3.0 (:app KAPT only). Dagger itself not bumped (even 2.59.2 ships a 2.2.x reader).
  • Fix 28 LV-2.3 compile errors (explicit type args): reified-type-param-inferred-to-intersection became an error at LV 2.3 — combine<Any, Unit>(...) in InputScreenViewModel.kt, arrayOf(...) ×26 in JsonRulesMapperTest.kt, arrayOf(...) in WideEventsMigration1To2Test.kt.
  • Keep Metro at 1.0.1 for now, bump in separate PR

Steps to test this PR

Smoke check

UI changes

No UI changes


Note

Medium Risk
Wide toolchain bump (Kotlin/KSP/compiler settings) affects every module and both DI build variants; fixes are compile-time only but full CI and smoke testing is important.

Overview
Bumps Kotlin to 2.3.20 and KSP to 2.3.7 in versions.properties, and sets Metro dual-build languageVersion / apiVersion to Kotlin 2.3 in the root build.gradle.

Adds a :app-only kapt dependency on kotlin-metadata-jvm:2.3.20 so Dagger’s annotation processor can read Kotlin 2.3 @Metadata without upgrading Dagger itself.

Fixes Kotlin 2.3 compile errors from stricter generic inference: explicit type arguments on combine<Any, Unit> in InputScreenViewModel, arrayOf<MatchingAttribute> in JsonRulesMapperTest, and arrayOf<Any> in WideEventsMigration1To2Test. No intended runtime behavior changes.

Reviewed by Cursor Bugbot for commit fb63c1c. Bugbot is set up for automated code reviews on this repo. Configure here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants