-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Kotlin: Support Kotlin 2.3.0-Beta2 #20965
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this 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_kotlinfrom 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.
|
If we're removing support for 1.6 and 1.7, then we should move (into |
| } | ||
|
|
||
| return null | ||
| } |
There was a problem hiding this comment.
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") | |||
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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, |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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?
This PR add support for Kotlin 2.3.0-Beta2.
To support Kotlin 2.3.0-Beta2, and update of the
rules_kotlinbazel package needs to be updated to 2.2.0. Unfortunatly that drops support for Kotlin 1.6.x and 1.7.x.