From cf7f2b762fb6b75a41538c358952dbc4f5005eb4 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Mon, 11 Jan 2016 16:34:40 +0300 Subject: [PATCH] Minor, refactor and simplify RuntimePackagePartProvider Lazy was unnecessary because we effectively were immediately evaluating it after creation anyway --- .../reflect/RuntimePackagePartProvider.kt | 29 +++++++++---------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/core/descriptors.runtime/src/org/jetbrains/kotlin/load/kotlin/reflect/RuntimePackagePartProvider.kt b/core/descriptors.runtime/src/org/jetbrains/kotlin/load/kotlin/reflect/RuntimePackagePartProvider.kt index c8a484348ab..35a9f7e3b36 100644 --- a/core/descriptors.runtime/src/org/jetbrains/kotlin/load/kotlin/reflect/RuntimePackagePartProvider.kt +++ b/core/descriptors.runtime/src/org/jetbrains/kotlin/load/kotlin/reflect/RuntimePackagePartProvider.kt @@ -18,28 +18,25 @@ package org.jetbrains.kotlin.load.kotlin.reflect import org.jetbrains.kotlin.descriptors.PackagePartProvider import org.jetbrains.kotlin.load.kotlin.ModuleMapping -import java.io.InputStream import java.util.concurrent.ConcurrentHashMap -class RuntimePackagePartProvider(val classLoader : ClassLoader) : PackagePartProvider { - - val module2Mapping = ConcurrentHashMap>() +class RuntimePackagePartProvider(private val classLoader: ClassLoader) : PackagePartProvider { + private val module2Mapping = ConcurrentHashMap() fun registerModule(moduleName: String) { - module2Mapping.putIfAbsent(moduleName, lazy { - val resourceAsStream: InputStream = classLoader.getResourceAsStream("META-INF/$moduleName.${ModuleMapping.MAPPING_FILE_EXT}") ?: return@lazy ModuleMapping.create() - - try { - return@lazy ModuleMapping.create(resourceAsStream.readBytes()) + val mapping = try { + classLoader.getResourceAsStream("META-INF/$moduleName.${ModuleMapping.MAPPING_FILE_EXT}")?.let { stream -> + ModuleMapping.create(stream.readBytes()) } - catch (e: Exception) { - return@lazy ModuleMapping.create() - } - }) + } + catch (e: Exception) { + // TODO: do not swallow this exception? + null + } + module2Mapping.putIfAbsent(moduleName, mapping ?: ModuleMapping.EMPTY) } - override fun findPackageParts(packageFqName: String): List { - return module2Mapping.values.map { it.value.findPackageParts(packageFqName) }.filterNotNull().flatMap { it.parts }.distinct() + return module2Mapping.values.mapNotNull { it.findPackageParts(packageFqName) }.flatMap { it.parts }.distinct() } -} \ No newline at end of file +}