Ignore open modifier on top-level suspend function when generating light classes

#KT-21642: Fixed
This commit is contained in:
Ilmir Usmanov
2018-01-11 16:55:44 +03:00
parent 5da156e93c
commit c023831a00
3 changed files with 8 additions and 0 deletions
@@ -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) {
+1
View File
@@ -0,0 +1 @@
<error descr="[WRONG_MODIFIER_TARGET] Modifier 'open' is not applicable to 'top level function'"><info descr="null">open</info></error> <warning descr="[EXPERIMENTAL_FEATURE_WARNING] The feature \"coroutines\" is experimental (see: https://kotlinlang.org/docs/diagnostics/experimental-coroutines)"><info descr="null">suspend</info></warning> fun <info descr="null">f</info>() {}
@@ -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");