From af52f954d60400c54bfd312b13f3d161b22e22ea Mon Sep 17 00:00:00 2001 From: Yuriy Artamonov Date: Fri, 18 Jul 2025 14:51:10 +0200 Subject: [PATCH] [devkit] Disable RequiresBlockingContext inspection for blocking calls inside suspend context by default It is no longer relevant since blockingContext is obsolete GitOrigin-RevId: fe8509a55fbe2cf3538e457adbc434855f31b5da --- ...rbiddenInSuspectContextMethodInspectionTest.kt | 7 +++++++ .../resources/intellij.kotlin.devkit.xml | 3 +++ .../ForbiddenInSuspectContextMethodInspection.kt | 15 +++++++++------ 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/plugins/devkit/devkit-kotlin-tests/testSrc/org/jetbrains/idea/devkit/kotlin/inspections/ForbiddenInSuspectContextMethodInspectionTest.kt b/plugins/devkit/devkit-kotlin-tests/testSrc/org/jetbrains/idea/devkit/kotlin/inspections/ForbiddenInSuspectContextMethodInspectionTest.kt index 411938d35845..c8e5d756fe78 100644 --- a/plugins/devkit/devkit-kotlin-tests/testSrc/org/jetbrains/idea/devkit/kotlin/inspections/ForbiddenInSuspectContextMethodInspectionTest.kt +++ b/plugins/devkit/devkit-kotlin-tests/testSrc/org/jetbrains/idea/devkit/kotlin/inspections/ForbiddenInSuspectContextMethodInspectionTest.kt @@ -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.* diff --git a/plugins/devkit/intellij.kotlin.devkit/resources/intellij.kotlin.devkit.xml b/plugins/devkit/intellij.kotlin.devkit/resources/intellij.kotlin.devkit.xml index 6089376a55e1..8668b930b900 100644 --- a/plugins/devkit/intellij.kotlin.devkit/resources/intellij.kotlin.devkit.xml +++ b/plugins/devkit/intellij.kotlin.devkit/resources/intellij.kotlin.devkit.xml @@ -94,6 +94,9 @@ key="inspection.remote.dev.rpc.interface.does.not.extend.remote.api.name"/> + + diff --git a/plugins/devkit/intellij.kotlin.devkit/src/inspections/ForbiddenInSuspectContextMethodInspection.kt b/plugins/devkit/intellij.kotlin.devkit/src/inspections/ForbiddenInSuspectContextMethodInspection.kt index 3d990782dec7..76361868290e 100644 --- a/plugins/devkit/intellij.kotlin.devkit/src/inspections/ForbiddenInSuspectContextMethodInspection.kt +++ b/plugins/devkit/intellij.kotlin.devkit/src/inspections/ForbiddenInSuspectContextMethodInspection.kt @@ -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() + ) + } } } }