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