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 35a9f7e3b36..4dcd40eda9c 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 @@ -25,7 +25,7 @@ class RuntimePackagePartProvider(private val classLoader: ClassLoader) : Package fun registerModule(moduleName: String) { val mapping = try { - classLoader.getResourceAsStream("META-INF/$moduleName.${ModuleMapping.MAPPING_FILE_EXT}")?.let { stream -> + classLoader.getResourceAsStream("META-INF/$moduleName.${ModuleMapping.MAPPING_FILE_EXT}")?.use { stream -> ModuleMapping.create(stream.readBytes()) } } diff --git a/core/descriptors/src/org/jetbrains/kotlin/builtins/BuiltInsPackageFragment.kt b/core/descriptors/src/org/jetbrains/kotlin/builtins/BuiltInsPackageFragment.kt index 76086c412ee..a2f712737f2 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/builtins/BuiltInsPackageFragment.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/builtins/BuiltInsPackageFragment.kt @@ -31,8 +31,7 @@ class BuiltInsPackageFragment( module: ModuleDescriptor, loadResource: (path: String) -> InputStream? ) : DeserializedPackageFragment(fqName, storageManager, module, loadResource) { - private val proto = run { - val stream = loadResourceSure(BuiltInSerializerProtocol.getBuiltInsFilePath(fqName)) + private val proto = loadResourceSure(BuiltInSerializerProtocol.getBuiltInsFilePath(fqName)).use { stream -> val version = BuiltInsBinaryVersion.readFrom(stream) if (!version.isCompatible()) { diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/DeserializedPackageFragment.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/DeserializedPackageFragment.kt index d069b4e14ff..646936bbe15 100644 --- a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/DeserializedPackageFragment.kt +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/DeserializedPackageFragment.kt @@ -30,7 +30,7 @@ abstract class DeserializedPackageFragment( fqName: FqName, protected val storageManager: StorageManager, module: ModuleDescriptor, - protected val loadResource: (path: String) -> InputStream? + private val loadResource: (path: String) -> InputStream? ) : PackageFragmentDescriptorImpl(module, fqName) { // component dependency cycle @set:Inject diff --git a/eval4j/test/org/jetbrains/eval4j/test/suiteBuilder.kt b/eval4j/test/org/jetbrains/eval4j/test/suiteBuilder.kt index a2439a38628..0e12c80196c 100644 --- a/eval4j/test/org/jetbrains/eval4j/test/suiteBuilder.kt +++ b/eval4j/test/org/jetbrains/eval4j/test/suiteBuilder.kt @@ -37,21 +37,20 @@ fun buildTestSuite( val suite = TestSuite() val ownerClass = TestData::class.java - val inputStream = ownerClass.classLoader!!.getResourceAsStream(ownerClass.getInternalName() + ".class")!! - - ClassReader(inputStream).accept(object : ClassVisitor(ASM5) { - - override fun visitMethod(access: Int, name: String, desc: String, signature: String?, exceptions: Array?): MethodVisitor? { - return object : MethodNode(ASM5, access, name, desc, signature, exceptions) { - override fun visitEnd() { - val testCase = buildTestCase(ownerClass, this, create) - if (testCase != null) { - suite.addTest(testCase) + ownerClass.classLoader!!.getResourceAsStream(ownerClass.getInternalName() + ".class")!!.use { inputStream -> + ClassReader(inputStream).accept(object : ClassVisitor(ASM5) { + override fun visitMethod(access: Int, name: String, desc: String, signature: String?, exceptions: Array?): MethodVisitor? { + return object : MethodNode(ASM5, access, name, desc, signature, exceptions) { + override fun visitEnd() { + val testCase = buildTestCase(ownerClass, this, create) + if (testCase != null) { + suite.addTest(testCase) + } } } } - } - }, 0) + }, 0) + } return suite } diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/compilingEvaluator.kt b/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/compilingEvaluator.kt index 8b1906ff5ff..32ecbddb3f3 100644 --- a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/compilingEvaluator.kt +++ b/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/compilingEvaluator.kt @@ -78,11 +78,8 @@ private class ClassBytes(val name: String) { val inputStream = this.javaClass.classLoader.getResourceAsStream(name.replace('.', '/') + ".class") ?: throw EvaluateException("Couldn't find $name class in current class loader") - try { - inputStream.readBytes() - } - finally { - inputStream.close() + inputStream.use { + it.readBytes() } } } diff --git a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptPackageFragment.kt b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptPackageFragment.kt index d0ed2e82faf..37a2b0041e6 100644 --- a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptPackageFragment.kt +++ b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptPackageFragment.kt @@ -33,21 +33,24 @@ class KotlinJavascriptPackageFragment( loadResource: (path: String) -> InputStream? ) : DeserializedPackageFragment(fqName, storageManager, module, loadResource) { private val nameResolver = - NameResolverImpl.read(loadResourceSure(KotlinJavascriptSerializedResourcePaths.getStringTableFilePath(fqName))) + loadResourceSure(KotlinJavascriptSerializedResourcePaths.getStringTableFilePath(fqName)).use { stream -> + NameResolverImpl.read(stream) + } override val classDataFinder = KotlinJavascriptClassDataFinder(nameResolver, loadResource) - override fun computeMemberScope(): DeserializedPackageMemberScope { - val packageStream = loadResourceSure(KotlinJavascriptSerializedResourcePaths.getPackageFilePath(fqName)) - val packageProto = ProtoBuf.Package.parseFrom(packageStream, JsSerializerProtocol.extensionRegistry) - return DeserializedPackageMemberScope( - this, packageProto, nameResolver, packagePartSource = null, components = components, classNames = { loadClassNames() } - ) - } + override fun computeMemberScope(): DeserializedPackageMemberScope = + loadResourceSure(KotlinJavascriptSerializedResourcePaths.getPackageFilePath(fqName)).use { packageStream -> + val packageProto = ProtoBuf.Package.parseFrom(packageStream, JsSerializerProtocol.extensionRegistry) + DeserializedPackageMemberScope( + this, packageProto, nameResolver, packagePartSource = null, components = components, + classNames = { loadClassNames() } + ) + } - private fun loadClassNames(): Collection { - val classesStream = loadResourceSure(KotlinJavascriptSerializedResourcePaths.getClassesInPackageFilePath(fqName)) - val classesProto = JsProtoBuf.Classes.parseFrom(classesStream, JsSerializerProtocol.extensionRegistry) - return classesProto.classNameList?.map { id -> nameResolver.getName(id) } ?: listOf() - } + private fun loadClassNames(): Collection = + loadResourceSure(KotlinJavascriptSerializedResourcePaths.getClassesInPackageFilePath(fqName)).use { classesStream -> + val classesProto = JsProtoBuf.Classes.parseFrom(classesStream, JsSerializerProtocol.extensionRegistry) + classesProto.classNameList?.map { id -> nameResolver.getName(id) } ?: listOf() + } }