diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/KotlinCodeBlockModificationListener.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/KotlinCodeBlockModificationListener.kt index b03d0207b13..897cccaed63 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/KotlinCodeBlockModificationListener.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/KotlinCodeBlockModificationListener.kt @@ -152,7 +152,8 @@ class KotlinCodeBlockModificationListener( is KtScriptInitializer -> { return (blockDeclaration.body as? KtCallExpression) - ?.lambdaArguments?.last() + ?.lambdaArguments + ?.lastOrNull() ?.getLambdaExpression() ?.takeIf { it.isAncestor(element) } } diff --git a/idea/testData/codeInsight/outOfBlock/scriptTopLevelCallExpression.kts b/idea/testData/codeInsight/outOfBlock/scriptTopLevelCallExpression.kts new file mode 100644 index 00000000000..510f3b10235 --- /dev/null +++ b/idea/testData/codeInsight/outOfBlock/scriptTopLevelCallExpression.kts @@ -0,0 +1,7 @@ +// TRUE + +fun foo() = 1 + +foo() + +// SKIP_ANALYZE_CHECK diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/OutOfBlockModificationTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/OutOfBlockModificationTestGenerated.java index 666918aa007..2add3581a5e 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/OutOfBlockModificationTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/OutOfBlockModificationTestGenerated.java @@ -224,6 +224,11 @@ public class OutOfBlockModificationTestGenerated extends AbstractOutOfBlockModif runTest("idea/testData/codeInsight/outOfBlock/scriptInLambdaExpression.kts"); } + @TestMetadata("scriptTopLevelCallExpression.kts") + public void testScriptTopLevelCallExpression() throws Exception { + runTest("idea/testData/codeInsight/outOfBlock/scriptTopLevelCallExpression.kts"); + } + @TestMetadata("scriptTopLevelExpression.kts") public void testScriptTopLevelExpression() throws Exception { runTest("idea/testData/codeInsight/outOfBlock/scriptTopLevelExpression.kts");