[kotlin] AbstractCoreEnvironment class removed

GitOrigin-RevId: d25d4af708e076bc3b815aa387dc7ddefb7b7852
This commit is contained in:
Andrew Kozlov
2024-05-17 17:06:09 +02:00
committed by intellij-monorepo-bot
parent e84556e888
commit 0da8b5f6e4
2 changed files with 22 additions and 54 deletions

View File

@@ -6,11 +6,11 @@ import com.intellij.mock.MockComponentManager
import com.intellij.mock.MockProject
import com.intellij.openapi.Disposable
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.application.runWriteActionAndWait
import com.intellij.openapi.extensions.Extensions
import com.intellij.openapi.util.Disposer
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.openapi.vfs.VirtualFileManager
import com.intellij.platform.uast.testFramework.env.AbstractCoreEnvironment
import com.intellij.psi.PsiManager
import com.intellij.psi.PsiNameHelper
import com.intellij.psi.impl.PsiNameHelperImpl
@@ -54,12 +54,12 @@ import java.io.File
abstract class AbstractKotlinUastTest : TestCase() {
private lateinit var testRootDisposable: Disposable
private lateinit var compilerConfiguration: CompilerConfiguration
private lateinit var kotlinCoreEnvironment: KotlinCoreEnvironment
private lateinit var myEnvironment: AbstractCoreEnvironment
protected val project: MockProject
get() = myEnvironment.project
get() = kotlinCoreEnvironment.project as MockProject
protected val uastContext: UastContext
get() = project.getService(UastContext::class.java)
@@ -88,7 +88,13 @@ abstract class AbstractKotlinUastTest : TestCase() {
protected fun getVirtualFile(testName: String): VirtualFile {
val testFile = testDataDir.listFiles { pathname -> pathname.nameWithoutExtension == testName }.first()
myEnvironment = createEnvironment(testFile)
if (ApplicationManager.getApplication() == null) {
Disposer.register(testRootDisposable) {
resetApplicationToNull()
}
}
createEnvironment(testFile)
initializeCoreEnvironment()
initializeKotlinEnvironment()
@@ -154,27 +160,29 @@ abstract class AbstractKotlinUastTest : TestCase() {
)
}
private fun createEnvironment(source: File): AbstractCoreEnvironment {
val appWasNull = ApplicationManager.getApplication() == null
private fun createEnvironment(source: File) {
compilerConfiguration = createKotlinCompilerConfiguration(source)
compilerConfiguration.put(JVMConfigurationKeys.USE_PSI_CLASS_FILES_READING, true)
compilerConfiguration.put(CLIConfigurationKeys.PATH_TO_KOTLIN_COMPILER_JAR, TestKotlinArtifacts.kotlinCompiler)
val parentDisposable = Disposer.newDisposable()
kotlinCoreEnvironment = KotlinCoreEnvironment.createForTests(
parentDisposable = parentDisposable,
parentDisposable = testRootDisposable,
initialConfiguration = compilerConfiguration,
extensionConfigs = EnvironmentConfigFiles.JVM_CONFIG_FILES,
)
return KotlinCoreEnvironmentWrapper(kotlinCoreEnvironment, parentDisposable, appWasNull)
}
override fun setUp() {
testRootDisposable = Disposer.newDisposable()
super.setUp()
}
@Suppress("SSBasedInspection")
override fun tearDown() {
ApplicationManager.getApplication().invokeAndWait {
ApplicationManager.getApplication().runWriteAction {
myEnvironment.dispose()
}
try {
runWriteActionAndWait { Disposer.dispose(testRootDisposable) }
} finally {
super.tearDown()
}
}
@@ -192,30 +200,6 @@ abstract class AbstractKotlinUastTest : TestCase() {
}
}
}
private class KotlinCoreEnvironmentWrapper(
val environment: KotlinCoreEnvironment,
val parentDisposable: Disposable,
val appWasNull: Boolean
) : AbstractCoreEnvironment() {
override fun addJavaSourceRoot(root: File) {
TODO("not implemented")
}
override fun addJar(root: File) {
TODO("not implemented")
}
override val project: MockProject
get() = environment.project as MockProject
override fun dispose() {
Disposer.dispose(parentDisposable)
if (appWasNull) {
resetApplicationToNull()
}
}
}
}
val TEST_KOTLIN_MODEL_DIR = KotlinRoot.DIR.resolve("uast/uast-kotlin/tests/testData")

View File

@@ -1,16 +0,0 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.platform.uast.testFramework.env
import com.intellij.mock.MockProject
import java.io.File
abstract class AbstractCoreEnvironment {
abstract val project: MockProject
open fun dispose() {
// Do nothing
}
abstract fun addJavaSourceRoot(root: File)
abstract fun addJar(root: File)
}