diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KeywordCompletion.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KeywordCompletion.kt index 9cf9f9db501..b5f1b2a548f 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KeywordCompletion.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KeywordCompletion.kt @@ -104,7 +104,7 @@ object KeywordCompletion { var keyword = keywordToken.value val nextKeyword = when { - keywordToken == SUSPEND_KEYWORD && ((position.containingFile as? KtFile)?.isScript() == true) -> null + keywordToken == SUSPEND_KEYWORD && position.getStrictParentOfType() != null -> null else -> COMPOUND_KEYWORDS[keywordToken] } var applicableAsCompound = false diff --git a/idea/idea-completion/testData/keywords/InFunctionTypePosition.kt b/idea/idea-completion/testData/keywords/InFunctionTypePosition.kt index 137d8a90429..8d28bb4803e 100644 --- a/idea/idea-completion/testData/keywords/InFunctionTypePosition.kt +++ b/idea/idea-completion/testData/keywords/InFunctionTypePosition.kt @@ -2,5 +2,5 @@ fun foo() { val test : } -// EXIST: suspend fun +// EXIST: suspend // NOTHING_ELSE diff --git a/idea/idea-completion/testData/keywords/InTypePosition.kt b/idea/idea-completion/testData/keywords/InTypePosition.kt index 399a80209df..abb77145f4d 100644 --- a/idea/idea-completion/testData/keywords/InTypePosition.kt +++ b/idea/idea-completion/testData/keywords/InTypePosition.kt @@ -1,5 +1,5 @@ val a : -// EXIST: suspend fun +// EXIST: suspend // NOTHING_ELSE diff --git a/idea/idea-completion/testData/keywords/SuspendInParameterTypePosition.kt b/idea/idea-completion/testData/keywords/SuspendInParameterTypePosition.kt new file mode 100644 index 00000000000..012da3a8ed6 --- /dev/null +++ b/idea/idea-completion/testData/keywords/SuspendInParameterTypePosition.kt @@ -0,0 +1,4 @@ +fun foo(a: ) {} + +// EXIST: suspend +// NOTHING_ELSE \ No newline at end of file diff --git a/idea/idea-completion/testData/keywords/SuspendInsideTypeArguments.kt b/idea/idea-completion/testData/keywords/SuspendInsideTypeArguments.kt index 924ccf848f3..498717586e8 100644 --- a/idea/idea-completion/testData/keywords/SuspendInsideTypeArguments.kt +++ b/idea/idea-completion/testData/keywords/SuspendInsideTypeArguments.kt @@ -5,7 +5,7 @@ class Su() { } -// EXIST: suspend fun +// EXIST: suspend /* TODO: items below are not valid here */ // EXIST: class diff --git a/idea/idea-completion/testData/keywords/SuspendInsideTypeArguments1.kt b/idea/idea-completion/testData/keywords/SuspendInsideTypeArguments1.kt index 8e58fdacd7e..26001b1e917 100644 --- a/idea/idea-completion/testData/keywords/SuspendInsideTypeArguments1.kt +++ b/idea/idea-completion/testData/keywords/SuspendInsideTypeArguments1.kt @@ -5,7 +5,7 @@ class Su() { } -// EXIST: suspend fun +// EXIST: suspend /* TODO: items below are not valid here */ // EXIST: class diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/KeywordCompletionTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/KeywordCompletionTestGenerated.java index afa7e1936f1..2dd818b8cfa 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/KeywordCompletionTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/KeywordCompletionTestGenerated.java @@ -503,6 +503,11 @@ public class KeywordCompletionTestGenerated extends AbstractKeywordCompletionTes runTest("idea/idea-completion/testData/keywords/ReturnSet.kt"); } + @TestMetadata("SuspendInParameterTypePosition.kt") + public void testSuspendInParameterTypePosition() throws Exception { + runTest("idea/idea-completion/testData/keywords/SuspendInParameterTypePosition.kt"); + } + @TestMetadata("SuspendInsideTypeArguments.kt") public void testSuspendInsideTypeArguments() throws Exception { runTest("idea/idea-completion/testData/keywords/SuspendInsideTypeArguments.kt");