Add missing overrides used for common inliner

This commit is contained in:
Anton Bannykh
2019-06-25 14:06:01 +03:00
parent d052f198e2
commit d265be0b48
2 changed files with 8 additions and 4 deletions
@@ -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()
@@ -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