Fix signature mapping for default suspend function from interface

Use jvm suspend function view in function codegen.
Also use SUSPEND_FUNCTION_TO_JVM_VIEW slice if the value exists
for the given key

 #KT-15552 Fixed
This commit is contained in:
Denis Zharkov
2017-01-17 11:23:01 +03:00
parent fae9cc1c63
commit d0d617b44e
14 changed files with 138 additions and 13 deletions
@@ -212,6 +212,10 @@ public class SignaturesPropagationData {
}
for (FunctionDescriptor candidate : superFunctionCandidates) {
// Skip suspend super functions, because we doesn't process them correctly by now
// Moreover, we fail with exception sometimes
// TODO: remove this continue when KT-15747 is fixed
if (candidate.isSuspend()) continue;
Method candidateSignature = SIGNATURE_MAPPER.mapToJvmMethodSignature(candidate);
if (KotlinToJvmSignatureMapperKt.erasedSignaturesEqualIgnoringReturnTypes(autoSignature, candidateSignature)) {
superFunctions.add(candidate);