FIR IDE: do not depend on IDEA modules in frontend-api

This commit is contained in:
Ilya Kirillov
2021-06-19 18:50:52 +02:00
parent 28dbfeb845
commit 0c5883cbe0
2 changed files with 6 additions and 10 deletions
+2 -5
View File
@@ -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 {
@@ -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(