diff --git a/idea/idea-frontend-api/build.gradle.kts b/idea/idea-frontend-api/build.gradle.kts index f80566eef5b..42d2746d2b9 100644 --- a/idea/idea-frontend-api/build.gradle.kts +++ b/idea/idea-frontend-api/build.gradle.kts @@ -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 { diff --git a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/NoWriteActionInAnalyseCallChecker.kt b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/NoWriteActionInAnalyseCallChecker.kt index 66717dd10f3..f971d28bd38 100644 --- a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/NoWriteActionInAnalyseCallChecker.kt +++ b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/NoWriteActionInAnalyseCallChecker.kt @@ -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(