Add missing overrides used for common inliner
This commit is contained in:
+7
-3
@@ -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()
|
||||
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user