[devkit] Disable RequiresBlockingContext inspection for blocking calls inside suspend context by default

It is no longer relevant since blockingContext is obsolete

GitOrigin-RevId: fe8509a55fbe2cf3538e457adbc434855f31b5da
This commit is contained in:
Yuriy Artamonov
2025-07-18 14:35:52 +00:00
committed by intellij-monorepo-bot
parent 42b725c339
commit af52f954d6
3 changed files with 19 additions and 6 deletions
@@ -5,6 +5,7 @@ import com.intellij.openapi.module.Module
import com.intellij.openapi.roots.ContentEntry
import com.intellij.openapi.roots.LanguageLevelModuleExtension
import com.intellij.openapi.roots.ModifiableRootModel
import com.intellij.openapi.util.registry.RegistryManager
import com.intellij.pom.java.LanguageLevel
import com.intellij.testFramework.LightProjectDescriptor
import com.intellij.testFramework.fixtures.DefaultLightProjectDescriptor
@@ -269,6 +270,9 @@ class ForbiddenInSuspectContextMethodInspectionTest : KtBlockingContextInspectio
@Test
fun `custom marked function`() {
RegistryManager.getInstance().get("devkit.inspections.forbidden.method.in.suspend.context")
.setValue(true, testRootDisposable)
myFixture.configureByText("file.kt", """
import com.intellij.util.concurrency.annotations.*
@@ -725,6 +729,9 @@ class ForbiddenInSuspectContextMethodInspectionTest : KtBlockingContextInspectio
@Test
fun `call as parameter should be checked`() {
RegistryManager.getInstance().get("devkit.inspections.forbidden.method.in.suspend.context")
.setValue(true, testRootDisposable)
myFixture.configureByText("file.kt", """
import com.intellij.util.concurrency.annotations.*
@@ -94,6 +94,9 @@
key="inspection.remote.dev.rpc.interface.does.not.extend.remote.api.name"/>
<iconProvider implementation="org.jetbrains.idea.devkit.kotlin.driver.RemoteIconProvider" order="first"/>
<registryKey key="devkit.inspections.forbidden.method.in.suspend.context" defaultValue="false"
description="Enables checks for RequiresBlockingContext in suspend contexts"/>
</extensions>
<extensions defaultExtensionNs="DevKit.lang">
@@ -4,6 +4,7 @@ package org.jetbrains.idea.devkit.kotlin.inspections
import com.intellij.codeInspection.*
import com.intellij.openapi.editor.Editor
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.registry.Registry
import com.intellij.psi.*
import com.intellij.util.containers.toArray
import org.jetbrains.idea.devkit.kotlin.DevKitKotlinBundle
@@ -131,12 +132,14 @@ internal class ForbiddenInSuspectContextMethodInspection : LocalInspectionTool()
)
}
else -> {
holder.registerProblem(
extractElementToHighlight(expression),
DevKitKotlinBundle.message("inspections.forbidden.method.in.suspend.context.text", calledSymbol.name.asString()),
ProblemHighlightType.GENERIC_ERROR_OR_WARNING,
*generalFixes()
)
if (Registry.`is`("devkit.inspections.forbidden.method.in.suspend.context")) {
holder.registerProblem(
extractElementToHighlight(expression),
DevKitKotlinBundle.message("inspections.forbidden.method.in.suspend.context.text", calledSymbol.name.asString()),
ProblemHighlightType.GENERIC_ERROR_OR_WARNING,
*generalFixes()
)
}
}
}
}