From 5e6ad3f015238fec88344f378356401a9d6ae7f3 Mon Sep 17 00:00:00 2001 From: Tadeas Kriz Date: Tue, 27 Aug 2024 15:05:38 +0200 Subject: [PATCH] Fix incorrect filtering for `fixPrivateTypeParametersSymbolsFromOldKLibs`. --- .../impl/IrTypeParameterSymbol+isPublicSymbol_1.8.0.kt | 7 +++++++ .../impl/IrTypeParameterSymbol+isPublicSymbol_2.0.20.kt | 6 ++++++ .../skie/kir/irbuilder/impl/DeclarationBuilderImpl.kt | 3 +-- .../irbuilder/impl/IrTypeParameterSymbol+isPublicSymbol.kt | 5 +++++ 4 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 SKIE/kotlin-compiler/linker-plugin/src/kgp_1.8.0..2.0.0/kotlin/co/touchlab/skie/kir/irbuilder/impl/IrTypeParameterSymbol+isPublicSymbol_1.8.0.kt create mode 100644 SKIE/kotlin-compiler/linker-plugin/src/kgp_2.0.20/kotlin/co/touchlab/skie/kir/irbuilder/impl/IrTypeParameterSymbol+isPublicSymbol_2.0.20.kt create mode 100644 SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/kir/irbuilder/impl/IrTypeParameterSymbol+isPublicSymbol.kt diff --git a/SKIE/kotlin-compiler/linker-plugin/src/kgp_1.8.0..2.0.0/kotlin/co/touchlab/skie/kir/irbuilder/impl/IrTypeParameterSymbol+isPublicSymbol_1.8.0.kt b/SKIE/kotlin-compiler/linker-plugin/src/kgp_1.8.0..2.0.0/kotlin/co/touchlab/skie/kir/irbuilder/impl/IrTypeParameterSymbol+isPublicSymbol_1.8.0.kt new file mode 100644 index 00000000..3aee7a39 --- /dev/null +++ b/SKIE/kotlin-compiler/linker-plugin/src/kgp_1.8.0..2.0.0/kotlin/co/touchlab/skie/kir/irbuilder/impl/IrTypeParameterSymbol+isPublicSymbol_1.8.0.kt @@ -0,0 +1,7 @@ +package co.touchlab.skie.kir.irbuilder.impl + +import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol +import org.jetbrains.kotlin.ir.symbols.impl.IrTypeParameterPublicSymbolImpl + +actual val IrTypeParameterSymbol.isPublicSymbol: Boolean + get() = this is IrTypeParameterPublicSymbolImpl diff --git a/SKIE/kotlin-compiler/linker-plugin/src/kgp_2.0.20/kotlin/co/touchlab/skie/kir/irbuilder/impl/IrTypeParameterSymbol+isPublicSymbol_2.0.20.kt b/SKIE/kotlin-compiler/linker-plugin/src/kgp_2.0.20/kotlin/co/touchlab/skie/kir/irbuilder/impl/IrTypeParameterSymbol+isPublicSymbol_2.0.20.kt new file mode 100644 index 00000000..828419d9 --- /dev/null +++ b/SKIE/kotlin-compiler/linker-plugin/src/kgp_2.0.20/kotlin/co/touchlab/skie/kir/irbuilder/impl/IrTypeParameterSymbol+isPublicSymbol_2.0.20.kt @@ -0,0 +1,6 @@ +package co.touchlab.skie.kir.irbuilder.impl + +import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol + +actual val IrTypeParameterSymbol.isPublicSymbol: Boolean + get() = signature != null diff --git a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/kir/irbuilder/impl/DeclarationBuilderImpl.kt b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/kir/irbuilder/impl/DeclarationBuilderImpl.kt index 1f4338fd..57d16a1f 100644 --- a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/kir/irbuilder/impl/DeclarationBuilderImpl.kt +++ b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/kir/irbuilder/impl/DeclarationBuilderImpl.kt @@ -40,7 +40,6 @@ import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.declarations.IrModuleFragment import org.jetbrains.kotlin.ir.declarations.IrTypeParameter import org.jetbrains.kotlin.ir.declarations.IrTypeParametersContainer -import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.serialization.deserialization.DeserializedPackageFragment import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedClassDescriptor @@ -161,7 +160,7 @@ class DeclarationBuilderImpl( */ private fun fixPrivateTypeParametersSymbolsFromOldKLibs(skieSymbolTable: SkieSymbolTable) { skieSymbolTable.allExposedTypeParameters(mutableDescriptorProvider) - .filter { it.symbol !is IrTypeParameterSymbol } + .filterNot { it.symbol.isPublicSymbol } .forEach { skieSymbolTable.declarePrivateTypeParameterAsPublic(it) } diff --git a/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/kir/irbuilder/impl/IrTypeParameterSymbol+isPublicSymbol.kt b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/kir/irbuilder/impl/IrTypeParameterSymbol+isPublicSymbol.kt new file mode 100644 index 00000000..872276c0 --- /dev/null +++ b/SKIE/kotlin-compiler/linker-plugin/src/kgp_common/kotlin/co/touchlab/skie/kir/irbuilder/impl/IrTypeParameterSymbol+isPublicSymbol.kt @@ -0,0 +1,5 @@ +package co.touchlab.skie.kir.irbuilder.impl + +import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol + +expect val IrTypeParameterSymbol.isPublicSymbol: Boolean