From ff45e585434e544fd5e30ff8494b3468f05c2c3f Mon Sep 17 00:00:00 2001 From: Dmitriy Dolovov Date: Tue, 2 Feb 2021 12:34:07 +0300 Subject: [PATCH] [Commonizer] Minor. Post-review changes, p.2 --- .../utils/MetadataDeclarationsComparator.kt | 16 ++++++++++++++-- .../descriptors/commonizer/utils/assertions.kt | 2 +- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/metadata/utils/MetadataDeclarationsComparator.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/metadata/utils/MetadataDeclarationsComparator.kt index a2cc9a88c6f..b073ecb2d76 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/metadata/utils/MetadataDeclarationsComparator.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/metadata/utils/MetadataDeclarationsComparator.kt @@ -11,8 +11,14 @@ import org.jetbrains.kotlin.descriptors.commonizer.utils.KNI_BRIDGE_FUNCTION_PRE import java.util.* import kotlin.reflect.KProperty0 +/** + * Compares two metadata modules ([KlibModuleMetadata]). Returns [Result], which may hold a list + * of found [Mismatch]s. + * + * The entry point is [MetadataDeclarationsComparator.Companion.compareModules] function. + */ // TODO: extract to kotlinx-metadata-klib library? -class MetadataDeclarationsComparator(private val config: Config = Config.Default) { +class MetadataDeclarationsComparator private constructor(private val config: Config) { interface Config { val rootPathElement: String @@ -82,7 +88,7 @@ class MetadataDeclarationsComparator(private val config: Config = Config.Default private fun toResult() = if (mismatches.isEmpty()) Result.Success else Result.Failure(mismatches) - fun compare( + private fun compareModules( metadataA: KlibModuleMetadata, metadataB: KlibModuleMetadata ): Result { @@ -748,6 +754,12 @@ class MetadataDeclarationsComparator(private val config: Config = Config.Default } companion object { + fun compare( + metadataA: KlibModuleMetadata, + metadataB: KlibModuleMetadata, + config: Config = Config.Default + ): Result = MetadataDeclarationsComparator(config).compareModules(metadataA, metadataB) + private val VISIBILITY_FLAGS: Array> = arrayOf( Flag.Common::IS_INTERNAL, Flag.Common::IS_PRIVATE, diff --git a/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/utils/assertions.kt b/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/utils/assertions.kt index fbe7dcf82c4..492295000b6 100644 --- a/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/utils/assertions.kt +++ b/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/utils/assertions.kt @@ -26,7 +26,7 @@ fun assertModulesAreEqual(reference: SerializedMetadata, generated: SerializedMe val referenceModule = with(reference) { KlibModuleMetadata.read(SerializedMetadataLibraryProvider(module, fragments, fragmentNames)) } val generatedModule = with(generated) { KlibModuleMetadata.read(SerializedMetadataLibraryProvider(module, fragments, fragmentNames)) } - when (val result = MetadataDeclarationsComparator().compare(referenceModule, generatedModule)) { + when (val result = MetadataDeclarationsComparator.compare(referenceModule, generatedModule)) { is Result.Success -> Unit is Result.Failure -> { val mismatches = result.mismatches