Skip to content

Conversation

@andersfugmann
Copy link
Contributor

This PR add support for Kotlin 2.3.0-Beta2.

To support Kotlin 2.3.0-Beta2, and update of the rules_kotlin bazel package needs to be updated to 2.2.0. Unfortunatly that drops support for Kotlin 1.6.x and 1.7.x.

Copilot AI review requested due to automatic review settings December 4, 2025 16:09
@andersfugmann andersfugmann requested review from a team as code owners December 4, 2025 16:09
@github-actions github-actions bot added the Kotlin label Dec 4, 2025
Copilot finished reviewing on behalf of andersfugmann December 4, 2025 16:12
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds support for Kotlin 2.3.0-Beta2 by updating the rules_kotlin Bazel package from version 2.1.3-codeql.1 to 2.2.0-codeql.1. This update necessarily drops support for Kotlin versions 1.6.x and 1.7.x.

Key Changes:

  • Updated rules_kotlin from 2.1.3-codeql.1 to 2.2.0-codeql.1 with updated dependencies and patches
  • Added support for Kotlin 2.3.0-Beta2 with version-specific compatibility files
  • Removed support for Kotlin 1.6.0, 1.6.20, 1.7.0, and 1.7.20 (dependencies and version-specific files)

Reviewed changes

Copilot reviewed 29 out of 29 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
misc/bazel/registry/modules/rules_kotlin/metadata.json Updated to reference only the new 2.2.0-codeql.1 version
misc/bazel/registry/modules/rules_kotlin/2.2.0-codeql.1/source.json New source configuration for rules_kotlin 2.2.0 with patch references
misc/bazel/registry/modules/rules_kotlin/2.2.0-codeql.1/patches/*.patch Updated patch files for the new rules_kotlin version
misc/bazel/registry/modules/rules_kotlin/2.2.0-codeql.1/MODULE.bazel New MODULE.bazel with updated dependencies (rules_android 0.6.4, protobuf 29.0, etc.)
misc/bazel/registry/modules/rules_kotlin/2.1.3-codeql.1/source.json Removed old version configuration
java/kotlin-extractor/versions.bzl Removed 1.6.x and 1.7.x versions, added 2.3.0-Beta2
java/kotlin-extractor/src/main/kotlin/utils/versions/v_2_3_0-Beta2/*.kt Added version-specific compatibility files for Kotlin 2.3.0-Beta2
java/kotlin-extractor/src/main/kotlin/utils/TypeSubstitution.kt Added @Suppress("REDUNDANT_ELSE_IN_WHEN") annotations for Kotlin 2.3 compatibility
java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt Removed TODO comment and added suppression annotation
java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt Added suppression annotations, explicit return type, and workaround for nullable delegate property
java/kotlin-extractor/deps/*.jar Removed 1.6.x and 1.7.x dependency JARs, added 2.3.0-Beta2 JARs
java/kotlin-extractor/BUILD.bazel Removed resource_strip_prefix configuration
MODULE.bazel Updated rules_kotlin dependency and repository references
Comments suppressed due to low confidence (1)

misc/bazel/registry/modules/rules_kotlin/2.2.0-codeql.1/MODULE.bazel:10

  • There is a commented-out duplicate declaration of bazel_dep(name = "rules_java", version = "7.2.0") on line 10, with an active identical declaration on line 11. This commented line should be removed unless there's a specific reason to keep it.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@andersfugmann andersfugmann marked this pull request as draft December 5, 2025 10:06
@igfoo
Copy link
Contributor

igfoo commented Dec 5, 2025

If we're removing support for 1.6 and 1.7, then we should move (into v_1_8_0) or delete all the files in utils/versions/v_1_{6,7}*

}

return null
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't this identical to the v_2_2_20-Beta2 file? Why do we need it?

@@ -0,0 +1,13 @@
// For ComponentRegistrar
@file:Suppress("DEPRECATION", "DEPRECATION_ERROR")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we just add the new DEPRECATION_ERROR suppression to the v_1_9_0-Beta? Or was it not supported back then?

@Suppress("USELESS_CAST")
val delegate = (s.delegate as IrVariable?) ?: run {
logger.errorElement("Local delegated property is missing delegate", s)
return
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't we want to just skip the next few lines, continuing at // Getter:, rather than returning?

tw.writeStmts_block(blockId, parent, idx, callable)
tw.writeHasLocation(blockId, locId)
extractVariable(s.delegate, callable, blockId, 0)
// For Kotlin < 2.3, s.delegate is not-nullable. Cast to a be nullable,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove a in Cast to a be nullable?

// For Kotlin < 2.3, s.delegate is not-nullable. Cast to a be nullable,
// as a workaround to silence warnings for kotlin < 2.3 about the elvis
// operator being redundant.
// For Kotlin >= 2.3, the cast is redundant, so we need to silence that warning
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you know why it is now nullable? Is that actually an error?

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants