Remove callback hell from LazyModuleDependencies

This commit is contained in:
Dmitry Jemerov
2017-07-26 12:24:42 +02:00
parent cfbc559a97
commit 3debca09ea
2 changed files with 50 additions and 44 deletions
@@ -135,18 +135,3 @@ class ModuleDependenciesImpl(
) : ModuleDependencies {
override val allImplementingModules: Set<ModuleDescriptorImpl> = emptySet()
}
class LazyModuleDependencies(
storageManager: StorageManager,
computeDependencies: () -> List<ModuleDescriptorImpl>,
computeModulesWhoseInternalsAreVisible: () -> Set<ModuleDescriptorImpl>,
computeImplementingModules: () -> Set<ModuleDescriptorImpl>
) : ModuleDependencies {
private val dependencies = storageManager.createLazyValue(computeDependencies)
private val visibleInternals = storageManager.createLazyValue(computeModulesWhoseInternalsAreVisible)
private val implementingModules = storageManager.createLazyValue(computeImplementingModules)
override val allDependencies: List<ModuleDescriptorImpl> get() = dependencies()
override val modulesWhoseInternalsAreVisible: Set<ModuleDescriptorImpl> get() = visibleInternals()
override val allImplementingModules: Set<ModuleDescriptorImpl> get() = implementingModules()
}