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 {
|
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))
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-7
@@ -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))
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-3
@@ -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]))
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-3
@@ -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))
|
||||||
|
|||||||
+4
-8
@@ -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))
|
||||||
|
|||||||
+1
-4
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user