Skip to content

Commit

Permalink
Fixed older Kotlin versions
Browse files Browse the repository at this point in the history
  • Loading branch information
Mr3zee committed Sep 23, 2024
1 parent 897d7dc commit a0f2b22
Show file tree
Hide file tree
Showing 10 changed files with 51 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import org.jetbrains.kotlin.platform.TargetPlatform

interface VersionSpecificApi {
fun isJs(platform: TargetPlatform?): Boolean
fun isWasm(platform: TargetPlatform?): Boolean

fun referenceClass(context: IrPluginContext, packageName: String, name: String): IrClassSymbol?

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ import org.jetbrains.kotlin.ir.types.makeNullable
import org.jetbrains.kotlin.ir.util.functions
import org.jetbrains.kotlin.ir.util.isVararg
import org.jetbrains.kotlin.ir.util.properties
import org.jetbrains.kotlin.platform.isWasm
import org.jetbrains.kotlin.platform.konan.isNative
import org.jetbrains.kotlin.types.Variance

Expand Down Expand Up @@ -133,7 +132,7 @@ internal class RPCIrContext(
}

fun isWasmTarget(): Boolean {
return pluginContext.platform.isWasm()
return versionSpecificApi.isWasm(pluginContext.platform)
}

val functions = Functions()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,17 @@ import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.platform.TargetPlatform
import org.jetbrains.kotlin.platform.isJs
import org.jetbrains.kotlin.platform.isWasm

object VersionSpecificApiImpl : VersionSpecificApi {
override fun isJs(platform: TargetPlatform?): Boolean {
return platform.isJs()
}

override fun isWasm(platform: TargetPlatform?): Boolean {
return platform.isWasm()
}

override var IrFieldBuilder.isFinalVS: Boolean
get() = isFinal
set(value) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ object VersionSpecificApiImpl : VersionSpecificApi {
override fun isJs(platform: TargetPlatform?): Boolean {
return platform.isJs()
}

override fun isWasm(platform: TargetPlatform?): Boolean = false

override var IrFieldBuilder.isFinalVS: Boolean
get() = undefinedAPI()
set(_) {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ object VersionSpecificApiImpl : VersionSpecificApi {
override fun isJs(platform: TargetPlatform?): Boolean {
return platform.isJs()
}

override fun isWasm(platform: TargetPlatform?): Boolean = false

override var IrFieldBuilder.isFinalVS: Boolean
get() = undefinedAPI()
set(_) {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ object VersionSpecificApiImpl : VersionSpecificApi {
override fun isJs(platform: TargetPlatform?): Boolean {
return platform.isJs()
}

override fun isWasm(platform: TargetPlatform?): Boolean = false

override var IrFieldBuilder.isFinalVS: Boolean
get() = undefinedAPI()
set(_) {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ object VersionSpecificApiImpl : VersionSpecificApi {
return platform.isJs()
}

override fun isWasm(platform: TargetPlatform?): Boolean = false

override var IrFieldBuilder.isFinalVS: Boolean
get() = modality == Modality.FINAL
set(value) {
Expand Down
9 changes: 9 additions & 0 deletions gradle-conventions/src/main/pre_1_9_20/util/wasm.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
/*
* Copyright 2023-2024 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license.
*/

package util

fun ProjectKotlinConfig.configureWasm() {
// do nothing
}
23 changes: 23 additions & 0 deletions gradle-conventions/src/main/pre_1_9_25/util/contextReceivers.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
/*
* Copyright 2023-2024 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license.
*/

package util

import org.gradle.api.Project
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi

fun Project.enableContextReceivers() {
withKotlinJvmExtension {
compilerOptions {
freeCompilerArgs.add("-Xcontext-receivers")
}
}

withKotlinKmpExtension {
@OptIn(ExperimentalKotlinGradlePluginApi::class)
compilerOptions {
freeCompilerArgs.add("-Xcontext-receivers")
}
}
}
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
zipStorePath=wrapper/dists

0 comments on commit a0f2b22

Please sign in to comment.