Add call checker to report error more granulary if possible
This, however, works only for calls of 'synchronized' only. Thus, it does not support inline functions of any kind.
This commit is contained in:
+2
-8
@@ -1,13 +1,7 @@
|
||||
compiler/testData/compileKotlinAgainstCustomBinaries/suspensionPointInMonitor/source.kt:8:13: error: a suspension point is inside a critical section
|
||||
compiler/testData/compileKotlinAgainstCustomBinaries/suspensionPointInMonitor/source.kt:8:13: error: a suspension point at SourceKt$test$1.invokeSuspend(source.kt:10) is inside a critical section
|
||||
builder {
|
||||
^
|
||||
compiler/testData/compileKotlinAgainstCustomBinaries/suspensionPointInMonitor/source.kt:14:13: error: a suspension point is inside a critical section
|
||||
compiler/testData/compileKotlinAgainstCustomBinaries/suspensionPointInMonitor/source.kt:14:13: error: a suspension point at SourceKt$test$2.invokeSuspend(source.kt:17) is inside a critical section
|
||||
builder {
|
||||
^
|
||||
compiler/testData/compileKotlinAgainstCustomBinaries/suspensionPointInMonitor/source.kt:20:13: error: a suspension point is inside a critical section
|
||||
builder {
|
||||
^
|
||||
compiler/testData/compileKotlinAgainstCustomBinaries/suspensionPointInMonitor/source.kt:42:9: error: a suspension point is inside a critical section
|
||||
override suspend fun run() {
|
||||
^
|
||||
COMPILATION_ERROR
|
||||
|
||||
-14
@@ -5,12 +5,6 @@ private val lock = Any()
|
||||
suspend fun suspensionPoint() {}
|
||||
|
||||
fun test() {
|
||||
builder {
|
||||
synchronized(lock) {
|
||||
suspensionPoint()
|
||||
}
|
||||
}
|
||||
|
||||
builder {
|
||||
inlineMe {
|
||||
suspensionPoint()
|
||||
@@ -37,14 +31,6 @@ fun test() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
object : SuspendRunnable {
|
||||
override suspend fun run() {
|
||||
synchronized(lock) {
|
||||
suspensionPoint()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
interface SuspendRunnable {
|
||||
|
||||
Reference in New Issue
Block a user