Skip to content

Commit 943b392

Browse files
authored
Support Kotlin 2+ (#10)
* Support Kotlin 2 * Upgrade junit to 4.13.2 * Resurrect embedded.gradle
1 parent dc454f4 commit 943b392

File tree

5 files changed

+8
-19
lines changed

5 files changed

+8
-19
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
plugins {
22
id 'java'
3-
id 'org.jetbrains.kotlin.jvm' version '1.8.20'
3+
id 'org.jetbrains.kotlin.jvm' version '2.0.0'
44
}
55

66
allprojects {

integration-test/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ plugins {
77
dependencies {
88
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
99
implementation project('scala-module')
10-
testImplementation 'junit:junit:4.12'
10+
testImplementation 'junit:junit:4.13.2'
1111

1212
kotlinCompilerPluginClasspath project(':kotlin-plugin')
1313
}

kotlin-plugin/build.gradle

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ dependencies {
1010
implementation "org.jetbrains.kotlin:kotlin-gradle-plugin-api"
1111
compileOnly "org.jetbrains.kotlin:kotlin-compiler-embeddable"
1212

13-
testImplementation 'com.github.tschuchortdev:kotlin-compile-testing:1.5.0'
14-
testImplementation 'junit:junit:4.12'
13+
// testImplementation 'com.github.tschuchortdev:kotlin-compile-testing:1.5.0' does not support Kotlin 2
14+
testImplementation 'dev.zacsweers.kctfork:core:0.6.0' // Fork of kotlin-compile-testing that supports Kotlin 2
15+
testImplementation 'junit:junit:4.13.2'
1516
testImplementation 'org.jetbrains.kotlin:kotlin-compiler-embeddable'
1617
}

kotlin-plugin/src/main/kotlin/me/shika/generation/ObjectSerializationIRGeneration.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
1717
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
1818
import org.jetbrains.kotlin.ir.visitors.acceptVoid
1919

20-
private object ObjectSerializationOrigin : IrDeclarationOriginImpl("object-serialization-fix", isSynthetic = true)
20+
private val objectSerializationOrigin = IrDeclarationOriginImpl("object-serialization-fix", isSynthetic = true)
2121

2222
class ObjectSerializationIrGeneration : IrGenerationExtension {
2323
override fun generate(moduleFragment: IrModuleFragment, pluginContext: IrPluginContext) {
@@ -37,7 +37,7 @@ class ObjectSerializationIrGeneration : IrGenerationExtension {
3737
name = SERIALIZABLE_READ
3838
returnType = context.irBuiltIns.anyNType
3939
visibility = DescriptorVisibilities.PUBLIC
40-
origin = ObjectSerializationOrigin
40+
origin = objectSerializationOrigin
4141
}.also { function ->
4242
// Ensure it is not static
4343
function.dispatchReceiverParameter = cls.thisReceiver?.copyTo(function)

kotlin-plugin/src/test/kotlin/me/shika/ObjectSerializationFixTest.kt

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,13 @@ import com.tschuchort.compiletesting.SourceFile
55
import org.jetbrains.kotlin.compiler.plugin.ExperimentalCompilerApi
66
import org.junit.Assert.assertTrue
77
import org.junit.Test
8-
import org.junit.runner.RunWith
9-
import org.junit.runners.Parameterized
10-
import org.junit.runners.Parameterized.Parameters
118
import java.lang.reflect.Method
129

1310
@OptIn(ExperimentalCompilerApi::class)
14-
@RunWith(Parameterized::class)
15-
class ObjectSerializationFixTest(enableIr: Boolean, enableFir: Boolean) {
16-
companion object {
17-
@Parameters(name = "IR: {0}, FIR: {1}")
18-
@JvmStatic
19-
fun data() = arrayOf(arrayOf(false, false), arrayOf(true, false), arrayOf(true, true))
20-
}
21-
11+
class ObjectSerializationFixTest {
2212
private val compiler = KotlinCompilation().apply {
2313
compilerPluginRegistrars = listOf(ObjectSerializationCompilerPluginRegistrar())
24-
useIR = enableIr
2514
supportsK2 = true
26-
useK2 = enableFir
2715
}
2816

2917
private val SERIALIZABLE_OBJECT = """

0 commit comments

Comments
 (0)