FIR IDE: do not depend on IDEA modules in frontend-api
This commit is contained in:
@@ -10,12 +10,9 @@ dependencies {
|
||||
compileOnly(project(":compiler:frontend"))
|
||||
compileOnly(project(":core:compiler.common"))
|
||||
compileOnly(project(":core:compiler.common.jvm"))
|
||||
compileOnly(project(":idea:idea-frontend-independent"))
|
||||
compileOnly(project(":idea:idea-frontend-fir:idea-fir-low-level-api"))
|
||||
compileOnly(project(":idea:idea-frontend-independent"))
|
||||
compileOnly(intellijCoreDep())
|
||||
compileOnly(intellijDep())
|
||||
compileOnly(intellijPluginDep("java")) { includeJars("java-api", "java-impl") }
|
||||
|
||||
compile(intellijCoreDep()) { includeJars("intellij-core", "guava", rootProject = rootProject) }
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
|
||||
+4
-5
@@ -8,14 +8,13 @@ package org.jetbrains.kotlin.idea.frontend.api
|
||||
import com.intellij.openapi.Disposable
|
||||
import com.intellij.openapi.application.ApplicationListener
|
||||
import com.intellij.openapi.application.ApplicationManager
|
||||
import org.jetbrains.kotlin.miniStdLib.multithreadings.javaThreadLocal
|
||||
|
||||
@KtInternalApiMarker
|
||||
class NoWriteActionInAnalyseCallChecker(parentDisposable: Disposable) {
|
||||
init {
|
||||
val listener = object : ApplicationListener {
|
||||
override fun writeActionFinished(action: Any) {
|
||||
if (currentAnalysisContextEnteringCount > 0) {
|
||||
if (currentAnalysisContextEnteringCount.get() > 0) {
|
||||
throw WriteActionStartInsideAnalysisContextException()
|
||||
}
|
||||
}
|
||||
@@ -24,14 +23,14 @@ class NoWriteActionInAnalyseCallChecker(parentDisposable: Disposable) {
|
||||
}
|
||||
|
||||
fun beforeEnteringAnalysisContext() {
|
||||
currentAnalysisContextEnteringCount++
|
||||
currentAnalysisContextEnteringCount.set(currentAnalysisContextEnteringCount.get() + 1)
|
||||
}
|
||||
|
||||
fun afterLeavingAnalysisContext() {
|
||||
currentAnalysisContextEnteringCount--
|
||||
currentAnalysisContextEnteringCount.set(currentAnalysisContextEnteringCount.get() - 1)
|
||||
}
|
||||
|
||||
private var currentAnalysisContextEnteringCount by javaThreadLocal(0)
|
||||
private val currentAnalysisContextEnteringCount = ThreadLocal.withInitial { 0 }
|
||||
}
|
||||
|
||||
class WriteActionStartInsideAnalysisContextException : IllegalStateException(
|
||||
|
||||
Reference in New Issue
Block a user