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
@@ -139,9 +139,7 @@ class InlineAnalyzerExtension(private val reasonableInlineRules: Iterable<Reason
if (checkInlinableParameter(descriptor, parameter, functionDescriptor, trace)) return
}
if (InlineUtil.containsReifiedTypeParameters(functionDescriptor) ||
functionDescriptor.isInlineOnlyOrReifiable() ||
functionDescriptor.isHeader) return
if (functionDescriptor.isInlineOnlyOrReifiable() || functionDescriptor.isHeader) return
if (reasonableInlineRules.any { it.isInlineReasonable(functionDescriptor, function, trace.bindingContext) }) return