From 680bb0e4616a41314abbbaffae055ba3e301c4cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Doln=C3=ADk?= Date: Thu, 18 Apr 2024 10:19:14 +0200 Subject: [PATCH] Rename DescriptorModificationPhase. --- ...ptorModificationPhase.kt => FrontendIrPhase.kt} | 2 +- .../skie/entrypoint/ObjCExportPhaseInterceptor.kt | 2 +- .../ProduceObjCExportInterfacePhaseInterceptor.kt | 2 +- .../context/DescriptorModificationPhaseContext.kt | 13 ------------- .../skie/context/FrontendIrPhaseContext.kt | 13 +++++++++++++ .../co/touchlab/skie/entrypoint/EntrypointUtils.kt | 8 ++++---- .../phases/DescriptorModificationPhase+linker.kt | 10 ---------- .../touchlab/skie/phases/FrontendIrPhase+linker.kt | 10 ++++++++++ .../co/touchlab/skie/phases/SkiePhaseScheduler.kt | 6 +++--- .../defaultarguments/DefaultArgumentGenerator.kt | 8 ++++---- .../BaseDefaultArgumentGeneratorDelegate.kt | 8 ++++---- ...BaseFunctionDefaultArgumentGeneratorDelegate.kt | 12 ++++++------ ...ClassMethodsDefaultArgumentGeneratorDelegate.kt | 4 ++-- ...ConstructorsDefaultArgumentGeneratorDelegate.kt | 14 +++++++------- .../delegate/DefaultArgumentGeneratorDelegate.kt | 4 ++-- ...sionFunctionDefaultArgumentGeneratorDelegate.kt | 4 ++-- ...evelFunctionDefaultArgumentGeneratorDelegate.kt | 4 ++-- .../suspend/KotlinSuspendGeneratorDelegate.kt | 8 ++++---- .../phases/features/suspend/SuspendGenerator.kt | 10 +++++----- .../suspend/SwiftSuspendGeneratorDelegate.kt | 4 ++-- 20 files changed, 73 insertions(+), 73 deletions(-) rename SKIE/kotlin-compiler/core/src/commonMain/kotlin/co/touchlab/skie/phases/{DescriptorModificationPhase.kt => FrontendIrPhase.kt} (57%) delete mode 100644 SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/context/DescriptorModificationPhaseContext.kt create mode 100644 SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/context/FrontendIrPhaseContext.kt delete mode 100644 SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/DescriptorModificationPhase+linker.kt create mode 100644 SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/FrontendIrPhase+linker.kt diff --git a/SKIE/kotlin-compiler/core/src/commonMain/kotlin/co/touchlab/skie/phases/DescriptorModificationPhase.kt b/SKIE/kotlin-compiler/core/src/commonMain/kotlin/co/touchlab/skie/phases/FrontendIrPhase.kt similarity index 57% rename from SKIE/kotlin-compiler/core/src/commonMain/kotlin/co/touchlab/skie/phases/DescriptorModificationPhase.kt rename to SKIE/kotlin-compiler/core/src/commonMain/kotlin/co/touchlab/skie/phases/FrontendIrPhase.kt index acef707a..6de952ab 100644 --- a/SKIE/kotlin-compiler/core/src/commonMain/kotlin/co/touchlab/skie/phases/DescriptorModificationPhase.kt +++ b/SKIE/kotlin-compiler/core/src/commonMain/kotlin/co/touchlab/skie/phases/FrontendIrPhase.kt @@ -1,6 +1,6 @@ package co.touchlab.skie.phases -interface DescriptorModificationPhase : ForegroundPhase { +interface FrontendIrPhase : ForegroundPhase { interface Context : ForegroundPhase.Context { diff --git a/SKIE/kotlin-compiler/linker-plugin/src/kgp_1.8.0/kotlin/co/touchlab/skie/entrypoint/ObjCExportPhaseInterceptor.kt b/SKIE/kotlin-compiler/linker-plugin/src/kgp_1.8.0/kotlin/co/touchlab/skie/entrypoint/ObjCExportPhaseInterceptor.kt index c4cdbea0..70714cbd 100644 --- a/SKIE/kotlin-compiler/linker-plugin/src/kgp_1.8.0/kotlin/co/touchlab/skie/entrypoint/ObjCExportPhaseInterceptor.kt +++ b/SKIE/kotlin-compiler/linker-plugin/src/kgp_1.8.0/kotlin/co/touchlab/skie/entrypoint/ObjCExportPhaseInterceptor.kt @@ -12,7 +12,7 @@ internal class ObjCExportPhaseInterceptor : SameTypePhaseInterceptor Unit) { - EntrypointUtils.runDescriptorModificationPhases(context.config.configuration.mainSkieContext) + EntrypointUtils.runFrontendIrPhases(context.config.configuration.mainSkieContext) next(context, input) } diff --git a/SKIE/kotlin-compiler/linker-plugin/src/kgp_1.8.20..1.9.20/kotlin/co/touchlab/skie/entrypoint/ProduceObjCExportInterfacePhaseInterceptor.kt b/SKIE/kotlin-compiler/linker-plugin/src/kgp_1.8.20..1.9.20/kotlin/co/touchlab/skie/entrypoint/ProduceObjCExportInterfacePhaseInterceptor.kt index b44f851f..97bf6447 100644 --- a/SKIE/kotlin-compiler/linker-plugin/src/kgp_1.8.20..1.9.20/kotlin/co/touchlab/skie/entrypoint/ProduceObjCExportInterfacePhaseInterceptor.kt +++ b/SKIE/kotlin-compiler/linker-plugin/src/kgp_1.8.20..1.9.20/kotlin/co/touchlab/skie/entrypoint/ProduceObjCExportInterfacePhaseInterceptor.kt @@ -30,7 +30,7 @@ internal class ProduceObjCExportInterfacePhaseInterceptor : EntrypointUtils.runClassExportPhases(mainSkieContext) - EntrypointUtils.runDescriptorModificationPhases(mainSkieContext) + EntrypointUtils.runFrontendIrPhases(mainSkieContext) return next(context, input) } diff --git a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/context/DescriptorModificationPhaseContext.kt b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/context/DescriptorModificationPhaseContext.kt deleted file mode 100644 index ca2139e6..00000000 --- a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/context/DescriptorModificationPhaseContext.kt +++ /dev/null @@ -1,13 +0,0 @@ -package co.touchlab.skie.context - -import co.touchlab.skie.kir.irbuilder.impl.DeclarationBuilderImpl -import co.touchlab.skie.phases.DescriptorModificationPhase - -class DescriptorModificationPhaseContext( - mainSkieContext: MainSkieContext, -) : DescriptorModificationPhase.Context, ForegroundPhaseCompilerContext by mainSkieContext { - - override val context: DescriptorModificationPhaseContext = this - - val declarationBuilder: DeclarationBuilderImpl = mainSkieContext.declarationBuilder -} diff --git a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/context/FrontendIrPhaseContext.kt b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/context/FrontendIrPhaseContext.kt new file mode 100644 index 00000000..75de4b2c --- /dev/null +++ b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/context/FrontendIrPhaseContext.kt @@ -0,0 +1,13 @@ +package co.touchlab.skie.context + +import co.touchlab.skie.kir.irbuilder.impl.DeclarationBuilderImpl +import co.touchlab.skie.phases.FrontendIrPhase + +class FrontendIrPhaseContext( + mainSkieContext: MainSkieContext, +) : FrontendIrPhase.Context, ForegroundPhaseCompilerContext by mainSkieContext { + + override val context: FrontendIrPhaseContext = this + + val declarationBuilder: DeclarationBuilderImpl = mainSkieContext.declarationBuilder +} diff --git a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/entrypoint/EntrypointUtils.kt b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/entrypoint/EntrypointUtils.kt index 685488be..42ad6792 100644 --- a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/entrypoint/EntrypointUtils.kt +++ b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/entrypoint/EntrypointUtils.kt @@ -4,7 +4,7 @@ package co.touchlab.skie.entrypoint import co.touchlab.skie.compilerinject.compilerplugin.mainSkieContext import co.touchlab.skie.context.ClassExportPhaseContext -import co.touchlab.skie.context.DescriptorModificationPhaseContext +import co.touchlab.skie.context.FrontendIrPhaseContext import co.touchlab.skie.context.InitPhaseContext import co.touchlab.skie.context.KirPhaseContext import co.touchlab.skie.context.KotlinIrPhaseContext @@ -54,12 +54,12 @@ internal object EntrypointUtils { } } - fun runDescriptorModificationPhases( + fun runFrontendIrPhases( mainSkieContext: MainSkieContext, ) { with(mainSkieContext) { - skiePhaseScheduler.runDescriptorModificationPhases { - DescriptorModificationPhaseContext(mainSkieContext) + skiePhaseScheduler.runFrontendIrPhases { + FrontendIrPhaseContext(mainSkieContext) } } } diff --git a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/DescriptorModificationPhase+linker.kt b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/DescriptorModificationPhase+linker.kt deleted file mode 100644 index 53256846..00000000 --- a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/DescriptorModificationPhase+linker.kt +++ /dev/null @@ -1,10 +0,0 @@ -package co.touchlab.skie.phases - -import co.touchlab.skie.context.DescriptorModificationPhaseContext -import co.touchlab.skie.kir.irbuilder.DeclarationBuilder - -val DescriptorModificationPhase.Context.declarationBuilder: DeclarationBuilder - get() = typedContext.declarationBuilder - -private val DescriptorModificationPhase.Context.typedContext: DescriptorModificationPhaseContext - get() = context as DescriptorModificationPhaseContext diff --git a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/FrontendIrPhase+linker.kt b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/FrontendIrPhase+linker.kt new file mode 100644 index 00000000..b552992f --- /dev/null +++ b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/FrontendIrPhase+linker.kt @@ -0,0 +1,10 @@ +package co.touchlab.skie.phases + +import co.touchlab.skie.context.FrontendIrPhaseContext +import co.touchlab.skie.kir.irbuilder.DeclarationBuilder + +val FrontendIrPhase.Context.declarationBuilder: DeclarationBuilder + get() = typedContext.declarationBuilder + +private val FrontendIrPhase.Context.typedContext: FrontendIrPhaseContext + get() = context as FrontendIrPhaseContext diff --git a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/SkiePhaseScheduler.kt b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/SkiePhaseScheduler.kt index 75cf0eed..272054c8 100644 --- a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/SkiePhaseScheduler.kt +++ b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/SkiePhaseScheduler.kt @@ -98,7 +98,7 @@ class SkiePhaseScheduler { ) } - val descriptorModificationPhases = SkiePhaseGroup { context -> + val frontendIrPhases = SkiePhaseGroup { context -> addAll( DefaultArgumentGenerator(context), SuspendGenerator, @@ -263,8 +263,8 @@ class SkiePhaseScheduler { } context(ScheduledPhase.Context) - fun runDescriptorModificationPhases(contextFactory: () -> DescriptorModificationPhase.Context) { - descriptorModificationPhases.run(contextFactory) + fun runFrontendIrPhases(contextFactory: () -> FrontendIrPhase.Context) { + frontendIrPhases.run(contextFactory) } context(ScheduledPhase.Context) diff --git a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/DefaultArgumentGenerator.kt b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/DefaultArgumentGenerator.kt index dea926a5..df51a590 100644 --- a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/DefaultArgumentGenerator.kt +++ b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/DefaultArgumentGenerator.kt @@ -1,6 +1,6 @@ package co.touchlab.skie.phases.features.defaultarguments -import co.touchlab.skie.phases.DescriptorModificationPhase +import co.touchlab.skie.phases.FrontendIrPhase import co.touchlab.skie.phases.features.defaultarguments.delegate.ClassMethodsDefaultArgumentGeneratorDelegate import co.touchlab.skie.phases.features.defaultarguments.delegate.ConstructorsDefaultArgumentGeneratorDelegate import co.touchlab.skie.phases.features.defaultarguments.delegate.ExtensionFunctionDefaultArgumentGeneratorDelegate @@ -10,8 +10,8 @@ import co.touchlab.skie.phases.util.StatefulSirPhase import co.touchlab.skie.util.SharedCounter class DefaultArgumentGenerator( - private val context: DescriptorModificationPhase.Context, -) : DescriptorModificationPhase { + private val context: FrontendIrPhase.Context, +) : FrontendIrPhase { private val sharedCounter = SharedCounter() @@ -22,7 +22,7 @@ class DefaultArgumentGenerator( ::ExtensionFunctionDefaultArgumentGeneratorDelegate, ).map { it(context, sharedCounter) } - context(DescriptorModificationPhase.Context) + context(FrontendIrPhase.Context) override suspend fun execute() { delegates.forEach { it.generate() diff --git a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/delegate/BaseDefaultArgumentGeneratorDelegate.kt b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/delegate/BaseDefaultArgumentGeneratorDelegate.kt index efd8068a..76e95116 100644 --- a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/delegate/BaseDefaultArgumentGeneratorDelegate.kt +++ b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/delegate/BaseDefaultArgumentGeneratorDelegate.kt @@ -5,7 +5,7 @@ import co.touchlab.skie.configuration.SkieConfigurationFlag import co.touchlab.skie.configuration.provider.descriptor.configuration import co.touchlab.skie.kir.descriptor.DescriptorProvider import co.touchlab.skie.kir.irbuilder.DeclarationBuilder -import co.touchlab.skie.phases.DescriptorModificationPhase +import co.touchlab.skie.phases.FrontendIrPhase import co.touchlab.skie.phases.declarationBuilder import co.touchlab.skie.phases.descriptorProvider import org.jetbrains.kotlin.descriptors.FunctionDescriptor @@ -20,7 +20,7 @@ import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.resolve.descriptorUtil.declaresOrInheritsDefaultValue abstract class BaseDefaultArgumentGeneratorDelegate( - val context: DescriptorModificationPhase.Context, + val context: FrontendIrPhase.Context, ) : DefaultArgumentGeneratorDelegate { protected val descriptorProvider: DescriptorProvider = context.descriptorProvider @@ -35,13 +35,13 @@ abstract class BaseDefaultArgumentGeneratorDelegate( private val isInteropEnabledForExternalModules: Boolean = SkieConfigurationFlag.Feature_DefaultArgumentsInExternalLibraries in context.rootConfiguration.enabledFlags - context(DescriptorModificationPhase.Context) + context(FrontendIrPhase.Context) protected val FunctionDescriptor.isInteropEnabled: Boolean get() = this.configuration[DefaultArgumentInterop.Enabled] && this.satisfiesMaximumDefaultArgumentCount && (descriptorProvider.isFromLocalModule(this) || isInteropEnabledForExternalModules) - context(DescriptorModificationPhase.Context) + context(FrontendIrPhase.Context) private val FunctionDescriptor.satisfiesMaximumDefaultArgumentCount: Boolean get() = this.defaultArgumentCount <= this.configuration[DefaultArgumentInterop.MaximumDefaultArgumentCount] diff --git a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/delegate/BaseFunctionDefaultArgumentGeneratorDelegate.kt b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/delegate/BaseFunctionDefaultArgumentGeneratorDelegate.kt index 99e947d3..9cdac924 100644 --- a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/delegate/BaseFunctionDefaultArgumentGeneratorDelegate.kt +++ b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/delegate/BaseFunctionDefaultArgumentGeneratorDelegate.kt @@ -6,7 +6,7 @@ import co.touchlab.skie.kir.irbuilder.createFunction import co.touchlab.skie.kir.irbuilder.getNamespace import co.touchlab.skie.kir.irbuilder.util.copyIndexing import co.touchlab.skie.kir.irbuilder.util.copyWithoutDefaultValue -import co.touchlab.skie.phases.DescriptorModificationPhase +import co.touchlab.skie.phases.FrontendIrPhase import co.touchlab.skie.phases.KotlinIrPhase import co.touchlab.skie.phases.descriptorKirProvider import co.touchlab.skie.phases.features.defaultarguments.DefaultArgumentGenerator @@ -32,11 +32,11 @@ import org.jetbrains.kotlin.types.TypeSubstitutor import org.jetbrains.kotlin.types.Variance abstract class BaseFunctionDefaultArgumentGeneratorDelegate( - context: DescriptorModificationPhase.Context, + context: FrontendIrPhase.Context, private val sharedCounter: SharedCounter, ) : BaseDefaultArgumentGeneratorDelegate(context) { - context(DescriptorModificationPhase.Context) + context(FrontendIrPhase.Context) override fun generate() { descriptorProvider.allSupportedFunctions() .filter { it.isInteropEnabled } @@ -49,14 +49,14 @@ abstract class BaseFunctionDefaultArgumentGeneratorDelegate( protected abstract fun DescriptorProvider.allSupportedFunctions(): List - context(DescriptorModificationPhase.Context) + context(FrontendIrPhase.Context) private fun generateOverloads(function: SimpleFunctionDescriptor) { function.forEachDefaultArgumentOverload { overloadParameters -> generateOverload(function, overloadParameters) } } - context(DescriptorModificationPhase.Context) + context(FrontendIrPhase.Context) private fun generateOverload( function: SimpleFunctionDescriptor, parameters: List, @@ -68,7 +68,7 @@ abstract class BaseFunctionDefaultArgumentGeneratorDelegate( removeManglingOfOverload(newFunction, function) } - context(DescriptorModificationPhase.Context) + context(FrontendIrPhase.Context) private fun generateOverloadWithUniqueName( function: SimpleFunctionDescriptor, parameters: List, diff --git a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/delegate/ClassMethodsDefaultArgumentGeneratorDelegate.kt b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/delegate/ClassMethodsDefaultArgumentGeneratorDelegate.kt index 54e633ac..a7850ae4 100644 --- a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/delegate/ClassMethodsDefaultArgumentGeneratorDelegate.kt +++ b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/delegate/ClassMethodsDefaultArgumentGeneratorDelegate.kt @@ -1,14 +1,14 @@ package co.touchlab.skie.phases.features.defaultarguments.delegate import co.touchlab.skie.kir.descriptor.DescriptorProvider -import co.touchlab.skie.phases.DescriptorModificationPhase +import co.touchlab.skie.phases.FrontendIrPhase import co.touchlab.skie.util.SharedCounter import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.SimpleFunctionDescriptor class ClassMethodsDefaultArgumentGeneratorDelegate( - context: DescriptorModificationPhase.Context, + context: FrontendIrPhase.Context, sharedCounter: SharedCounter, ) : BaseFunctionDefaultArgumentGeneratorDelegate(context, sharedCounter) { diff --git a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/delegate/ConstructorsDefaultArgumentGeneratorDelegate.kt b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/delegate/ConstructorsDefaultArgumentGeneratorDelegate.kt index ce5d57df..d2584a73 100644 --- a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/delegate/ConstructorsDefaultArgumentGeneratorDelegate.kt +++ b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/delegate/ConstructorsDefaultArgumentGeneratorDelegate.kt @@ -5,7 +5,7 @@ import co.touchlab.skie.kir.descriptor.DescriptorProvider import co.touchlab.skie.kir.irbuilder.createSecondaryConstructor import co.touchlab.skie.kir.irbuilder.getNamespace import co.touchlab.skie.kir.irbuilder.util.copyWithoutDefaultValue -import co.touchlab.skie.phases.DescriptorModificationPhase +import co.touchlab.skie.phases.FrontendIrPhase import co.touchlab.skie.phases.KotlinIrPhase import co.touchlab.skie.phases.descriptorKirProvider import co.touchlab.skie.phases.features.defaultarguments.DefaultArgumentGenerator @@ -29,11 +29,11 @@ import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.resolve.calls.components.hasDefaultValue class ConstructorsDefaultArgumentGeneratorDelegate( - context: DescriptorModificationPhase.Context, + context: FrontendIrPhase.Context, private val sharedCounter: SharedCounter, ) : BaseDefaultArgumentGeneratorDelegate(context) { - context(DescriptorModificationPhase.Context) + context(FrontendIrPhase.Context) override fun generate() { descriptorProvider.allSupportedClasses.forEach { classDescriptor -> classDescriptor.allSupportedConstructors.forEach { @@ -48,13 +48,13 @@ class ConstructorsDefaultArgumentGeneratorDelegate( private val ClassDescriptor.isSupported: Boolean get() = this.kind == ClassKind.CLASS - context(DescriptorModificationPhase.Context) + context(FrontendIrPhase.Context) private val ClassDescriptor.allSupportedConstructors: List get() = descriptorProvider.getExposedConstructors(this) .filter { it.isInteropEnabled } .filter { it.hasDefaultArguments } - context(DescriptorModificationPhase.Context) + context(FrontendIrPhase.Context) private fun generateOverloads(constructor: ClassConstructorDescriptor, classDescriptor: ClassDescriptor) { constructor.forEachDefaultArgumentOverload { overloadParameters -> if (overloadParameters.isNotEmpty() || classDescriptor.generateOverloadWithNoParameters) { @@ -70,14 +70,14 @@ class ConstructorsDefaultArgumentGeneratorDelegate( private val ClassConstructorDescriptor.hasNoParametersIgnoringDefaultArguments: Boolean get() = this.valueParameters.count { !it.hasDefaultValue() } == 0 - context(DescriptorModificationPhase.Context) + context(FrontendIrPhase.Context) private fun generateOverload(constructor: ClassConstructorDescriptor, parameters: List) { val overload = generateOverloadWithUniqueName(constructor, parameters) registerOverload(overload, constructor) } - context(DescriptorModificationPhase.Context) + context(FrontendIrPhase.Context) private fun generateOverloadWithUniqueName( constructor: ClassConstructorDescriptor, parameters: List, diff --git a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/delegate/DefaultArgumentGeneratorDelegate.kt b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/delegate/DefaultArgumentGeneratorDelegate.kt index bfe57161..adb56335 100644 --- a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/delegate/DefaultArgumentGeneratorDelegate.kt +++ b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/delegate/DefaultArgumentGeneratorDelegate.kt @@ -1,9 +1,9 @@ package co.touchlab.skie.phases.features.defaultarguments.delegate -import co.touchlab.skie.phases.DescriptorModificationPhase +import co.touchlab.skie.phases.FrontendIrPhase interface DefaultArgumentGeneratorDelegate { - context(DescriptorModificationPhase.Context) + context(FrontendIrPhase.Context) fun generate() } diff --git a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/delegate/ExtensionFunctionDefaultArgumentGeneratorDelegate.kt b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/delegate/ExtensionFunctionDefaultArgumentGeneratorDelegate.kt index c5045bd0..27434d3f 100644 --- a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/delegate/ExtensionFunctionDefaultArgumentGeneratorDelegate.kt +++ b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/delegate/ExtensionFunctionDefaultArgumentGeneratorDelegate.kt @@ -1,12 +1,12 @@ package co.touchlab.skie.phases.features.defaultarguments.delegate import co.touchlab.skie.kir.descriptor.DescriptorProvider -import co.touchlab.skie.phases.DescriptorModificationPhase +import co.touchlab.skie.phases.FrontendIrPhase import co.touchlab.skie.util.SharedCounter import org.jetbrains.kotlin.descriptors.SimpleFunctionDescriptor class ExtensionFunctionDefaultArgumentGeneratorDelegate( - context: DescriptorModificationPhase.Context, + context: FrontendIrPhase.Context, sharedCounter: SharedCounter, ) : BaseFunctionDefaultArgumentGeneratorDelegate(context, sharedCounter) { diff --git a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/delegate/TopLevelFunctionDefaultArgumentGeneratorDelegate.kt b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/delegate/TopLevelFunctionDefaultArgumentGeneratorDelegate.kt index 50900a2a..9258612e 100644 --- a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/delegate/TopLevelFunctionDefaultArgumentGeneratorDelegate.kt +++ b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/defaultarguments/delegate/TopLevelFunctionDefaultArgumentGeneratorDelegate.kt @@ -1,12 +1,12 @@ package co.touchlab.skie.phases.features.defaultarguments.delegate import co.touchlab.skie.kir.descriptor.DescriptorProvider -import co.touchlab.skie.phases.DescriptorModificationPhase +import co.touchlab.skie.phases.FrontendIrPhase import co.touchlab.skie.util.SharedCounter import org.jetbrains.kotlin.descriptors.SimpleFunctionDescriptor class TopLevelFunctionDefaultArgumentGeneratorDelegate( - context: DescriptorModificationPhase.Context, + context: FrontendIrPhase.Context, sharedCounter: SharedCounter, ) : BaseFunctionDefaultArgumentGeneratorDelegate(context, sharedCounter) { diff --git a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/suspend/KotlinSuspendGeneratorDelegate.kt b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/suspend/KotlinSuspendGeneratorDelegate.kt index 0d002792..e81350f3 100644 --- a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/suspend/KotlinSuspendGeneratorDelegate.kt +++ b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/suspend/KotlinSuspendGeneratorDelegate.kt @@ -7,7 +7,7 @@ import co.touchlab.skie.kir.irbuilder.createFunction import co.touchlab.skie.kir.irbuilder.util.copyIndexing import co.touchlab.skie.kir.irbuilder.util.copyWithoutDefaultValue import co.touchlab.skie.kir.irbuilder.util.createValueParameter -import co.touchlab.skie.phases.DescriptorModificationPhase +import co.touchlab.skie.phases.FrontendIrPhase import co.touchlab.skie.phases.KirPhase import co.touchlab.skie.phases.declarationBuilder import co.touchlab.skie.phases.descriptorKirProvider @@ -35,7 +35,7 @@ import org.jetbrains.kotlin.types.TypeSubstitutor import org.jetbrains.kotlin.types.Variance class KotlinSuspendGeneratorDelegate( - private val context: DescriptorModificationPhase.Context, + private val context: FrontendIrPhase.Context, ) { private var nextBridgingFunctionIndex = 0 @@ -46,7 +46,7 @@ class KotlinSuspendGeneratorDelegate( private val bodyGenerator = SuspendKotlinBridgeBodyGenerator(suspendHandlerDescriptor) - context(DescriptorModificationPhase.Context) + context(FrontendIrPhase.Context) fun generateKotlinBridgingFunction(functionDescriptor: FunctionDescriptor): FunctionDescriptor { val bridgingFunctionDescriptor = createBridgingFunction(functionDescriptor) @@ -56,7 +56,7 @@ class KotlinSuspendGeneratorDelegate( return bridgingFunctionDescriptor } - context(DescriptorModificationPhase.Context) + context(FrontendIrPhase.Context) private fun FunctionDescriptor.changeSkieConfiguration(originalFunctionDescriptor: FunctionDescriptor) { this.configuration.useDefaultsForSkieRuntime = true diff --git a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/suspend/SuspendGenerator.kt b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/suspend/SuspendGenerator.kt index c36a00b9..fab7d5f2 100644 --- a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/suspend/SuspendGenerator.kt +++ b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/suspend/SuspendGenerator.kt @@ -5,18 +5,18 @@ import co.touchlab.skie.configuration.isSuspendInteropEnabled import co.touchlab.skie.configuration.provider.descriptor.configuration import co.touchlab.skie.kir.descriptor.DescriptorProvider import co.touchlab.skie.kir.descriptor.allExposedMembers -import co.touchlab.skie.phases.DescriptorModificationPhase +import co.touchlab.skie.phases.FrontendIrPhase import co.touchlab.skie.phases.descriptorProvider import co.touchlab.skie.phases.util.StatefulCompilerDependentKirPhase import co.touchlab.skie.phases.util.StatefulSirPhase import org.jetbrains.kotlin.descriptors.SimpleFunctionDescriptor -object SuspendGenerator : DescriptorModificationPhase { +object SuspendGenerator : FrontendIrPhase { - context(DescriptorModificationPhase.Context) + context(FrontendIrPhase.Context) override fun isActive(): Boolean = SkieConfigurationFlag.Feature_CoroutinesInterop.isEnabled - context(DescriptorModificationPhase.Context) + context(FrontendIrPhase.Context) override suspend fun execute() { val kotlinDelegate = KotlinSuspendGeneratorDelegate(context) val swiftDelegate = SwiftSuspendGeneratorDelegate(context) @@ -28,7 +28,7 @@ object SuspendGenerator : DescriptorModificationPhase { } } - context(DescriptorModificationPhase.Context) + context(FrontendIrPhase.Context) private val DescriptorProvider.allSupportedFunctions: List get() = this.allExposedMembers.filterIsInstance() .filter { mapper.isBaseMethod(it) } diff --git a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/suspend/SwiftSuspendGeneratorDelegate.kt b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/suspend/SwiftSuspendGeneratorDelegate.kt index bbf45ca2..3eb38ce4 100644 --- a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/suspend/SwiftSuspendGeneratorDelegate.kt +++ b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/phases/features/suspend/SwiftSuspendGeneratorDelegate.kt @@ -1,12 +1,12 @@ package co.touchlab.skie.phases.features.suspend -import co.touchlab.skie.phases.DescriptorModificationPhase +import co.touchlab.skie.phases.FrontendIrPhase import co.touchlab.skie.phases.descriptorKirProvider import co.touchlab.skie.phases.util.doInPhase import org.jetbrains.kotlin.descriptors.FunctionDescriptor class SwiftSuspendGeneratorDelegate( - private val context: DescriptorModificationPhase.Context, + private val context: FrontendIrPhase.Context, ) { private val swiftSuspendFunctionGenerator = SwiftSuspendFunctionGenerator()