diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/ResultsConsumer.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/ResultsConsumer.kt index f4b9ea55e42..fb980073d12 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/ResultsConsumer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/ResultsConsumer.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.commonizer import org.jetbrains.kotlin.commonizer.konan.NativeSensitiveManifestData import org.jetbrains.kotlin.library.SerializedMetadata -import java.io.File internal fun buildResultsConsumer(init: ResultsConsumerBuilder.() -> Unit): ResultsConsumer { return ResultsConsumerBuilder().apply(init).build() @@ -16,17 +15,9 @@ internal fun buildResultsConsumer(init: ResultsConsumerBuilder.() -> Unit): Resu interface ResultsConsumer { enum class Status { NOTHING_TO_DO, DONE } - sealed class ModuleResult { - abstract val libraryName: String - - class Missing(val originalLocation: File) : ModuleResult() { - override val libraryName: String get() = originalLocation.name - } - - class Commonized( - override val libraryName: String, val metadata: SerializedMetadata, val manifest: NativeSensitiveManifestData - ) : ModuleResult() - } + class ModuleResult( + val libraryName: String, val metadata: SerializedMetadata, val manifest: NativeSensitiveManifestData + ) /** * Consume a single [ModuleResult] for the specified [CommonizerTarget]. diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/facade.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/facade.kt index e7881c03f87..940cf9cdecc 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/facade.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/facade.kt @@ -94,7 +94,7 @@ internal fun serializeTarget( val manifestData = parameters.manifestProvider[outputTarget].buildManifest(libraryName) parameters.resultsConsumer.consume( parameters, outputTarget, - ResultsConsumer.ModuleResult.Commonized(libraryName, serializedMetadata, manifestData) + ResultsConsumer.ModuleResult(libraryName, serializedMetadata, manifestData) ) } parameters.resultsConsumer.targetConsumed(parameters, outputTarget) diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/konan/ModuleSerializer.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/konan/ModuleSerializer.kt index 7cb3af683ff..016629088c4 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/konan/ModuleSerializer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/konan/ModuleSerializer.kt @@ -5,10 +5,7 @@ package org.jetbrains.kotlin.commonizer.konan -import org.jetbrains.kotlin.commonizer.CommonizerOutputFileLayout -import org.jetbrains.kotlin.commonizer.CommonizerParameters -import org.jetbrains.kotlin.commonizer.CommonizerTarget -import org.jetbrains.kotlin.commonizer.ResultsConsumer +import org.jetbrains.kotlin.commonizer.* import org.jetbrains.kotlin.library.SerializedMetadata import org.jetbrains.kotlin.library.impl.BaseWriterImpl import org.jetbrains.kotlin.library.impl.BuiltInsPlatform @@ -20,20 +17,15 @@ internal class ModuleSerializer( private val destination: File, ) : ResultsConsumer { override fun consume(parameters: CommonizerParameters, target: CommonizerTarget, moduleResult: ResultsConsumer.ModuleResult) { - val librariesDestination = CommonizerOutputFileLayout.resolveCommonizedDirectory(destination, target) - when (moduleResult) { - is ResultsConsumer.ModuleResult.Commonized -> { - val libraryDestination = librariesDestination.resolve(moduleResult.fileSystemCompatibleLibraryName) - writeLibrary(moduleResult.metadata, moduleResult.manifest, libraryDestination) - } - is ResultsConsumer.ModuleResult.Missing -> { - val missingModuleSourceLocation = moduleResult.originalLocation - val missingModuleDestinationLocation = librariesDestination.resolve(moduleResult.fileSystemCompatibleLibraryName) - if (!missingModuleDestinationLocation.exists()) { - missingModuleSourceLocation.copyRecursively(librariesDestination.resolve(moduleResult.fileSystemCompatibleLibraryName)) - } - } - } + val librariesDestination = CommonizerOutputFileLayout.resolveCommonizedDirectory( + destination, + target, + ) + writeLibrary( + moduleResult.metadata, + moduleResult.manifest, + librariesDestination.resolve(moduleResult.fileSystemCompatibleLibraryName) + ) } } diff --git a/native/commonizer/tests/org/jetbrains/kotlin/commonizer/AbstractCommonizationFromSourcesTest.kt b/native/commonizer/tests/org/jetbrains/kotlin/commonizer/AbstractCommonizationFromSourcesTest.kt index 80b9b87dc31..c310e051c50 100644 --- a/native/commonizer/tests/org/jetbrains/kotlin/commonizer/AbstractCommonizationFromSourcesTest.kt +++ b/native/commonizer/tests/org/jetbrains/kotlin/commonizer/AbstractCommonizationFromSourcesTest.kt @@ -77,8 +77,7 @@ abstract class AbstractCommonizationFromSourcesTest : KtUsefulTestCase() { assertEquals(sharedTarget, results.sharedTarget) val sharedModuleAsExpected: SerializedMetadata = analyzedModules.commonizedModules.getValue(sharedTarget) - val sharedModuleByCommonizer: SerializedMetadata = - (results.modulesByTargets.getValue(sharedTarget).single() as ModuleResult.Commonized).metadata + val sharedModuleByCommonizer: SerializedMetadata = results.modulesByTargets.getValue(sharedTarget).single().metadata assertModulesAreEqual(sharedModuleAsExpected, sharedModuleByCommonizer, sharedTarget) } diff --git a/native/commonizer/tests/org/jetbrains/kotlin/commonizer/AbstractInlineSourcesCommonizationTest.kt b/native/commonizer/tests/org/jetbrains/kotlin/commonizer/AbstractInlineSourcesCommonizationTest.kt index 2cc139087ff..7387fe9e9ea 100644 --- a/native/commonizer/tests/org/jetbrains/kotlin/commonizer/AbstractInlineSourcesCommonizationTest.kt +++ b/native/commonizer/tests/org/jetbrains/kotlin/commonizer/AbstractInlineSourcesCommonizationTest.kt @@ -9,7 +9,7 @@ import org.intellij.lang.annotations.Language import org.jetbrains.kotlin.builtins.DefaultBuiltIns import org.jetbrains.kotlin.commonizer.AbstractInlineSourcesCommonizationTest.DependencyAwareInlineSourceTestFactory import org.jetbrains.kotlin.commonizer.AbstractInlineSourcesCommonizationTest.Parameters -import org.jetbrains.kotlin.commonizer.ResultsConsumer.ModuleResult.Commonized +import org.jetbrains.kotlin.commonizer.ResultsConsumer.ModuleResult import org.jetbrains.kotlin.commonizer.konan.NativeManifestDataProvider import org.jetbrains.kotlin.commonizer.utils.* import kotlin.test.assertIs @@ -226,7 +226,7 @@ fun HierarchicalCommonizationResult.assertCommonized( val module = getTarget(target).firstOrNull { moduleResult -> moduleResult.libraryName == referenceModule.name } ?: fail("Missing ${referenceModule.name} in target $target") - val commonizedModule = assertIs(module, "Expected ${module.libraryName} to be 'Commonized'") + val commonizedModule = assertIs(module, "Expected ${module.libraryName} to be 'Commonized'") assertModulesAreEqual( inlineSourceTest.createMetadata(referenceModule), commonizedModule.metadata, target @@ -247,7 +247,7 @@ fun HierarchicalCommonizationResult.assertCommonized( moduleBuilder: InlineSourceBuilder.ModuleBuilder.() -> Unit ) = assertCommonized(parseCommonizerTarget(target), moduleBuilder) -fun Collection.assertSingleCommonizedModule(): Commonized { +fun Collection.assertSingleCommonizedModule(): ResultsConsumer.ModuleResult { kotlin.test.assertEquals(1, size, "Expected exactly one module. Found: ${this.map { it.libraryName }}") return assertIs(single(), "Expected single module to be 'Commonized'") } diff --git a/native/commonizer/tests/org/jetbrains/kotlin/commonizer/CommonizerFacadeTest.kt b/native/commonizer/tests/org/jetbrains/kotlin/commonizer/CommonizerFacadeTest.kt index b385a99c2af..8972e34a91c 100644 --- a/native/commonizer/tests/org/jetbrains/kotlin/commonizer/CommonizerFacadeTest.kt +++ b/native/commonizer/tests/org/jetbrains/kotlin/commonizer/CommonizerFacadeTest.kt @@ -135,10 +135,7 @@ class CommonizerFacadeTest { val actualMissingModuleNames = mutableSetOf() actualModuleResults.forEach { moduleResult -> - when (moduleResult) { - is ModuleResult.Commonized -> actualCommonizedModuleNames += moduleResult.libraryName - is ModuleResult.Missing -> actualMissingModuleNames += moduleResult.libraryName - } + actualCommonizedModuleNames += moduleResult.libraryName } assertEquals(expectedCommonizedModuleNames.size + expectedMissingModuleNames.size, actualModuleResults.size) diff --git a/native/commonizer/tests/org/jetbrains/kotlin/commonizer/hierarchical/HierarchicalModuleCommonizationTest.kt b/native/commonizer/tests/org/jetbrains/kotlin/commonizer/hierarchical/HierarchicalModuleCommonizationTest.kt index 36f47c4d87d..2da83e8d10f 100644 --- a/native/commonizer/tests/org/jetbrains/kotlin/commonizer/hierarchical/HierarchicalModuleCommonizationTest.kt +++ b/native/commonizer/tests/org/jetbrains/kotlin/commonizer/hierarchical/HierarchicalModuleCommonizationTest.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.commonizer.hierarchical import org.jetbrains.kotlin.commonizer.AbstractInlineSourcesCommonizationTest -import org.jetbrains.kotlin.commonizer.ResultsConsumer.ModuleResult.Missing import org.jetbrains.kotlin.commonizer.ResultsConsumer.Status import org.jetbrains.kotlin.commonizer.assertCommonized import org.jetbrains.kotlin.commonizer.parseCommonizerTarget