~ [Analysis API] Forbid suspension calls inside analysis blocks
diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/session/KaSessionProvider.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/session/KaSessionProvider.kt
index 320791e..b47b101 100644
--- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/session/KaSessionProvider.kt
+++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/session/KaSessionProvider.kt
@@ -37,7 +37,10 @@
beforeEnteringAnalysis(analysisSession, useSiteElement)
return try {
- analysisSession.action()
+ val lock = Any()
+ synchronized(lock) {
+ analysisSession.action()
+ }
} finally {
afterLeavingAnalysis(analysisSession, useSiteElement)
}
@@ -51,7 +54,10 @@
beforeEnteringAnalysis(analysisSession, useSiteModule)
return try {
- analysisSession.action()
+ val lock = Any()
+ synchronized(lock) {
+ analysisSession.action()
+ }
} finally {
afterLeavingAnalysis(analysisSession, useSiteModule)
}