Repository navigation
Update Kotlin, KSP and Compose Compiler - #668
Merged
Merged
Conversation
renovate
Bot
force-pushed
the
renovate/kotlin
branch
from
October 8, 2026 10:04
c7b3c6a to
1471612
Compare
renovate
Bot
force-pushed
the
renovate/kotlin
branch
3 times, most recently
from
October 13, 2026 19:04
ff640e4 to
6a07b3e
Compare
renovate
Bot
force-pushed
the
renovate/kotlin
branch
from
October 13, 2026 23:25
6a07b3e to
61107e5
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
2.3.11→2.3.122.4.20→2.4.212.4.20→2.4.212.4.20→2.4.212.4.20→2.4.21Release Notes
google/ksp (com.google.devtools.ksp)
v2.3.12Compare Source
What's Changed
Migrating Processors to Support Backing Fields
This release introduces support for explicit backing fields (#2873), which may now be returned by
Resolver.getSymbolsWithAnnotation. To prevent breaking existing processors, new language features require an explicit opt-in.More generally, the KSP API now explicitly models backing fields for properties. The following is an exhaustive list of functions in KSP API where processor may observe the change after opting in:
Resolver.getSymbolsWithAnnotation: The function now returns aKSBackingFieldif the given annotation targeted a field. Previously, if a field were targeted, the function would return aKSProperty.Resolver.effectiveJavaModifiers: The function returns fewer modifiers for aKSPropertyDeclarationif it has a backing field, since most of the JVM-specific annotations apply to the backing field. If you are interested in the JVM modifiers, you should call the function with theKSBackingFieldobtained from the property instead.Additionally, KSP now models Java fields as properties that always have backing fields. Some of the modifiers now apply to the backing field instead.
Processors adapting to new features must opt in via both of the following steps simultaneously (failing to do both may lead to undefined behavior):
registerProcessorForNewFeaturesfunction inSymbolProcessorEnvironmentimmediately when created (and only once). Example: AbstractTestProcessor.kt#L30KSVisitorshould move toKSVisitorNext. If their processor code does not directly implement the interface but instead extends one of the KSP-provided visitors (such asKSTopDownVisitor), they should instead extendKSTopDownVisitor(enableNewFeatures = true)and overridevisitBackingFielddepending on their code and needs.Let us know if you run into unexpected behavior!
Bug Fixes
New Contributors
Thanks to @KlyneChrysler, @budindepunk, and everyone who reported bugs and participated in discussions!
Full Changelog: google/ksp@2.3.11...2.3.12
JetBrains/kotlin (org.jetbrains.kotlin.kapt)
v2.4.21Backend. Wasm
KT-89267K/Wasm: calling a (T) -> R lambda with an argument that isn't a T traps instead of throwing ClassCastExceptionJVM. Reflection
KT-89280NoSuchElementException in argumentsMakeSenseOnlyForMutableContainer for Java non-static inner class of generic outer classKT-80710Reflection: change KCallable representation to avoid dependency on K1JavaScript
KT-89449Kotlin/JS: Member names no longer minified in productionKT-89363KJS. Regular class with companion can't extend external classTools. Compiler plugins. Serialization
KT-89275Kotlin/Wasm: Invalid Wasm is emitted for a@Serializablegeneric class with a class upper boundTools. Gradle. Native
KT-89285SwiftPM import results in flooded logKT-86251K/N: Flaky linkDebugTestLinuxX64 failure with "truncated or malformed archive" on libstdlib-cache.aTools. Scripts
KT-89247Kotlin Script: NoClassDefFoundError on 2nd execution with transitive dependency from imported scriptKT-89220JSR-223: generic Java bindings break all subsequenteval()callsKT-88458Audit closeable resource usageKT-88453VirtualFileScriptSource.textleaks an unclosed file stream — script source file handle held until GC, blocks file deletion on WindowsConfiguration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.