Skip to content

Kotlin: support 2.4.20-RC - #22404

Draft
andersfugmann wants to merge 2 commits into
mainfrom
andersfugmann/kotlin-2.4.20rc
Draft

Kotlin: support 2.4.20-RC#22404
andersfugmann wants to merge 2 commits into
mainfrom
andersfugmann/kotlin-2.4.20rc

Conversation

@andersfugmann

@andersfugmann andersfugmann commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Summary

Support Kotlin 2.4.20-RC in the Kotlin extractor. Kotlin 2.4.20 GA remains unsupported.

Kotlin 2.4.20-RC removes the legacy ComponentRegistrar compiler API and makes the remaining K1 compatibility APIs opt-in. This change adds standalone and embeddable RC extractor variants that use CompilerPluginRegistrar only, while retaining legacy registration for older compiler variants.

Generated interface forwarders retain their enclosing class locations, preserving the previous database and query behaviour despite the compiler changing those IR nodes to synthetic locations. The too-new diagnostic fixture now uses 2.4.20 GA directly to verify that the release compiler remains above the supported boundary.

Parent PR: github/semmle-code#56185

Validation

  • Built standalone and embeddable 2.4.20-RC extractor variants
  • Built the oldest supported 1.8.0 extractor variant
  • Full Kotlin 2 suite passed in eight sequential shards with one test thread
  • Full Kotlin 1 suite passed with 2.3.20 in eight sequential shards with one test thread
  • All 36 Kotlin all-platform extraction tests passed in eight sequential shards
  • All 63 Kotlin all-platform QL integration tests passed in eight sequential shards
  • The published v2.4.20-RC compiler passed the Kotlin basic functionality extraction test
  • The too-new diagnostic test rejects 2.4.20 GA

No tests are disabled. The fake-override expectations are unchanged.

andersfugmann and others added 2 commits August 24, 2026 10:32
Add standalone and embeddable extractor variants for Kotlin 2.4.20-RC. Use the modern compiler plugin registrar after removal of the legacy ComponentRegistrar API, while retaining the legacy path for older compilers.

Preserve source locations for generated interface forwarders, and keep Kotlin 2.4.20 GA above the supported-version boundary.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use Kotlin 2.4.20-RC by default in the development wrapper so Kotlin 2 tests exercise the newly supported prerelease.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@andersfugmann
andersfugmann force-pushed the andersfugmann/kotlin-2.4.20rc branch from 7b0c1bb to a205abc Compare August 24, 2026 08:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant