[Commonizer] Rename InputTarget and OutputTarget
Rename target classes to better reflect their meaning: - InputTarget -> LeafTarget - OutputTarget -> SharedTarget
This commit is contained in:
@@ -12,7 +12,7 @@ class Parameters(
|
|||||||
val progressLogger: ((String) -> Unit)? = null
|
val progressLogger: ((String) -> Unit)? = null
|
||||||
) {
|
) {
|
||||||
// use linked hash map to preserve order
|
// use linked hash map to preserve order
|
||||||
private val _targetProviders = LinkedHashMap<InputTarget, TargetProvider>()
|
private val _targetProviders = LinkedHashMap<LeafTarget, TargetProvider>()
|
||||||
|
|
||||||
val targetProviders: List<TargetProvider> get() = _targetProviders.values.toList()
|
val targetProviders: List<TargetProvider> get() = _targetProviders.values.toList()
|
||||||
|
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ sealed class Result {
|
|||||||
class Commonized(
|
class Commonized(
|
||||||
val modulesByTargets: Map<Target, Collection<ModuleResult>>
|
val modulesByTargets: Map<Target, Collection<ModuleResult>>
|
||||||
) : Result() {
|
) : Result() {
|
||||||
val sharedTarget: OutputTarget by lazy { modulesByTargets.keys.filterIsInstance<OutputTarget>().single() }
|
val sharedTarget: SharedTarget by lazy { modulesByTargets.keys.filterIsInstance<SharedTarget>().single() }
|
||||||
val leafTargets: Set<InputTarget> by lazy { modulesByTargets.keys.filterIsInstance<InputTarget>().toSet() }
|
val leafTargets: Set<LeafTarget> by lazy { modulesByTargets.keys.filterIsInstance<LeafTarget>().toSet() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,10 +11,10 @@ import org.jetbrains.kotlin.konan.target.KonanTarget
|
|||||||
// JVM, JS and concrete Kotlin/Native targets, e.g. macos_x64, ios_x64, linux_x64.
|
// JVM, JS and concrete Kotlin/Native targets, e.g. macos_x64, ios_x64, linux_x64.
|
||||||
sealed class Target
|
sealed class Target
|
||||||
|
|
||||||
data class InputTarget(val name: String, val konanTarget: KonanTarget? = null) : Target()
|
data class LeafTarget(val name: String, val konanTarget: KonanTarget? = null) : Target()
|
||||||
|
|
||||||
data class OutputTarget(val targets: Set<Target>) : Target() {
|
data class SharedTarget(val targets: Set<Target>) : Target() {
|
||||||
init {
|
init {
|
||||||
require(targets.isNotEmpty())
|
require(targets.isNotEmpty())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
|||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
class TargetProvider(
|
class TargetProvider(
|
||||||
val target: InputTarget,
|
val target: LeafTarget,
|
||||||
val builtInsClass: Class<out KotlinBuiltIns>,
|
val builtInsClass: Class<out KotlinBuiltIns>,
|
||||||
val builtInsProvider: BuiltInsProvider,
|
val builtInsProvider: BuiltInsProvider,
|
||||||
val modulesProvider: ModulesProvider,
|
val modulesProvider: ModulesProvider,
|
||||||
|
|||||||
+2
-2
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.descriptors.commonizer.cir.factory
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.builtins.konan.KonanBuiltIns
|
import org.jetbrains.kotlin.builtins.konan.KonanBuiltIns
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.BuiltInsProvider
|
import org.jetbrains.kotlin.descriptors.commonizer.BuiltInsProvider
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.InputTarget
|
import org.jetbrains.kotlin.descriptors.commonizer.LeafTarget
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.Target
|
import org.jetbrains.kotlin.descriptors.commonizer.Target
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirRoot
|
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirRoot
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.impl.CirRootImpl
|
import org.jetbrains.kotlin.descriptors.commonizer.cir.impl.CirRootImpl
|
||||||
@@ -18,7 +18,7 @@ object CirRootFactory {
|
|||||||
builtInsClass: String,
|
builtInsClass: String,
|
||||||
builtInsProvider: BuiltInsProvider
|
builtInsProvider: BuiltInsProvider
|
||||||
): CirRoot {
|
): CirRoot {
|
||||||
if (target is InputTarget) {
|
if (target is LeafTarget) {
|
||||||
check((target.konanTarget != null) == (builtInsClass == KonanBuiltIns::class.java.name))
|
check((target.konanTarget != null) == (builtInsClass == KonanBuiltIns::class.java.name))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+6
-6
@@ -8,28 +8,28 @@ package org.jetbrains.kotlin.descriptors.commonizer.core
|
|||||||
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
|
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
|
||||||
import org.jetbrains.kotlin.builtins.konan.KonanBuiltIns
|
import org.jetbrains.kotlin.builtins.konan.KonanBuiltIns
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.BuiltInsProvider
|
import org.jetbrains.kotlin.descriptors.commonizer.BuiltInsProvider
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.InputTarget
|
import org.jetbrains.kotlin.descriptors.commonizer.LeafTarget
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.OutputTarget
|
import org.jetbrains.kotlin.descriptors.commonizer.SharedTarget
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirRoot
|
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirRoot
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.factory.CirRootFactory
|
import org.jetbrains.kotlin.descriptors.commonizer.cir.factory.CirRootFactory
|
||||||
|
|
||||||
class RootCommonizer : AbstractStandardCommonizer<CirRoot, CirRoot>() {
|
class RootCommonizer : AbstractStandardCommonizer<CirRoot, CirRoot>() {
|
||||||
private val inputTargets = mutableSetOf<InputTarget>()
|
private val leafTargets = mutableSetOf<LeafTarget>()
|
||||||
private var konanBuiltInsProvider: BuiltInsProvider? = null
|
private var konanBuiltInsProvider: BuiltInsProvider? = null
|
||||||
|
|
||||||
override fun commonizationResult() = CirRootFactory.create(
|
override fun commonizationResult() = CirRootFactory.create(
|
||||||
target = OutputTarget(inputTargets),
|
target = SharedTarget(leafTargets),
|
||||||
builtInsClass = if (konanBuiltInsProvider != null) KonanBuiltIns::class.java.name else DefaultBuiltIns::class.java.name,
|
builtInsClass = if (konanBuiltInsProvider != null) KonanBuiltIns::class.java.name else DefaultBuiltIns::class.java.name,
|
||||||
builtInsProvider = konanBuiltInsProvider ?: BuiltInsProvider.defaultBuiltInsProvider
|
builtInsProvider = konanBuiltInsProvider ?: BuiltInsProvider.defaultBuiltInsProvider
|
||||||
)
|
)
|
||||||
|
|
||||||
override fun initialize(first: CirRoot) {
|
override fun initialize(first: CirRoot) {
|
||||||
inputTargets += first.target as InputTarget
|
leafTargets += first.target as LeafTarget
|
||||||
konanBuiltInsProvider = first.konanBuiltInsProvider
|
konanBuiltInsProvider = first.konanBuiltInsProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun doCommonizeWith(next: CirRoot): Boolean {
|
override fun doCommonizeWith(next: CirRoot): Boolean {
|
||||||
inputTargets += next.target as InputTarget
|
leafTargets += next.target as LeafTarget
|
||||||
|
|
||||||
// keep the first met KonanBuiltIns when all targets are Kotlin/Native
|
// keep the first met KonanBuiltIns when all targets are Kotlin/Native
|
||||||
// otherwise use DefaultBuiltIns
|
// otherwise use DefaultBuiltIns
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ fun runCommonization(parameters: Parameters): Result {
|
|||||||
|
|
||||||
val commonizedModules: List<ModuleResult.Commonized> = components.cache.getAllModules(component.index).map(ModuleResult::Commonized)
|
val commonizedModules: List<ModuleResult.Commonized> = components.cache.getAllModules(component.index).map(ModuleResult::Commonized)
|
||||||
|
|
||||||
val absentModules: List<ModuleResult.Absent> = if (target is InputTarget)
|
val absentModules: List<ModuleResult.Absent> = if (target is LeafTarget)
|
||||||
mergeResult.absentModuleInfos.getValue(target).map { ModuleResult.Absent(it.originalLocation) }
|
mergeResult.absentModuleInfos.getValue(target).map { ModuleResult.Absent(it.originalLocation) }
|
||||||
else emptyList()
|
else emptyList()
|
||||||
|
|
||||||
|
|||||||
+7
-7
@@ -91,7 +91,7 @@ class NativeDistributionCommonizer(
|
|||||||
val stdlib = NativeLibrary(loadLibrary(stdlibPath))
|
val stdlib = NativeLibrary(loadLibrary(stdlibPath))
|
||||||
|
|
||||||
val librariesByTargets = targets.associate { target ->
|
val librariesByTargets = targets.associate { target ->
|
||||||
val leafTarget = InputTarget(target.name, target)
|
val leafTarget = LeafTarget(target.name, target)
|
||||||
|
|
||||||
val platformLibs = leafTarget.platformLibrariesSource
|
val platformLibs = leafTarget.platformLibrariesSource
|
||||||
.takeIf { it.isDirectory }
|
.takeIf { it.isDirectory }
|
||||||
@@ -213,11 +213,11 @@ class NativeDistributionCommonizer(
|
|||||||
val manifestProvider: NativeManifestDataProvider
|
val manifestProvider: NativeManifestDataProvider
|
||||||
val starredTarget: String?
|
val starredTarget: String?
|
||||||
when (target) {
|
when (target) {
|
||||||
is InputTarget -> {
|
is LeafTarget -> {
|
||||||
manifestProvider = originalLibraries.librariesByTargets.getValue(target)
|
manifestProvider = originalLibraries.librariesByTargets.getValue(target)
|
||||||
starredTarget = target.name
|
starredTarget = target.name
|
||||||
}
|
}
|
||||||
is OutputTarget -> {
|
is SharedTarget -> {
|
||||||
manifestProvider = CommonNativeManifestDataProvider(originalLibraries.librariesByTargets.values)
|
manifestProvider = CommonNativeManifestDataProvider(originalLibraries.librariesByTargets.values)
|
||||||
starredTarget = null
|
starredTarget = null
|
||||||
}
|
}
|
||||||
@@ -255,7 +255,7 @@ class NativeDistributionCommonizer(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun copyTargetAsIs(leafTarget: InputTarget, librariesCount: Int) {
|
private fun copyTargetAsIs(leafTarget: LeafTarget, librariesCount: Int) {
|
||||||
val librariesDestination = leafTarget.librariesDestination
|
val librariesDestination = leafTarget.librariesDestination
|
||||||
librariesDestination.mkdirs() // always create an empty directory even if there is nothing to copy
|
librariesDestination.mkdirs() // always create an empty directory even if there is nothing to copy
|
||||||
|
|
||||||
@@ -318,15 +318,15 @@ class NativeDistributionCommonizer(
|
|||||||
library.commit()
|
library.commit()
|
||||||
}
|
}
|
||||||
|
|
||||||
private val InputTarget.platformLibrariesSource: File
|
private val LeafTarget.platformLibrariesSource: File
|
||||||
get() = repository.resolve(KONAN_DISTRIBUTION_KLIB_DIR)
|
get() = repository.resolve(KONAN_DISTRIBUTION_KLIB_DIR)
|
||||||
.resolve(KONAN_DISTRIBUTION_PLATFORM_LIBS_DIR)
|
.resolve(KONAN_DISTRIBUTION_PLATFORM_LIBS_DIR)
|
||||||
.resolve(name)
|
.resolve(name)
|
||||||
|
|
||||||
private val Target.librariesDestination: File
|
private val Target.librariesDestination: File
|
||||||
get() = when (this) {
|
get() = when (this) {
|
||||||
is InputTarget -> destination.resolve(KONAN_DISTRIBUTION_PLATFORM_LIBS_DIR).resolve(name)
|
is LeafTarget -> destination.resolve(KONAN_DISTRIBUTION_PLATFORM_LIBS_DIR).resolve(name)
|
||||||
is OutputTarget -> destination.resolve(KONAN_DISTRIBUTION_COMMON_LIBS_DIR)
|
is SharedTarget -> destination.resolve(KONAN_DISTRIBUTION_COMMON_LIBS_DIR)
|
||||||
}
|
}
|
||||||
|
|
||||||
private companion object {
|
private companion object {
|
||||||
|
|||||||
+2
-2
@@ -6,7 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.descriptors.commonizer.konan
|
package org.jetbrains.kotlin.descriptors.commonizer.konan
|
||||||
|
|
||||||
import gnu.trove.THashMap
|
import gnu.trove.THashMap
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.InputTarget
|
import org.jetbrains.kotlin.descriptors.commonizer.LeafTarget
|
||||||
import org.jetbrains.kotlin.library.KotlinLibrary
|
import org.jetbrains.kotlin.library.KotlinLibrary
|
||||||
|
|
||||||
internal interface NativeManifestDataProvider {
|
internal interface NativeManifestDataProvider {
|
||||||
@@ -37,7 +37,7 @@ internal class NativeLibrariesToCommonize(val libraries: List<NativeLibrary>) :
|
|||||||
|
|
||||||
internal class AllNativeLibraries(
|
internal class AllNativeLibraries(
|
||||||
val stdlib: NativeLibrary,
|
val stdlib: NativeLibrary,
|
||||||
val librariesByTargets: Map<InputTarget, NativeLibrariesToCommonize>
|
val librariesByTargets: Map<LeafTarget, NativeLibrariesToCommonize>
|
||||||
)
|
)
|
||||||
|
|
||||||
internal class CommonNativeManifestDataProvider(
|
internal class CommonNativeManifestDataProvider(
|
||||||
|
|||||||
+2
-2
@@ -6,7 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.descriptors.commonizer.mergedtree
|
package org.jetbrains.kotlin.descriptors.commonizer.mergedtree
|
||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.InputTarget
|
import org.jetbrains.kotlin.descriptors.commonizer.LeafTarget
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.ModulesProvider.ModuleInfo
|
import org.jetbrains.kotlin.descriptors.commonizer.ModulesProvider.ModuleInfo
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.Parameters
|
import org.jetbrains.kotlin.descriptors.commonizer.Parameters
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.TargetProvider
|
import org.jetbrains.kotlin.descriptors.commonizer.TargetProvider
|
||||||
@@ -53,7 +53,7 @@ class CirTreeMerger(
|
|||||||
) {
|
) {
|
||||||
class CirTreeMergeResult(
|
class CirTreeMergeResult(
|
||||||
val root: CirRootNode,
|
val root: CirRootNode,
|
||||||
val absentModuleInfos: Map<InputTarget, Collection<ModuleInfo>>
|
val absentModuleInfos: Map<LeafTarget, Collection<ModuleInfo>>
|
||||||
)
|
)
|
||||||
|
|
||||||
private val size = parameters.targetProviders.size
|
private val size = parameters.targetProviders.size
|
||||||
|
|||||||
+15
-15
@@ -68,7 +68,7 @@ abstract class AbstractCommonizationFromSourcesTest : KtUsefulTestCase() {
|
|||||||
val result: Result = runCommonization(analyzedModules.toCommonizationParameters())
|
val result: Result = runCommonization(analyzedModules.toCommonizationParameters())
|
||||||
assertCommonizationPerformed(result)
|
assertCommonizationPerformed(result)
|
||||||
|
|
||||||
val sharedTarget: OutputTarget = analyzedModules.sharedTarget
|
val sharedTarget: SharedTarget = analyzedModules.sharedTarget
|
||||||
assertEquals(sharedTarget, result.sharedTarget)
|
assertEquals(sharedTarget, result.sharedTarget)
|
||||||
|
|
||||||
val sharedModuleAsExpected: ModuleDescriptor = analyzedModules.commonizedModules.getValue(sharedTarget)
|
val sharedModuleAsExpected: ModuleDescriptor = analyzedModules.commonizedModules.getValue(sharedTarget)
|
||||||
@@ -79,7 +79,7 @@ abstract class AbstractCommonizationFromSourcesTest : KtUsefulTestCase() {
|
|||||||
assertValidModule(sharedModuleByCommonizer)
|
assertValidModule(sharedModuleByCommonizer)
|
||||||
assertModulesAreEqual(sharedModuleAsExpected, sharedModuleByCommonizer, "\"$sharedTarget\" target")
|
assertModulesAreEqual(sharedModuleAsExpected, sharedModuleByCommonizer, "\"$sharedTarget\" target")
|
||||||
|
|
||||||
val leafTargets: Set<InputTarget> = analyzedModules.leafTargets
|
val leafTargets: Set<LeafTarget> = analyzedModules.leafTargets
|
||||||
assertEquals(leafTargets, result.leafTargets)
|
assertEquals(leafTargets, result.leafTargets)
|
||||||
|
|
||||||
for (leafTarget in leafTargets) {
|
for (leafTarget in leafTargets) {
|
||||||
@@ -113,18 +113,18 @@ private data class SourceModuleRoot(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private class SourceModuleRoots(
|
private class SourceModuleRoots(
|
||||||
val originalRoots: Map<InputTarget, SourceModuleRoot>,
|
val originalRoots: Map<LeafTarget, SourceModuleRoot>,
|
||||||
val commonizedRoots: Map<Target, SourceModuleRoot>,
|
val commonizedRoots: Map<Target, SourceModuleRoot>,
|
||||||
val dependeeRoots: Map<Target, SourceModuleRoot>
|
val dependeeRoots: Map<Target, SourceModuleRoot>
|
||||||
) {
|
) {
|
||||||
val leafTargets: Set<InputTarget> = originalRoots.keys
|
val leafTargets: Set<LeafTarget> = originalRoots.keys
|
||||||
val sharedTarget: OutputTarget
|
val sharedTarget: SharedTarget
|
||||||
|
|
||||||
init {
|
init {
|
||||||
check(leafTargets.size >= 2)
|
check(leafTargets.size >= 2)
|
||||||
check(leafTargets.none { it.name == SHARED_TARGET_NAME })
|
check(leafTargets.none { it.name == SHARED_TARGET_NAME })
|
||||||
|
|
||||||
val sharedTargets = commonizedRoots.keys.filterIsInstance<OutputTarget>()
|
val sharedTargets = commonizedRoots.keys.filterIsInstance<SharedTarget>()
|
||||||
check(sharedTargets.size == 1)
|
check(sharedTargets.size == 1)
|
||||||
|
|
||||||
sharedTarget = sharedTargets.single()
|
sharedTarget = sharedTargets.single()
|
||||||
@@ -137,10 +137,10 @@ private class SourceModuleRoots(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun load(dataDir: File): SourceModuleRoots = try {
|
fun load(dataDir: File): SourceModuleRoots = try {
|
||||||
val originalRoots = listRoots(dataDir, ORIGINAL_ROOTS_DIR).mapKeys { InputTarget(it.key) }
|
val originalRoots = listRoots(dataDir, ORIGINAL_ROOTS_DIR).mapKeys { LeafTarget(it.key) }
|
||||||
|
|
||||||
val leafTargets = originalRoots.keys
|
val leafTargets = originalRoots.keys
|
||||||
val sharedTarget = OutputTarget(leafTargets)
|
val sharedTarget = SharedTarget(leafTargets)
|
||||||
|
|
||||||
fun getTarget(targetName: String): Target =
|
fun getTarget(targetName: String): Target =
|
||||||
if (targetName == SHARED_TARGET_NAME) sharedTarget else leafTargets.first { it.name == targetName }
|
if (targetName == SHARED_TARGET_NAME) sharedTarget else leafTargets.first { it.name == targetName }
|
||||||
@@ -185,18 +185,18 @@ private class AnalyzedModules(
|
|||||||
val commonizedModules: Map<Target, ModuleDescriptor>,
|
val commonizedModules: Map<Target, ModuleDescriptor>,
|
||||||
val dependeeModules: Map<Target, ModuleDescriptor>
|
val dependeeModules: Map<Target, ModuleDescriptor>
|
||||||
) {
|
) {
|
||||||
val leafTargets: Set<InputTarget>
|
val leafTargets: Set<LeafTarget>
|
||||||
val sharedTarget: OutputTarget
|
val sharedTarget: SharedTarget
|
||||||
|
|
||||||
init {
|
init {
|
||||||
originalModules.keys.let { targets ->
|
originalModules.keys.let { targets ->
|
||||||
check(targets.isNotEmpty())
|
check(targets.isNotEmpty())
|
||||||
|
|
||||||
leafTargets = targets.filterIsInstance<InputTarget>().toSet()
|
leafTargets = targets.filterIsInstance<LeafTarget>().toSet()
|
||||||
check(targets.size == leafTargets.size)
|
check(targets.size == leafTargets.size)
|
||||||
}
|
}
|
||||||
|
|
||||||
sharedTarget = OutputTarget(leafTargets)
|
sharedTarget = SharedTarget(leafTargets)
|
||||||
val allTargets = leafTargets + sharedTarget
|
val allTargets = leafTargets + sharedTarget
|
||||||
|
|
||||||
check(commonizedModules.keys == allTargets)
|
check(commonizedModules.keys == allTargets)
|
||||||
@@ -247,7 +247,7 @@ private class AnalyzedModules(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun createModules(
|
private fun createModules(
|
||||||
sharedTarget: OutputTarget,
|
sharedTarget: SharedTarget,
|
||||||
moduleRoots: Map<out Target, SourceModuleRoot>,
|
moduleRoots: Map<out Target, SourceModuleRoot>,
|
||||||
dependencies: AnalyzedModuleDependencies,
|
dependencies: AnalyzedModuleDependencies,
|
||||||
parentDisposable: Disposable,
|
parentDisposable: Disposable,
|
||||||
@@ -274,7 +274,7 @@ private class AnalyzedModules(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun createModule(
|
private fun createModule(
|
||||||
sharedTarget: OutputTarget,
|
sharedTarget: SharedTarget,
|
||||||
currentTarget: Target,
|
currentTarget: Target,
|
||||||
moduleRoot: SourceModuleRoot,
|
moduleRoot: SourceModuleRoot,
|
||||||
dependencies: AnalyzedModuleDependencies,
|
dependencies: AnalyzedModuleDependencies,
|
||||||
@@ -322,7 +322,7 @@ private class AnalyzedModules(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private class DependenciesContainerImpl(
|
private class DependenciesContainerImpl(
|
||||||
sharedTarget: OutputTarget,
|
sharedTarget: SharedTarget,
|
||||||
currentTarget: Target,
|
currentTarget: Target,
|
||||||
dependencies: AnalyzedModuleDependencies
|
dependencies: AnalyzedModuleDependencies
|
||||||
) : CommonDependenciesContainer {
|
) : CommonDependenciesContainer {
|
||||||
|
|||||||
+1
-1
@@ -64,7 +64,7 @@ class CommonizerFacadeTest {
|
|||||||
forEach { (targetName, moduleNames) ->
|
forEach { (targetName, moduleNames) ->
|
||||||
it.addTarget(
|
it.addTarget(
|
||||||
TargetProvider(
|
TargetProvider(
|
||||||
target = InputTarget(targetName),
|
target = LeafTarget(targetName),
|
||||||
builtInsClass = DefaultBuiltIns::class.java,
|
builtInsClass = DefaultBuiltIns::class.java,
|
||||||
builtInsProvider = BuiltInsProvider.defaultBuiltInsProvider,
|
builtInsProvider = BuiltInsProvider.defaultBuiltInsProvider,
|
||||||
modulesProvider = MockModulesProvider(moduleNames),
|
modulesProvider = MockModulesProvider(moduleNames),
|
||||||
|
|||||||
+58
-58
@@ -9,8 +9,8 @@ import org.jetbrains.kotlin.builtins.DefaultBuiltIns
|
|||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.builtins.jvm.JvmBuiltIns
|
import org.jetbrains.kotlin.builtins.jvm.JvmBuiltIns
|
||||||
import org.jetbrains.kotlin.builtins.konan.KonanBuiltIns
|
import org.jetbrains.kotlin.builtins.konan.KonanBuiltIns
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.InputTarget
|
import org.jetbrains.kotlin.descriptors.commonizer.LeafTarget
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.OutputTarget
|
import org.jetbrains.kotlin.descriptors.commonizer.SharedTarget
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.Target
|
import org.jetbrains.kotlin.descriptors.commonizer.Target
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirRoot
|
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirRoot
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.factory.CirRootFactory
|
import org.jetbrains.kotlin.descriptors.commonizer.cir.factory.CirRootFactory
|
||||||
@@ -24,129 +24,129 @@ class RootCommonizerTest : AbstractCommonizerTest<CirRoot, CirRoot>() {
|
|||||||
@Test
|
@Test
|
||||||
fun allAreNative() = doTestSuccess(
|
fun allAreNative() = doTestSuccess(
|
||||||
expected = KONAN_BUILT_INS.toMock(
|
expected = KONAN_BUILT_INS.toMock(
|
||||||
OutputTarget(
|
SharedTarget(
|
||||||
setOf(
|
setOf(
|
||||||
InputTarget("ios_x64", KonanTarget.IOS_X64),
|
LeafTarget("ios_x64", KonanTarget.IOS_X64),
|
||||||
InputTarget("ios_arm64", KonanTarget.IOS_ARM64),
|
LeafTarget("ios_arm64", KonanTarget.IOS_ARM64),
|
||||||
InputTarget("ios_arm32", KonanTarget.IOS_ARM32)
|
LeafTarget("ios_arm32", KonanTarget.IOS_ARM32)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
KONAN_BUILT_INS.toMock(InputTarget("ios_x64", KonanTarget.IOS_X64)),
|
KONAN_BUILT_INS.toMock(LeafTarget("ios_x64", KonanTarget.IOS_X64)),
|
||||||
KONAN_BUILT_INS.toMock(InputTarget("ios_arm64", KonanTarget.IOS_ARM64)),
|
KONAN_BUILT_INS.toMock(LeafTarget("ios_arm64", KonanTarget.IOS_ARM64)),
|
||||||
KONAN_BUILT_INS.toMock(InputTarget("ios_arm32", KonanTarget.IOS_ARM32))
|
KONAN_BUILT_INS.toMock(LeafTarget("ios_arm32", KonanTarget.IOS_ARM32))
|
||||||
)
|
)
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun jvmAndNative1() = doTestSuccess(
|
fun jvmAndNative1() = doTestSuccess(
|
||||||
expected = DEFAULT_BUILT_INS.toMock(
|
expected = DEFAULT_BUILT_INS.toMock(
|
||||||
OutputTarget(
|
SharedTarget(
|
||||||
setOf(
|
setOf(
|
||||||
InputTarget("jvm1"),
|
LeafTarget("jvm1"),
|
||||||
InputTarget("ios_x64", KonanTarget.IOS_X64),
|
LeafTarget("ios_x64", KonanTarget.IOS_X64),
|
||||||
InputTarget("jvm2")
|
LeafTarget("jvm2")
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
JVM_BUILT_INS.toMock(InputTarget("jvm1")),
|
JVM_BUILT_INS.toMock(LeafTarget("jvm1")),
|
||||||
KONAN_BUILT_INS.toMock(InputTarget("ios_x64", KonanTarget.IOS_X64)),
|
KONAN_BUILT_INS.toMock(LeafTarget("ios_x64", KonanTarget.IOS_X64)),
|
||||||
JVM_BUILT_INS.toMock(InputTarget("jvm2"))
|
JVM_BUILT_INS.toMock(LeafTarget("jvm2"))
|
||||||
)
|
)
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun jvmAndNative2() = doTestSuccess(
|
fun jvmAndNative2() = doTestSuccess(
|
||||||
expected = DEFAULT_BUILT_INS.toMock(
|
expected = DEFAULT_BUILT_INS.toMock(
|
||||||
OutputTarget(
|
SharedTarget(
|
||||||
setOf(
|
setOf(
|
||||||
InputTarget("ios_x64", KonanTarget.IOS_X64),
|
LeafTarget("ios_x64", KonanTarget.IOS_X64),
|
||||||
InputTarget("jvm"),
|
LeafTarget("jvm"),
|
||||||
InputTarget("ios_arm64", KonanTarget.IOS_ARM64)
|
LeafTarget("ios_arm64", KonanTarget.IOS_ARM64)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
KONAN_BUILT_INS.toMock(InputTarget("ios_x64", KonanTarget.IOS_X64)),
|
KONAN_BUILT_INS.toMock(LeafTarget("ios_x64", KonanTarget.IOS_X64)),
|
||||||
JVM_BUILT_INS.toMock(InputTarget("jvm")),
|
JVM_BUILT_INS.toMock(LeafTarget("jvm")),
|
||||||
KONAN_BUILT_INS.toMock(InputTarget("ios_arm64", KonanTarget.IOS_ARM64))
|
KONAN_BUILT_INS.toMock(LeafTarget("ios_arm64", KonanTarget.IOS_ARM64))
|
||||||
)
|
)
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun noNative1() = doTestSuccess(
|
fun noNative1() = doTestSuccess(
|
||||||
expected = DEFAULT_BUILT_INS.toMock(
|
expected = DEFAULT_BUILT_INS.toMock(
|
||||||
OutputTarget(
|
SharedTarget(
|
||||||
setOf(
|
setOf(
|
||||||
InputTarget("default1"),
|
LeafTarget("default1"),
|
||||||
InputTarget("default2"),
|
LeafTarget("default2"),
|
||||||
InputTarget("default3")
|
LeafTarget("default3")
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
DEFAULT_BUILT_INS.toMock(InputTarget("default1")),
|
DEFAULT_BUILT_INS.toMock(LeafTarget("default1")),
|
||||||
DEFAULT_BUILT_INS.toMock(InputTarget("default2")),
|
DEFAULT_BUILT_INS.toMock(LeafTarget("default2")),
|
||||||
DEFAULT_BUILT_INS.toMock(InputTarget("default3"))
|
DEFAULT_BUILT_INS.toMock(LeafTarget("default3"))
|
||||||
)
|
)
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun noNative2() = doTestSuccess(
|
fun noNative2() = doTestSuccess(
|
||||||
expected = DEFAULT_BUILT_INS.toMock(
|
expected = DEFAULT_BUILT_INS.toMock(
|
||||||
OutputTarget(
|
SharedTarget(
|
||||||
setOf(
|
setOf(
|
||||||
InputTarget("jvm1"),
|
LeafTarget("jvm1"),
|
||||||
InputTarget("default"),
|
LeafTarget("default"),
|
||||||
InputTarget("jvm2")
|
LeafTarget("jvm2")
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
JVM_BUILT_INS.toMock(InputTarget("jvm1")),
|
JVM_BUILT_INS.toMock(LeafTarget("jvm1")),
|
||||||
DEFAULT_BUILT_INS.toMock(InputTarget("default")),
|
DEFAULT_BUILT_INS.toMock(LeafTarget("default")),
|
||||||
JVM_BUILT_INS.toMock(InputTarget("jvm2"))
|
JVM_BUILT_INS.toMock(LeafTarget("jvm2"))
|
||||||
)
|
)
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun noNative3() = doTestSuccess(
|
fun noNative3() = doTestSuccess(
|
||||||
expected = DEFAULT_BUILT_INS.toMock(
|
expected = DEFAULT_BUILT_INS.toMock(
|
||||||
OutputTarget(
|
SharedTarget(
|
||||||
setOf(
|
setOf(
|
||||||
InputTarget("jvm1"),
|
LeafTarget("jvm1"),
|
||||||
InputTarget("jvm2"),
|
LeafTarget("jvm2"),
|
||||||
InputTarget("jvm3")
|
LeafTarget("jvm3")
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
JVM_BUILT_INS.toMock(InputTarget("jvm1")),
|
JVM_BUILT_INS.toMock(LeafTarget("jvm1")),
|
||||||
JVM_BUILT_INS.toMock(InputTarget("jvm2")),
|
JVM_BUILT_INS.toMock(LeafTarget("jvm2")),
|
||||||
JVM_BUILT_INS.toMock(InputTarget("jvm3"))
|
JVM_BUILT_INS.toMock(LeafTarget("jvm3"))
|
||||||
)
|
)
|
||||||
|
|
||||||
@Test(expected = IllegalStateException::class)
|
@Test(expected = IllegalStateException::class)
|
||||||
fun misconfiguration1() = doTestSuccess(
|
fun misconfiguration1() = doTestSuccess(
|
||||||
expected = KONAN_BUILT_INS.toMock(
|
expected = KONAN_BUILT_INS.toMock(
|
||||||
OutputTarget(
|
SharedTarget(
|
||||||
setOf(
|
setOf(
|
||||||
InputTarget("ios_x64", KonanTarget.IOS_X64),
|
LeafTarget("ios_x64", KonanTarget.IOS_X64),
|
||||||
InputTarget("ios_arm64", KonanTarget.IOS_ARM64),
|
LeafTarget("ios_arm64", KonanTarget.IOS_ARM64),
|
||||||
InputTarget("ios_arm32", KonanTarget.IOS_ARM32)
|
LeafTarget("ios_arm32", KonanTarget.IOS_ARM32)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
KONAN_BUILT_INS.toMock(InputTarget("ios_x64")),
|
KONAN_BUILT_INS.toMock(LeafTarget("ios_x64")),
|
||||||
KONAN_BUILT_INS.toMock(InputTarget("ios_arm64", KonanTarget.IOS_ARM64)),
|
KONAN_BUILT_INS.toMock(LeafTarget("ios_arm64", KonanTarget.IOS_ARM64)),
|
||||||
KONAN_BUILT_INS.toMock(InputTarget("ios_arm32", KonanTarget.IOS_ARM32))
|
KONAN_BUILT_INS.toMock(LeafTarget("ios_arm32", KonanTarget.IOS_ARM32))
|
||||||
)
|
)
|
||||||
|
|
||||||
@Test(expected = IllegalStateException::class)
|
@Test(expected = IllegalStateException::class)
|
||||||
fun misconfiguration2() = doTestSuccess(
|
fun misconfiguration2() = doTestSuccess(
|
||||||
expected = DEFAULT_BUILT_INS.toMock(
|
expected = DEFAULT_BUILT_INS.toMock(
|
||||||
OutputTarget(
|
SharedTarget(
|
||||||
setOf(
|
setOf(
|
||||||
InputTarget("jvm1"),
|
LeafTarget("jvm1"),
|
||||||
InputTarget("jvm2"),
|
LeafTarget("jvm2"),
|
||||||
InputTarget("jvm3")
|
LeafTarget("jvm3")
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
JVM_BUILT_INS.toMock(InputTarget("jvm1", KonanTarget.IOS_X64)),
|
JVM_BUILT_INS.toMock(LeafTarget("jvm1", KonanTarget.IOS_X64)),
|
||||||
JVM_BUILT_INS.toMock(InputTarget("jvm2")),
|
JVM_BUILT_INS.toMock(LeafTarget("jvm2")),
|
||||||
JVM_BUILT_INS.toMock(InputTarget("jvm3"))
|
JVM_BUILT_INS.toMock(LeafTarget("jvm3"))
|
||||||
)
|
)
|
||||||
|
|
||||||
override fun createCommonizer() = RootCommonizer()
|
override fun createCommonizer() = RootCommonizer()
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
|||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.BuiltInsProvider
|
import org.jetbrains.kotlin.descriptors.commonizer.BuiltInsProvider
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.InputTarget
|
import org.jetbrains.kotlin.descriptors.commonizer.LeafTarget
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.ModulesProvider
|
import org.jetbrains.kotlin.descriptors.commonizer.ModulesProvider
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.ModulesProvider.ModuleInfo
|
import org.jetbrains.kotlin.descriptors.commonizer.ModulesProvider.ModuleInfo
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.builder.*
|
import org.jetbrains.kotlin.descriptors.commonizer.builder.*
|
||||||
@@ -44,7 +44,7 @@ internal fun mockClassType(
|
|||||||
|
|
||||||
val targetComponents = TargetDeclarationsBuilderComponents(
|
val targetComponents = TargetDeclarationsBuilderComponents(
|
||||||
storageManager = LockBasedStorageManager.NO_LOCKS,
|
storageManager = LockBasedStorageManager.NO_LOCKS,
|
||||||
target = InputTarget("Arbitrary target"),
|
target = LeafTarget("Arbitrary target"),
|
||||||
builtIns = DefaultBuiltIns.Instance,
|
builtIns = DefaultBuiltIns.Instance,
|
||||||
lazyClassifierLookupTable = LockBasedStorageManager.NO_LOCKS.createLazyValue { LazyClassifierLookupTable(emptyMap()) },
|
lazyClassifierLookupTable = LockBasedStorageManager.NO_LOCKS.createLazyValue { LazyClassifierLookupTable(emptyMap()) },
|
||||||
index = 0,
|
index = 0,
|
||||||
|
|||||||
Reference in New Issue
Block a user