From c023831a00bc00c9e3d82a6337adc336133b2c7a Mon Sep 17 00:00:00 2001 From: Ilmir Usmanov Date: Thu, 11 Jan 2018 16:55:44 +0300 Subject: [PATCH] Ignore open modifier on top-level suspend function when generating light classes #KT-21642: Fixed --- .../src/org/jetbrains/kotlin/codegen/FunctionCodegen.java | 1 + idea/testData/highlighter/TopLevelOpenSuspendFun.kt | 1 + .../kotlin/idea/highlighter/HighlightingTestGenerated.java | 6 ++++++ 3 files changed, 8 insertions(+) create mode 100644 idea/testData/highlighter/TopLevelOpenSuspendFun.kt diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java index 47b2a07eb63..022e46f9e5f 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/FunctionCodegen.java @@ -242,6 +242,7 @@ public class FunctionCodegen { functionDescriptor.isSuspend() && functionDescriptor.getModality() != Modality.ABSTRACT && isOverridable(functionDescriptor) && !isInterface(functionDescriptor.getContainingDeclaration()) && + !(functionDescriptor.getContainingDeclaration() instanceof PackageFragmentDescriptor) && origin.getOriginKind() != JvmDeclarationOriginKind.CLASS_MEMBER_DELEGATION_TO_DEFAULT_IMPL; if (isOpenSuspendInClass) { diff --git a/idea/testData/highlighter/TopLevelOpenSuspendFun.kt b/idea/testData/highlighter/TopLevelOpenSuspendFun.kt new file mode 100644 index 00000000000..cc9e9b902e4 --- /dev/null +++ b/idea/testData/highlighter/TopLevelOpenSuspendFun.kt @@ -0,0 +1 @@ +open suspend fun f() {} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightingTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightingTestGenerated.java index a884d2a232a..8595d7fdcfa 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightingTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightingTestGenerated.java @@ -121,6 +121,12 @@ public class HighlightingTestGenerated extends AbstractHighlightingTest { doTest(fileName); } + @TestMetadata("TopLevelOpenSuspendFun.kt") + public void testTopLevelOpenSuspendFun() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/highlighter/TopLevelOpenSuspendFun.kt"); + doTest(fileName); + } + @TestMetadata("TypeAlias.kt") public void testTypeAlias() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/highlighter/TypeAlias.kt");