[IR] IrSimpleFunction.isFakeOverride(843fb88459) and IrField.isFakeOverride(edaa42ea46)

This commit is contained in:
Vasily Levchenko
2019-11-04 19:14:56 +01:00
parent 39ebffba79
commit c88ca6befc
16 changed files with 46 additions and 22 deletions
@@ -72,7 +72,8 @@ internal val Context.getBoxFunction: (IrClass) -> IrSimpleFunction by Context.la
isExternal = false, isExternal = false,
isTailrec = false, isTailrec = false,
isSuspend = false, isSuspend = false,
isExpect = false isExpect = false,
isFakeOverride = false
).also { function -> ).also { function ->
function.valueParameters.add(WrappedValueParameterDescriptor().let { function.valueParameters.add(WrappedValueParameterDescriptor().let {
IrValueParameterImpl( IrValueParameterImpl(
@@ -124,7 +125,8 @@ internal val Context.getUnboxFunction: (IrClass) -> IrSimpleFunction by Context.
isExternal = false, isExternal = false,
isTailrec = false, isTailrec = false,
isSuspend = false, isSuspend = false,
isExpect = false isExpect = false,
isFakeOverride = false
).also { function -> ).also { function ->
function.valueParameters.add(WrappedValueParameterDescriptor().let { function.valueParameters.add(WrappedValueParameterDescriptor().let {
IrValueParameterImpl( IrValueParameterImpl(
@@ -141,7 +141,8 @@ internal class SpecialDeclarationsFactory(val context: Context) : KotlinMangler
isTailrec = false, isTailrec = false,
isSuspend = function.isSuspend, isSuspend = function.isSuspend,
returnType = returnType, returnType = returnType,
isExpect = false isExpect = false,
isFakeOverride = false
).apply { ).apply {
descriptor.bind(this) descriptor.bind(this)
parent = function.parent parent = function.parent
@@ -40,7 +40,8 @@ internal fun makeEntryPoint(context: Context): IrFunction {
isExternal = false, isExternal = false,
isTailrec = false, isTailrec = false,
isSuspend = false, isSuspend = false,
isExpect = false isExpect = false,
isFakeOverride = false
).also { function -> ).also { function ->
function.valueParameters.add(WrappedValueParameterDescriptor().let { function.valueParameters.add(WrappedValueParameterDescriptor().let {
IrValueParameterImpl( IrValueParameterImpl(
@@ -76,7 +76,8 @@ internal class EnumSpecialDeclarationsFactory(val context: Context) {
Visibilities.PRIVATE, Visibilities.PRIVATE,
isFinal = true, isFinal = true,
isExternal = false, isExternal = false,
isStatic = false isStatic = false,
isFakeOverride = false
).apply { ).apply {
it.bind(this) it.bind(this)
parent = implObject parent = implObject
@@ -96,7 +97,8 @@ internal class EnumSpecialDeclarationsFactory(val context: Context) {
isExternal = false, isExternal = false,
isTailrec = false, isTailrec = false,
isSuspend = false, isSuspend = false,
isExpect = false isExpect = false,
isFakeOverride = false
).apply { ).apply {
it.bind(this) it.bind(this)
parent = implObject parent = implObject
@@ -571,7 +571,8 @@ private fun KotlinStubs.createFakeKotlinExternalFunction(
isExternal = true, isExternal = true,
isTailrec = false, isTailrec = false,
isSuspend = false, isSuspend = false,
isExpect = false isExpect = false,
isFakeOverride = false
) )
bridgeDescriptor.bind(bridge) bridgeDescriptor.bind(bridge)
@@ -1261,7 +1262,8 @@ private class ObjCBlockPointerValuePassing(
overriddenInvokeMethod.name, overriddenInvokeMethod.name,
Visibilities.PUBLIC, Modality.FINAL, Visibilities.PUBLIC, Modality.FINAL,
returnType = functionType.arguments.last().typeOrNull!!, returnType = functionType.arguments.last().typeOrNull!!,
isInline = false, isExternal = false, isTailrec = false, isSuspend = false, isExpect = false isInline = false, isExternal = false, isTailrec = false, isSuspend = false, isExpect = false,
isFakeOverride = false
) )
invokeMethodDescriptor.bind(invokeMethod) invokeMethodDescriptor.bind(invokeMethod)
invokeMethod.overriddenSymbols += overriddenInvokeMethod.symbol invokeMethod.overriddenSymbols += overriddenInvokeMethod.symbol
@@ -116,7 +116,8 @@ private fun createKotlinBridge(
isExternal = isExternal, isExternal = isExternal,
isTailrec = false, isTailrec = false,
isSuspend = false, isSuspend = false,
isExpect = false isExpect = false,
isFakeOverride = false
) )
bridgeDescriptor.bind(bridge) bridgeDescriptor.bind(bridge)
if (isExternal) { if (isExternal) {
@@ -394,7 +394,8 @@ private class InlineClassTransformer(private val context: Context) : IrBuildingT
Visibilities.PRIVATE, Visibilities.PRIVATE,
isFinal = true, isFinal = true,
isExternal = false, isExternal = false,
isStatic = false isStatic = false,
isFakeOverride = false
) )
irField.parent = declaration irField.parent = declaration
@@ -502,7 +503,8 @@ private val Context.getLoweredInlineClassConstructor: (IrConstructor) -> IrSimpl
isTailrec = false, isTailrec = false,
isSuspend = false, isSuspend = false,
returnType = irConstructor.returnType, returnType = irConstructor.returnType,
isExpect = false isExpect = false,
isFakeOverride = false
).apply { ).apply {
descriptor.bind(this) descriptor.bind(this)
parent = irConstructor.parent parent = irConstructor.parent
@@ -83,7 +83,8 @@ internal class WorkersBridgesBuilding(val context: Context) : DeclarationContain
isTailrec = false, isTailrec = false,
isSuspend = false, isSuspend = false,
returnType = context.irBuiltIns.anyNType, returnType = context.irBuiltIns.anyNType,
isExpect = false isExpect = false,
isFakeOverride = false
).apply { ).apply {
it.bind(this) it.bind(this)
} }
@@ -309,7 +309,8 @@ internal class CallableReferenceLowering(val context: Context): FileLoweringPass
isExternal = false, isExternal = false,
isTailrec = false, isTailrec = false,
isSuspend = superFunction.isSuspend, isSuspend = superFunction.isSuspend,
isExpect = false isExpect = false,
isFakeOverride = false
).apply { ).apply {
it.bind(this) it.bind(this)
val function = this val function = this
@@ -101,7 +101,8 @@ internal class PropertyDelegationLowering(val context: Context) : FileLoweringPa
Visibilities.PRIVATE, Visibilities.PRIVATE,
isFinal = true, isFinal = true,
isExternal = false, isExternal = false,
isStatic = true isStatic = true,
isFakeOverride = false
).apply { ).apply {
it.bind(this) it.bind(this)
parent = irFile parent = irFile
@@ -187,6 +187,7 @@ internal class FinallyBlocksLowering(val context: Context): FileLoweringPass, Ir
false, false,
false, false,
false, false,
false,
false) false)
) )
return descriptor return descriptor
@@ -108,7 +108,8 @@ internal class InitializersLowering(val context: CommonBackendContext) : ClassLo
isSuspend = false, isSuspend = false,
isExternal = false, isExternal = false,
isTailrec = false, isTailrec = false,
isExpect = false isExpect = false,
isFakeOverride = false
).apply { ).apply {
it.bind(this) it.bind(this)
parent = irClass parent = irClass
@@ -234,7 +234,8 @@ internal class InteropLoweringPart1(val context: Context) : BaseInteropIrTransfo
isExternal = false, isExternal = false,
isTailrec = false, isTailrec = false,
isSuspend = false, isSuspend = false,
isExpect = false isExpect = false,
isFakeOverride = false
).also { result -> ).also { result ->
resultDescriptor.bind(result) resultDescriptor.bind(result)
result.parent = irClass result.parent = irClass
@@ -376,7 +377,8 @@ internal class InteropLoweringPart1(val context: Context) : BaseInteropIrTransfo
isExternal = false, isExternal = false,
isTailrec = false, isTailrec = false,
isSuspend = false, isSuspend = false,
isExpect = false isExpect = false,
isFakeOverride = false
).apply { ).apply {
it.bind(this) it.bind(this)
} }
@@ -488,7 +488,8 @@ internal class NativeSuspendFunctionsLowering(ctx: Context): AbstractSuspendFunc
isExternal = false, isExternal = false,
isTailrec = false, isTailrec = false,
isSuspend = false, isSuspend = false,
isExpect = false isExpect = false,
isFakeOverride = false
).apply { ).apply {
it.bind(this) it.bind(this)
} }
@@ -507,7 +508,8 @@ internal class NativeSuspendFunctionsLowering(ctx: Context): AbstractSuspendFunc
isExternal = false, isExternal = false,
isTailrec = false, isTailrec = false,
isSuspend = false, isSuspend = false,
isExpect = false isExpect = false,
isFakeOverride = false
).apply { ).apply {
it.bind(this) it.bind(this)
} }
@@ -350,7 +350,8 @@ internal class TestProcessor (val context: Context) {
isExternal = false, isExternal = false,
isTailrec = false, isTailrec = false,
isSuspend = false, isSuspend = false,
isExpect = false isExpect = false,
isFakeOverride = false
).apply { ).apply {
descriptor.bind(this) descriptor.bind(this)
parent = owner parent = owner
@@ -387,7 +388,8 @@ internal class TestProcessor (val context: Context) {
isExternal = false, isExternal = false,
isTailrec = false, isTailrec = false,
isSuspend = false, isSuspend = false,
isExpect = false isExpect = false,
isFakeOverride = false
).apply { ).apply {
descriptor.bind(this) descriptor.bind(this)
parent = owner parent = owner
@@ -73,7 +73,8 @@ internal fun IrFile.addTopLevelInitializer(expression: IrExpression, context: Ko
Visibilities.PRIVATE, Visibilities.PRIVATE,
isFinal = true, isFinal = true,
isExternal = false, isExternal = false,
isStatic = true isStatic = true,
isFakeOverride = false
).apply { ).apply {
descriptor.bind(this) descriptor.bind(this)
@@ -367,6 +368,7 @@ fun createField(
Visibilities.PRIVATE, Visibilities.PRIVATE,
!isMutable, !isMutable,
false, false,
false,
false false
).apply { ).apply {
it.bind(this) it.bind(this)