Skip to content

Commit 14faa30

Browse files
committed
Update Kotlin to 2.2.0-Beta1
1 parent 373c4e5 commit 14faa30

File tree

6 files changed

+19
-17
lines changed

6 files changed

+19
-17
lines changed

buildSrc/src/main/kotlin/IProject.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ object IProject : ProjectDetail() {
1010
const val HOMEPAGE = "https://github.com/ForteScarlet/kotlin-suspend-transform-compiler-plugin"
1111

1212
// Remember the libs.versions.toml!
13-
val ktVersion = "2.1.20"
13+
val ktVersion = "2.2.0-Beta1"
1414
val pluginVersion = "0.12.0"
1515

1616
override val version: String = "$ktVersion-$pluginVersion"

compiler/suspend-transform-plugin/src/main/kotlin/love/forte/plugin/suspendtrans/SuspendTransformUserData.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,6 @@ private infix fun IrTypeParameter.isSameAs(typeParameter: TypeParameter): Boolea
331331
}
332332

333333
private infix fun IrValueParameter.isSameAs(valueParameter: ValueParameter): Boolean {
334-
if (index != valueParameter.index) return false
334+
if (indexInParameters != valueParameter.index) return false
335335
return type.classFqName == valueParameter.type?.asSingleFqName()
336336
}

compiler/suspend-transform-plugin/src/main/kotlin/love/forte/plugin/suspendtrans/fir/SuspendTransformFirTransformer.kt

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import org.jetbrains.kotlin.fir.caches.firCachesFactory
1919
import org.jetbrains.kotlin.fir.caches.getValue
2020
import org.jetbrains.kotlin.fir.declarations.*
2121
import org.jetbrains.kotlin.fir.declarations.builder.*
22-
import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusImpl
2322
import org.jetbrains.kotlin.fir.declarations.utils.isFinal
2423
import org.jetbrains.kotlin.fir.declarations.utils.isOverride
2524
import org.jetbrains.kotlin.fir.declarations.utils.isSuspend
@@ -57,7 +56,6 @@ import org.jetbrains.kotlin.platform.isJs
5756
import org.jetbrains.kotlin.platform.isWasm
5857
import org.jetbrains.kotlin.platform.jvm.isJvm
5958
import org.jetbrains.kotlin.platform.konan.isNative
60-
import org.jetbrains.kotlin.realElement
6159
import org.jetbrains.kotlin.utils.keysToMap
6260
import java.util.concurrent.ConcurrentHashMap
6361

