From ac19bf50fe118d144ee55dc6e5509e5675049ee3 Mon Sep 17 00:00:00 2001 From: Gabriel Souza Date: Wed, 26 Jun 2024 11:03:50 -0300 Subject: [PATCH] Fix Skie Kotlin Compiler Subplugin loading --- .../kotlin/co/touchlab/skie/spi/SkiePluginLoader.kt | 5 ++++- .../compilerinject/interceptor/PhaseInterceptorRegistrar.kt | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/SKIE/kotlin-compiler/core/src/commonMain/kotlin/co/touchlab/skie/spi/SkiePluginLoader.kt b/SKIE/kotlin-compiler/core/src/commonMain/kotlin/co/touchlab/skie/spi/SkiePluginLoader.kt index d4f692462..172f716df 100644 --- a/SKIE/kotlin-compiler/core/src/commonMain/kotlin/co/touchlab/skie/spi/SkiePluginLoader.kt +++ b/SKIE/kotlin-compiler/core/src/commonMain/kotlin/co/touchlab/skie/spi/SkiePluginLoader.kt @@ -5,7 +5,10 @@ import java.util.ServiceLoader class SkiePluginLoader { - val pluginRegistrars: List = ServiceLoader.load(SkiePluginRegistrar::class.java).toList() + val pluginRegistrars: List = ServiceLoader.load( + SkiePluginRegistrar::class.java, + SkiePluginRegistrar::class.java.classLoader + ).toList() fun registerAll(initPhaseContext: InitPhase.Context) { pluginRegistrars.forEach { diff --git a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/compilerinject/interceptor/PhaseInterceptorRegistrar.kt b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/compilerinject/interceptor/PhaseInterceptorRegistrar.kt index 80b14ad14..bdb77c434 100644 --- a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/compilerinject/interceptor/PhaseInterceptorRegistrar.kt +++ b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/compilerinject/interceptor/PhaseInterceptorRegistrar.kt @@ -36,7 +36,7 @@ object PhaseInterceptorRegistrar { val phaseInterceptors = (this::class.java.classLoader as? URLClassLoader)?.let { ServiceLoaderLite.loadImplementations(it) } - ?: ServiceLoader.load(PhaseInterceptor::class.java) + ?: ServiceLoader.load(PhaseInterceptor::class.java, this::class.java.classLoader) phaseInterceptors .groupBy { it.getInterceptedPhase() }