Treat inline suspend functions as inline-only

Now their bodies don't have real state machines, thus they cannot
be called correctly from Java

 #KT-17585 In progress
 #KT-16603 In progress
This commit is contained in:
Denis Zharkov
2017-05-04 15:01:31 +03:00
parent ba200f5de1
commit 7c6a15ddfe
9 changed files with 18 additions and 16 deletions
@@ -19,7 +19,7 @@ package kotlin.reflect.jvm.internal
import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.descriptors.Visibilities
import org.jetbrains.kotlin.descriptors.annotations.isInlineOnlyOrReifiable
import org.jetbrains.kotlin.descriptors.annotations.isEffectivelyInlineOnly
import java.lang.reflect.Constructor
import java.lang.reflect.Member
import java.lang.reflect.Method
@@ -60,7 +60,7 @@ internal class KFunctionImpl private constructor(
private fun isPrivateInBytecode(): Boolean =
Visibilities.isPrivate(descriptor.visibility) ||
descriptor.isInlineOnlyOrReifiable()
descriptor.isEffectivelyInlineOnly()
private fun isDeclared(): Boolean = isPrivateInBytecode()