diff --git a/jvm/jvm-analysis-api/src/com/intellij/codeInspection/blockingCallsDetection/BlockingMethodChecker.java b/jvm/jvm-analysis-api/src/com/intellij/codeInspection/blockingCallsDetection/BlockingMethodChecker.java index 3a827530b20d..4d8762c89675 100644 --- a/jvm/jvm-analysis-api/src/com/intellij/codeInspection/blockingCallsDetection/BlockingMethodChecker.java +++ b/jvm/jvm-analysis-api/src/com/intellij/codeInspection/blockingCallsDetection/BlockingMethodChecker.java @@ -1,10 +1,11 @@ // Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.codeInspection.blockingCallsDetection; +import com.intellij.codeInspection.LocalQuickFix; import com.intellij.openapi.extensions.ExtensionPointName; +import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.psi.PsiMethod; -import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; /** @@ -12,7 +13,6 @@ import org.jetbrains.annotations.NotNull; *

* Frameworks could implement this EP to provide such information based on framework-specific heuristics or markers. */ -@ApiStatus.Experimental public interface BlockingMethodChecker { ExtensionPointName EP_NAME = ExtensionPointName.create("com.intellij.codeInsight.blockingMethodChecker"); @@ -22,4 +22,13 @@ public interface BlockingMethodChecker { boolean isApplicable(@NotNull PsiFile file); boolean isMethodBlocking(@NotNull PsiMethod method); + + /** + * @param element PsiElement (e.g. method call or reference) which is located in "non-blocking" code fragment + * @return empty array or null if cannot provide any fixes, non-empty array of quick fixes otherwise + */ + @NotNull + default LocalQuickFix[] getQuickFixesFor(@NotNull PsiElement element) { + return LocalQuickFix.EMPTY_ARRAY; + } } diff --git a/jvm/jvm-analysis-api/src/com/intellij/codeInspection/blockingCallsDetection/NonBlockingContextChecker.java b/jvm/jvm-analysis-api/src/com/intellij/codeInspection/blockingCallsDetection/NonBlockingContextChecker.java index f7b10ed6f24a..7299b05d6625 100644 --- a/jvm/jvm-analysis-api/src/com/intellij/codeInspection/blockingCallsDetection/NonBlockingContextChecker.java +++ b/jvm/jvm-analysis-api/src/com/intellij/codeInspection/blockingCallsDetection/NonBlockingContextChecker.java @@ -12,7 +12,6 @@ import org.jetbrains.annotations.NotNull; *

* Frameworks could implement this EP to provide information that in some contexts the execution thread should not be blocked. */ -@ApiStatus.Experimental public interface NonBlockingContextChecker { ExtensionPointName EP_NAME = ExtensionPointName.create("com.intellij.codeInsight.nonBlockingContextChecker");