From cea879cbd5d937d51493e70b6bf007d6279df58a Mon Sep 17 00:00:00 2001 From: Toshiaki Kameyama Date: Thu, 21 May 2020 10:56:42 +0900 Subject: [PATCH] "Make containing function suspend" quickfix: don't suggest for anonymous function #KT-38948 Fixed --- .../kotlin/idea/quickfix/AddSuspendModifierFix.kt | 3 ++- .../quickfix/modifiers/suspend/anonymousFunction.kt | 10 ++++++++++ .../kotlin/idea/quickfix/QuickFixTestGenerated.java | 5 +++++ 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 idea/testData/quickfix/modifiers/suspend/anonymousFunction.kt diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/AddSuspendModifierFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/AddSuspendModifierFix.kt index 2c2084911cf..5f5e12be8cc 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/AddSuspendModifierFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/AddSuspendModifierFix.kt @@ -43,8 +43,9 @@ class AddSuspendModifierFix( override fun createAction(diagnostic: Diagnostic): IntentionAction? { val element = diagnostic.psiElement val function = (element as? KtElement)?.containingDeclarationForPseudocode as? KtNamedFunction ?: return null + val functionName = function.name ?: return null - return AddSuspendModifierFix(function, function.name) + return AddSuspendModifierFix(function, functionName) } } diff --git a/idea/testData/quickfix/modifiers/suspend/anonymousFunction.kt b/idea/testData/quickfix/modifiers/suspend/anonymousFunction.kt new file mode 100644 index 00000000000..42b1551f9d3 --- /dev/null +++ b/idea/testData/quickfix/modifiers/suspend/anonymousFunction.kt @@ -0,0 +1,10 @@ +// "Make containing function suspend" "false" +// ACTION: Convert to run +// ACTION: Convert to with +// DISABLE-ERRORS +class A { + suspend fun foo() {} +} +val p = fun(a: A) { + a.foo() +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java index 12413292721..463cce477bb 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java @@ -9470,6 +9470,11 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/quickfix/modifiers/suspend"), Pattern.compile("^([\\w\\-_]+)\\.kt$"), null, true); } + @TestMetadata("anonymousFunction.kt") + public void testAnonymousFunction() throws Exception { + runTest("idea/testData/quickfix/modifiers/suspend/anonymousFunction.kt"); + } + @TestMetadata("base.kt") public void testBase() throws Exception { runTest("idea/testData/quickfix/modifiers/suspend/base.kt");