[Commonizer] Lookup common descriptors that don't participate in commonization (for tests only)

This is necessary to run integration tests with fake declarations from
Kotlin/Native stdlib that are absent in stdlib-common.
This commit is contained in:
Dmitriy Dolovov
2020-08-31 15:37:04 +07:00
parent ed78169051
commit e21d99334b
3 changed files with 12 additions and 2 deletions
@@ -23,6 +23,9 @@ class Parameters(
field = value
}
// only for test purposes
internal var commonModulesProvider: ModulesProvider? = null
fun addTarget(targetProvider: TargetProvider): Parameters {
require(targetProvider.target !in _targetProviders) { "Target ${targetProvider.target} is already added" }
_targetProviders[targetProvider.target] = targetProvider
@@ -216,7 +216,10 @@ fun CirRootNode.createGlobalBuilderComponents(
}
val lazyModulesLookupTable = storageManager.createLazyValue {
val source = if (isCommon) emptyMap() else parameters.targetProviders[index].modulesProvider.loadModules()
val source = if (isCommon)
parameters.commonModulesProvider?.loadModules() ?: emptyMap()
else
parameters.targetProviders[index].modulesProvider.loadModules()
THashMap(source)
}
@@ -253,7 +253,11 @@ private class AnalyzedModules(
check(originalPlatformModules.keys == commonizedPlatformModules.keys)
}
fun toCommonizationParameters(): Parameters = originalPlatformModules.mapValues { it.value.module }.toCommonizationParameters()
fun toCommonizationParameters(): Parameters {
val parameters = originalPlatformModules.mapValues { it.value.module }.toCommonizationParameters()
parameters.commonModulesProvider = MockModulesProvider(commonizedCommonModule.module)
return parameters
}
companion object {
fun create(