Closed sergeshustoff closed 1 year ago
Hi, it is true that the Realm plugin doesn't yet support K2. There are a few places we use FIR-incompatible APIs, which we are looking into fixing, the bigger problem is that we right now depend on the ComponentRegistrar
(which doesn't support K2) because we need run after other plugins like Serialization to avoid conflicts and build errors: https://github.com/realm/realm-kotlin/blob/main/packages/plugin-compiler/src/main/kotlin/io/realm/kotlin/compiler/Registrar.kt#L54
We are still exploring ideas on how to work around this.
EDIT: Ups, it looks like I am wrong. After looking into recent updates in https://youtrack.jetbrains.com/issue/KT-55300, it might be enough to remove the FIR incompatible APIs.
We just merged https://github.com/realm/realm-kotlin/pull/1476 which should "fix" this, but proper K2 supports needs to come from https://github.com/realm/realm-kotlin/issues/1483.
I will be folding this issue into #1483.
How frequently does the bug occur?
Always
Description
Compiler plugin uses deprecated api that is incompatible with k2. I assume that the only required fix is changing argument of
IrPluginContext.referenceClass
calls fromFqName
toClassId
, but it's possible that other functions marked with@FirIncompatiblePluginAPI
are used somewhere else.Stacktrace & log output
Can you reproduce the bug?
Always
Reproduction Steps
Use kotlin 1.9.0 and enable k2 using
kotlin.experimental.tryK2=true
in gradle.properties Try to compile desktop (jvm) or android project with realm compiler plugin and some classes extending RealmObjectVersion
1.10.2
What Atlas App Services are you using?
Local Database only
Are you using encryption?
No
Platform OS and version(s)
jvm (desktop), android
Build environment
Android Studio version: IntelliJ IDEA 2023.2 (Community Edition) Gradle version: 8.2.1