@@ -361,7 +359,8 @@ class SuspendTransformFirTransformer(
361359
this.origin = FirDeclarationOrigin.Plugin(SuspendTransformK2V3Key)
362360
this.returnTypeRef = originFunSymbol.resolvedReturnTypeRef
363361
this.hasExplicitParameterList = false
364-
this.status = FirResolvedDeclarationStatusImpl.DEFAULT_STATUS_FOR_SUSPEND_FUNCTION_EXPRESSION
362+
// this.status = FirResolvedDeclarationStatusImpl.DEFAULT_STATUS_FOR_SUSPEND_FUNCTION_EXPRESSION
363+
this.status = this.status.copy(isSuspend = true)
365364
this.symbol = FirAnonymousFunctionSymbol()
366365
this.body = buildSingleExpressionBlock(
367366
buildReturnExpression {
@@ -845,11 +844,11 @@ class SuspendTransformFirTransformer(
845844
) processOverridden@{ overriddenFunction ->
846845
if (!isOverride) {
847846
// check parameters and receivers
848-
val symbolReceiver = overriddenFunction.receiverParameter
849-
val originReceiver = func.receiverParameter
847+
val resolvedReceiverTypeRef = overriddenFunction.resolvedReceiverTypeRef
848+
val originReceiverTypeRef = func.resolvedReceiverTypeRef
850849

851850
// origin receiver should be the same as symbol receiver
852-
if (originReceiver?.typeRef != symbolReceiver?.typeRef) {
851+
if (originReceiverTypeRef != resolvedReceiverTypeRef) {
853852
return@processOverridden
854853
}
855854

@@ -1196,7 +1195,7 @@ class SuspendTransformFirTransformer(
11961195
.filter { it.callableId.callableName == functionName }
11971196
// overridable receiver parameter.
11981197
.filter {
1199-
thisReceiverTypeRef sameAs it.receiverParameter?.typeRef
1198+
thisReceiverTypeRef sameAs it.resolvedReceiverTypeRef
12001199
}
12011200
.any()
12021201
} else {
@@ -1214,7 +1213,7 @@ class SuspendTransformFirTransformer(
12141213
.filter { it.callableId.callableName == functionName }
12151214
// overridable receiver parameter.
12161215
.filter {
1217-
thisReceiverTypeRef sameAs it.receiverParameter?.typeRef
1216+
thisReceiverTypeRef sameAs it.resolvedReceiverTypeRef
12181217
}
12191218
// overridable value parameters
12201219
.filter {

compiler/suspend-transform-plugin/src/main/kotlin/love/forte/plugin/suspendtrans/utils/IrFunctionUtils.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,8 @@ fun IrPluginContext.createSuspendLambdaWithCoroutineScope(
7878
addField(it.name.identifierOrMappedSpecialName.synthesizedName, it.type)
7979
}
8080

81-
createImplicitParameterDeclarationWithWrappedDescriptor()
81+
// createImplicitParameterDeclarationWithWrappedDescriptor()
82+
createThisReceiverParameter()
8283

8384
addConstructor {
8485
isPrimary = true

compiler/suspend-transform-plugin/src/test/love/forte/plugin/suspendtrans/runners/AbstractTestRunner.kt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@ import love.forte.plugin.suspendtrans.services.SuspendTransformerEnvironmentConf
44
import org.jetbrains.kotlin.platform.jvm.JvmPlatforms
55
import org.jetbrains.kotlin.test.FirParser
66
import org.jetbrains.kotlin.test.TargetBackend
7+
import org.jetbrains.kotlin.test.backend.ir.JvmIrBackendFacade
78
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
89
import org.jetbrains.kotlin.test.builders.configureFirHandlersStep
910
import org.jetbrains.kotlin.test.builders.configureJvmArtifactsHandlersStep
10-
import org.jetbrains.kotlin.test.configuration.commonConfigurationForTest
11+
import org.jetbrains.kotlin.test.configuration.commonConfigurationForJvmTest
1112
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.FIR_PARSER
1213
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2IrConverter
1314
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade
@@ -59,19 +60,20 @@ abstract class AbstractTestRunner : AbstractKotlinCompilerTest() {
5960

6061
when (targetFrontend) {
6162
FrontendKinds.ClassicFrontend -> {
62-
builder.commonConfigurationForTest(
63+
builder.commonConfigurationForJvmTest(
6364
FrontendKinds.ClassicFrontend,
6465
::ClassicFrontendFacade,
6566
::ClassicFrontend2IrConverter,
66-
// ::JvmIrBackendFacade
67+
::JvmIrBackendFacade
6768
) // { }
6869
}
70+
6971
FrontendKinds.FIR -> {
70-
builder.commonConfigurationForTest(
72+
builder.commonConfigurationForJvmTest(
7173
FrontendKinds.FIR,
7274
::FirFrontendFacade,
7375
::Fir2IrResultsConverter,
74-
// ::JvmIrBackendFacade
76+
::JvmIrBackendFacade
7577
) // { }
7678
}
7779
}

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ kotlinx-coroutines = "1.8.0"
33
kotlinx-serialization = "1.7.1"
44
google-auto-service = "1.0.1"
55
# Remember the `IProject.ktVersion`!
6-
kotlin = "2.1.20"
6+
kotlin = "2.2.0-Beta1"
77

88
[libraries]
99

0 commit comments

Comments
 (0)