Fix IrDelegatingConstructorCallImpl.fromSymbolDescriptor usage.

This commit is contained in:
Sergey Bogolepov
2020-10-28 16:37:28 +07:00
committed by Stanislav Erokhin
parent 6fd872f0be
commit 96d458e35b
6 changed files with 11 additions and 28 deletions
@@ -54,9 +54,7 @@ internal class CEnumCompanionGenerator(
it.body = irBuilder(irBuiltIns, it.symbol, SYNTHETIC_OFFSET, SYNTHETIC_OFFSET).irBlockBody { it.body = irBuilder(irBuiltIns, it.symbol, SYNTHETIC_OFFSET, SYNTHETIC_OFFSET).irBlockBody {
+IrDelegatingConstructorCallImpl.fromSymbolDescriptor( +IrDelegatingConstructorCallImpl.fromSymbolDescriptor(
startOffset, endOffset, context.irBuiltIns.unitType, startOffset, endOffset, context.irBuiltIns.unitType,
superConstructorSymbol, superConstructorSymbol
superConstructorSymbol.owner.typeParameters.size,
superConstructorSymbol.owner.valueParameters.size
) )
+irInstanceInitializer(symbolTable.referenceClass(companionObjectDescriptor)) +irInstanceInitializer(symbolTable.referenceClass(companionObjectDescriptor))
} }
@@ -57,10 +57,8 @@ internal class CEnumVarClassGenerator(
interopBuiltIns.cEnumVar.unsubstitutedPrimaryConstructor!! interopBuiltIns.cEnumVar.unsubstitutedPrimaryConstructor!!
) )
irConstructor.body = irBuilder(irBuiltIns, irConstructor.symbol, SYNTHETIC_OFFSET, SYNTHETIC_OFFSET).irBlockBody { irConstructor.body = irBuilder(irBuiltIns, irConstructor.symbol, SYNTHETIC_OFFSET, SYNTHETIC_OFFSET).irBlockBody {
+IrDelegatingConstructorCallImpl( +IrDelegatingConstructorCallImpl.fromSymbolDescriptor(
startOffset, endOffset, context.irBuiltIns.unitType, enumVarConstructorSymbol, startOffset, endOffset, context.irBuiltIns.unitType, enumVarConstructorSymbol
enumVarConstructorSymbol.owner.typeParameters.size,
enumVarConstructorSymbol.owner.valueParameters.size
).also { ).also {
it.putValueArgument(0, irGet(irConstructor.valueParameters[0])) it.putValueArgument(0, irGet(irConstructor.valueParameters[0]))
} }
@@ -83,9 +81,7 @@ internal class CEnumVarClassGenerator(
it.body = irBuilder(irBuiltIns, it.symbol, SYNTHETIC_OFFSET, SYNTHETIC_OFFSET).irBlockBody { it.body = irBuilder(irBuiltIns, it.symbol, SYNTHETIC_OFFSET, SYNTHETIC_OFFSET).irBlockBody {
+IrDelegatingConstructorCallImpl.fromSymbolDescriptor( +IrDelegatingConstructorCallImpl.fromSymbolDescriptor(
startOffset, endOffset, context.irBuiltIns.unitType, startOffset, endOffset, context.irBuiltIns.unitType,
superConstructorSymbol, superConstructorSymbol
superConstructorSymbol.owner.typeParameters.size,
superConstructorSymbol.owner.valueParameters.size
).also { ).also {
it.putValueArgument(0, irInt(typeSize)) it.putValueArgument(0, irInt(typeSize))
} }
@@ -64,9 +64,7 @@ internal class CStructVarClassGenerator(
irConstructor.body = irBuilder(irBuiltIns, irConstructor.symbol, SYNTHETIC_OFFSET, SYNTHETIC_OFFSET).irBlockBody { irConstructor.body = irBuilder(irBuiltIns, irConstructor.symbol, SYNTHETIC_OFFSET, SYNTHETIC_OFFSET).irBlockBody {
+IrDelegatingConstructorCallImpl.fromSymbolDescriptor( +IrDelegatingConstructorCallImpl.fromSymbolDescriptor(
startOffset, endOffset, startOffset, endOffset,
context.irBuiltIns.unitType, enumVarConstructorSymbol, context.irBuiltIns.unitType, enumVarConstructorSymbol
irConstructor.typeParameters.size,
1
).also { ).also {
it.putValueArgument(0, irGet(irConstructor.valueParameters[0])) it.putValueArgument(0, irGet(irConstructor.valueParameters[0]))
} }
@@ -48,9 +48,7 @@ internal class CStructVarCompanionGenerator(
irConstructor.body = irBuilder(irBuiltIns, irConstructor.symbol, SYNTHETIC_OFFSET, SYNTHETIC_OFFSET).irBlockBody { irConstructor.body = irBuilder(irBuiltIns, irConstructor.symbol, SYNTHETIC_OFFSET, SYNTHETIC_OFFSET).irBlockBody {
+IrDelegatingConstructorCallImpl.fromSymbolDescriptor( +IrDelegatingConstructorCallImpl.fromSymbolDescriptor(
startOffset, endOffset, context.irBuiltIns.unitType, startOffset, endOffset, context.irBuiltIns.unitType,
superConstructorSymbol, superConstructorSymbol
irConstructor.typeParameters.size,
2
).also { ).also {
it.putValueArgument(0, irLong(size)) it.putValueArgument(0, irLong(size))
it.putValueArgument(1, irInt(align)) it.putValueArgument(1, irInt(align))
@@ -179,10 +179,8 @@ internal class EnumConstructorsLowering(val context: Context) : ClassLoweringPas
val result = IrDelegatingConstructorCallImpl.fromSymbolDescriptor( val result = IrDelegatingConstructorCallImpl.fromSymbolDescriptor(
startOffset, endOffset, startOffset, endOffset,
context.irBuiltIns.unitType, context.irBuiltIns.unitType,
enumConstructorCall.symbol, enumConstructorCall.symbol
enumConstructorCall.symbol.owner.typeParameters.size, )
enumConstructorCall.symbol.owner.valueParameters.size)
assert(result.symbol.owner.valueParameters.size == 2) { assert(result.symbol.owner.valueParameters.size == 2) {
"Enum(String, Int) constructor call expected:\n${result.dump()}" "Enum(String, Int) constructor call expected:\n${result.dump()}"
} }
@@ -216,10 +214,8 @@ internal class EnumConstructorsLowering(val context: Context) : ClassLoweringPas
val result = IrDelegatingConstructorCallImpl.fromSymbolDescriptor( val result = IrDelegatingConstructorCallImpl.fromSymbolDescriptor(
startOffset, endOffset, startOffset, endOffset,
context.irBuiltIns.unitType, context.irBuiltIns.unitType,
loweredDelegatingConstructor.symbol, loweredDelegatingConstructor.symbol
loweredDelegatingConstructor.symbol.owner.typeParameters.size, )
loweredDelegatingConstructor.symbol.owner.valueParameters.size)
val firstParameter = enumClassConstructor.valueParameters[0] val firstParameter = enumClassConstructor.valueParameters[0]
result.putValueArgument(0, result.putValueArgument(0,
IrGetValueImpl(startOffset, endOffset, firstParameter.type, firstParameter.symbol)) IrGetValueImpl(startOffset, endOffset, firstParameter.type, firstParameter.symbol))
@@ -500,11 +500,8 @@ private class InteropLoweringPart1(val context: Context) : BaseInteropIrTransfor
startOffset, startOffset,
endOffset, endOffset,
context.irBuiltIns.unitType, context.irBuiltIns.unitType,
superConstructor, superConstructor
0,
superConstructor.owner.valueParameters.size
) )
+irCall(symbols.interopObjCObjectSuperInitCheck).apply { +irCall(symbols.interopObjCObjectSuperInitCheck).apply {
extensionReceiver = irGet(constructedClass.thisReceiver!!) extensionReceiver = irGet(constructedClass.thisReceiver!!)
putValueArgument(0, initCall) putValueArgument(0, initCall)