From 59d89a1ae391d2837f848f44ec49fec6323758b4 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Tue, 25 Apr 2017 13:09:05 +0300 Subject: [PATCH] Generate private suspend function in JVM as package-private It helps to simplify implementation of generating state machines into the named functions' bodies but of course has some flaws: 1. They may be called from the same package in Java 2. It may lead to problems when declaring clashing descriptor in an inheritor This change must be reverted at some moment, or these flaws should be fixed in some other way #KT-17585 In Progress #KT-17584 Open --- .../backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java index 829f0beb956..95737704b69 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java @@ -395,6 +395,10 @@ public class AsmUtil { return null; } + if (memberDescriptor instanceof FunctionDescriptor && ((FunctionDescriptor) memberDescriptor).isSuspend()) { + return NO_FLAG_PACKAGE_PRIVATE; + } + // the following code is only for PRIVATE visibility of member if (memberDescriptor instanceof ConstructorDescriptor) { if (isEnumEntry(containingDeclaration)) {