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