From d265be0b485d3ec6d0978506a0dedf4d5db9404a Mon Sep 17 00:00:00 2001 From: Anton Bannykh Date: Tue, 25 Jun 2019 14:06:01 +0300 Subject: [PATCH] Add missing overrides used for common inliner --- .../src/org/jetbrains/kotlin/backend/konan/ir/Ir.kt | 10 +++++++--- .../kotlin/backend/konan/lower/FunctionInlining.kt | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/Ir.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/Ir.kt index 25fca1e401e..9f3ff636d7b 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/Ir.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/Ir.kt @@ -328,7 +328,7 @@ internal class KonanSymbols(context: Context, private val symbolTable: SymbolTab override val getContinuation = internalFunction("getContinuation") - val returnIfSuspended = internalFunction("returnIfSuspended") + override val returnIfSuspended = internalFunction("returnIfSuspended") val coroutineLaunchpad = internalFunction("coroutineLaunchpad") @@ -336,6 +336,10 @@ internal class KonanSymbols(context: Context, private val symbolTable: SymbolTab val konanCoroutineContextGetter = internalFunction("getCoroutineContext") + override val suspendCoroutineUninterceptedOrReturn = konanSuspendCoroutineUninterceptedOrReturn + + override val coroutineGetContext = konanCoroutineContextGetter + private val coroutinesIntrinsicsPackage = context.builtIns.builtInsModule.getPackage( context.config.configuration.languageVersionSettings.coroutinesIntrinsicsPackageFqName()).memberScope @@ -345,10 +349,10 @@ internal class KonanSymbols(context: Context, private val symbolTable: SymbolTab val continuationClassDescriptor = coroutinesPackage .getContributedClassifier(Name.identifier("Continuation"), NoLookupLocation.FROM_BACKEND) as ClassDescriptor - val coroutineContextGetter = coroutinesPackage + override val coroutineContextGetter = symbolTable.referenceSimpleFunction(coroutinesPackage .getContributedVariables(Name.identifier("coroutineContext"), NoLookupLocation.FROM_BACKEND) .single() - .getter!! + .getter!!) override val coroutineImpl get() = TODO() diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt index 963926e2369..f49c88dbcf5 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt @@ -70,7 +70,7 @@ internal class FunctionInlining(val context: Context) : IrElementTransformerVoid descriptor.isBuiltInSuspendCoroutineUninterceptedOrReturn(languageVersionSettings) -> context.ir.symbols.konanSuspendCoroutineUninterceptedOrReturn.owner - descriptor == context.ir.symbols.coroutineContextGetter -> + descriptor == context.ir.symbols.coroutineContextGetter.owner.descriptor -> context.ir.symbols.konanCoroutineContextGetter.owner else -> (symbol.owner as? IrSimpleFunction)?.resolveFakeOverride() ?: symbol.owner