Fix IrDelegatingConstructorCallImpl.fromSymbolDescriptor usage.
This commit is contained in:
committed by
Stanislav Erokhin
parent
6fd872f0be
commit
96d458e35b
+1
-3
@@ -54,9 +54,7 @@ internal class CEnumCompanionGenerator(
|
||||
it.body = irBuilder(irBuiltIns, it.symbol, SYNTHETIC_OFFSET, SYNTHETIC_OFFSET).irBlockBody {
|
||||
+IrDelegatingConstructorCallImpl.fromSymbolDescriptor(
|
||||
startOffset, endOffset, context.irBuiltIns.unitType,
|
||||
superConstructorSymbol,
|
||||
superConstructorSymbol.owner.typeParameters.size,
|
||||
superConstructorSymbol.owner.valueParameters.size
|
||||
superConstructorSymbol
|
||||
)
|
||||
+irInstanceInitializer(symbolTable.referenceClass(companionObjectDescriptor))
|
||||
}
|
||||
|
||||
+3
-7
@@ -57,10 +57,8 @@ internal class CEnumVarClassGenerator(
|
||||
interopBuiltIns.cEnumVar.unsubstitutedPrimaryConstructor!!
|
||||
)
|
||||
irConstructor.body = irBuilder(irBuiltIns, irConstructor.symbol, SYNTHETIC_OFFSET, SYNTHETIC_OFFSET).irBlockBody {
|
||||
+IrDelegatingConstructorCallImpl(
|
||||
startOffset, endOffset, context.irBuiltIns.unitType, enumVarConstructorSymbol,
|
||||
enumVarConstructorSymbol.owner.typeParameters.size,
|
||||
enumVarConstructorSymbol.owner.valueParameters.size
|
||||
+IrDelegatingConstructorCallImpl.fromSymbolDescriptor(
|
||||
startOffset, endOffset, context.irBuiltIns.unitType, enumVarConstructorSymbol
|
||||
).also {
|
||||
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 {
|
||||
+IrDelegatingConstructorCallImpl.fromSymbolDescriptor(
|
||||
startOffset, endOffset, context.irBuiltIns.unitType,
|
||||
superConstructorSymbol,
|
||||
superConstructorSymbol.owner.typeParameters.size,
|
||||
superConstructorSymbol.owner.valueParameters.size
|
||||
superConstructorSymbol
|
||||
).also {
|
||||
it.putValueArgument(0, irInt(typeSize))
|
||||
}
|
||||
|
||||
+1
-3
@@ -64,9 +64,7 @@ internal class CStructVarClassGenerator(
|
||||
irConstructor.body = irBuilder(irBuiltIns, irConstructor.symbol, SYNTHETIC_OFFSET, SYNTHETIC_OFFSET).irBlockBody {
|
||||
+IrDelegatingConstructorCallImpl.fromSymbolDescriptor(
|
||||
startOffset, endOffset,
|
||||
context.irBuiltIns.unitType, enumVarConstructorSymbol,
|
||||
irConstructor.typeParameters.size,
|
||||
1
|
||||
context.irBuiltIns.unitType, enumVarConstructorSymbol
|
||||
).also {
|
||||
it.putValueArgument(0, irGet(irConstructor.valueParameters[0]))
|
||||
}
|
||||
|
||||
+1
-3
@@ -48,9 +48,7 @@ internal class CStructVarCompanionGenerator(
|
||||
irConstructor.body = irBuilder(irBuiltIns, irConstructor.symbol, SYNTHETIC_OFFSET, SYNTHETIC_OFFSET).irBlockBody {
|
||||
+IrDelegatingConstructorCallImpl.fromSymbolDescriptor(
|
||||
startOffset, endOffset, context.irBuiltIns.unitType,
|
||||
superConstructorSymbol,
|
||||
irConstructor.typeParameters.size,
|
||||
2
|
||||
superConstructorSymbol
|
||||
).also {
|
||||
it.putValueArgument(0, irLong(size))
|
||||
it.putValueArgument(1, irInt(align))
|
||||
|
||||
+4
-8
@@ -179,10 +179,8 @@ internal class EnumConstructorsLowering(val context: Context) : ClassLoweringPas
|
||||
val result = IrDelegatingConstructorCallImpl.fromSymbolDescriptor(
|
||||
startOffset, endOffset,
|
||||
context.irBuiltIns.unitType,
|
||||
enumConstructorCall.symbol,
|
||||
enumConstructorCall.symbol.owner.typeParameters.size,
|
||||
enumConstructorCall.symbol.owner.valueParameters.size)
|
||||
|
||||
enumConstructorCall.symbol
|
||||
)
|
||||
assert(result.symbol.owner.valueParameters.size == 2) {
|
||||
"Enum(String, Int) constructor call expected:\n${result.dump()}"
|
||||
}
|
||||
@@ -216,10 +214,8 @@ internal class EnumConstructorsLowering(val context: Context) : ClassLoweringPas
|
||||
val result = IrDelegatingConstructorCallImpl.fromSymbolDescriptor(
|
||||
startOffset, endOffset,
|
||||
context.irBuiltIns.unitType,
|
||||
loweredDelegatingConstructor.symbol,
|
||||
loweredDelegatingConstructor.symbol.owner.typeParameters.size,
|
||||
loweredDelegatingConstructor.symbol.owner.valueParameters.size)
|
||||
|
||||
loweredDelegatingConstructor.symbol
|
||||
)
|
||||
val firstParameter = enumClassConstructor.valueParameters[0]
|
||||
result.putValueArgument(0,
|
||||
IrGetValueImpl(startOffset, endOffset, firstParameter.type, firstParameter.symbol))
|
||||
|
||||
+1
-4
@@ -500,11 +500,8 @@ private class InteropLoweringPart1(val context: Context) : BaseInteropIrTransfor
|
||||
startOffset,
|
||||
endOffset,
|
||||
context.irBuiltIns.unitType,
|
||||
superConstructor,
|
||||
0,
|
||||
superConstructor.owner.valueParameters.size
|
||||
superConstructor
|
||||
)
|
||||
|
||||
+irCall(symbols.interopObjCObjectSuperInitCheck).apply {
|
||||
extensionReceiver = irGet(constructedClass.thisReceiver!!)
|
||||
putValueArgument(0, initCall)
|
||||
|
||||
Reference in New Issue
Block a user