Correctly dispose KotlinCoreEnvironment after use

This commit is contained in:
Dmitry Jemerov
2017-01-25 17:23:30 +01:00
parent 1c8478e46b
commit 9bc45a9c91
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.js.test
import com.intellij.mock.MockVirtualFileSystem import com.intellij.mock.MockVirtualFileSystem
import com.intellij.openapi.Disposable import com.intellij.openapi.Disposable
import com.intellij.openapi.util.Disposer
import com.intellij.psi.PsiManager import com.intellij.psi.PsiManager
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
@@ -183,8 +184,15 @@ class EncodeSignatureTest {
""") """)
} }
@Suppress("ObjectLiteralToLambda")
private fun assertSignature(expectedEncoding: String, codeSnippet: String, name: String = "test") { private fun assertSignature(expectedEncoding: String, codeSnippet: String, name: String = "test") {
val environment = createEnvironment() val disposable = object : Disposable {
override fun dispose() {
}
}
val environment = createEnvironment(disposable)
try {
val project = environment.project val project = environment.project
val fs = MockVirtualFileSystem() val fs = MockVirtualFileSystem()
@@ -205,6 +213,10 @@ class EncodeSignatureTest {
val actualEncoding = encodeSignature(testDescriptor) val actualEncoding = encodeSignature(testDescriptor)
Assert.assertEquals(expectedEncoding, actualEncoding) Assert.assertEquals(expectedEncoding, actualEncoding)
} }
finally {
Disposer.dispose(disposable)
}
}
private fun findTestCallable(scope: MemberScope, name: String): CallableMemberDescriptor? { private fun findTestCallable(scope: MemberScope, name: String): CallableMemberDescriptor? {
return scope.getContributedDescriptors().asSequence().mapNotNull { findTestCallable(it, name) }.firstOrNull() return scope.getContributedDescriptors().asSequence().mapNotNull { findTestCallable(it, name) }.firstOrNull()
@@ -227,7 +239,7 @@ class EncodeSignatureTest {
} }
} }
fun createEnvironment(): KotlinCoreEnvironment { fun createEnvironment(disposable: Disposable): KotlinCoreEnvironment {
return KotlinCoreEnvironment.createForTests(Disposable { }, CompilerConfiguration(), EnvironmentConfigFiles.JS_CONFIG_FILES) return KotlinCoreEnvironment.createForTests(disposable, CompilerConfiguration(), EnvironmentConfigFiles.JS_CONFIG_FILES)
} }
} }