[IR][test generator] drop using synthetic offset in ir generation (#2539)
This commit is contained in:
+16
-16
@@ -98,8 +98,8 @@ internal class TestProcessor (val context: KonanBackendContext) {
|
|||||||
dispatchReceiver = irGet(receiver)
|
dispatchReceiver = irGet(receiver)
|
||||||
putValueArgument(0, irString(it.function.name.identifier))
|
putValueArgument(0, irString(it.function.name.identifier))
|
||||||
putValueArgument(1, IrFunctionReferenceImpl(
|
putValueArgument(1, IrFunctionReferenceImpl(
|
||||||
SYNTHETIC_OFFSET,
|
it.function.startOffset,
|
||||||
SYNTHETIC_OFFSET,
|
it.function.endOffset,
|
||||||
registerTestCase.valueParameters[1].type,
|
registerTestCase.valueParameters[1].type,
|
||||||
it.function.symbol,
|
it.function.symbol,
|
||||||
it.function.descriptor,
|
it.function.descriptor,
|
||||||
@@ -113,13 +113,14 @@ internal class TestProcessor (val context: KonanBackendContext) {
|
|||||||
dispatchReceiver = irGet(receiver)
|
dispatchReceiver = irGet(receiver)
|
||||||
val testKindEntry = it.kind.runtimeKind
|
val testKindEntry = it.kind.runtimeKind
|
||||||
putValueArgument(0, IrGetEnumValueImpl(
|
putValueArgument(0, IrGetEnumValueImpl(
|
||||||
SYNTHETIC_OFFSET,
|
it.function.startOffset,
|
||||||
SYNTHETIC_OFFSET,
|
it.function.endOffset,
|
||||||
symbols.testFunctionKind.typeWithoutArguments,
|
symbols.testFunctionKind.typeWithoutArguments,
|
||||||
testKindEntry)
|
testKindEntry)
|
||||||
)
|
)
|
||||||
putValueArgument(1, IrFunctionReferenceImpl(SYNTHETIC_OFFSET,
|
putValueArgument(1, IrFunctionReferenceImpl(
|
||||||
SYNTHETIC_OFFSET,
|
it.function.startOffset,
|
||||||
|
it.function.endOffset,
|
||||||
registerFunction.valueParameters[1].type,
|
registerFunction.valueParameters[1].type,
|
||||||
it.function.symbol,
|
it.function.symbol,
|
||||||
it.function.descriptor,
|
it.function.descriptor,
|
||||||
@@ -338,7 +339,7 @@ internal class TestProcessor (val context: KonanBackendContext) {
|
|||||||
owner: IrClass,
|
owner: IrClass,
|
||||||
getterName: Name) = WrappedSimpleFunctionDescriptor().let { descriptor ->
|
getterName: Name) = WrappedSimpleFunctionDescriptor().let { descriptor ->
|
||||||
IrFunctionImpl(
|
IrFunctionImpl(
|
||||||
SYNTHETIC_OFFSET, SYNTHETIC_OFFSET,
|
owner.startOffset, owner.endOffset,
|
||||||
TEST_SUITE_GENERATED_MEMBER,
|
TEST_SUITE_GENERATED_MEMBER,
|
||||||
IrSimpleFunctionSymbolImpl(descriptor),
|
IrSimpleFunctionSymbolImpl(descriptor),
|
||||||
getterName,
|
getterName,
|
||||||
@@ -359,9 +360,8 @@ internal class TestProcessor (val context: KonanBackendContext) {
|
|||||||
createDispatchReceiverParameter()
|
createDispatchReceiverParameter()
|
||||||
overriddenSymbols += superFunction.symbol
|
overriddenSymbols += superFunction.symbol
|
||||||
|
|
||||||
body = context.createIrBuilder(symbol).irBlockBody {
|
body = context.createIrBuilder(symbol, symbol.owner.startOffset, symbol.owner.endOffset).irBlockBody {
|
||||||
+irReturn(IrGetObjectValueImpl(SYNTHETIC_OFFSET, SYNTHETIC_OFFSET,
|
+irReturn(irGetObjectValue(objectSymbol.typeWithoutArguments, objectSymbol)
|
||||||
objectSymbol.typeWithoutArguments, objectSymbol)
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -375,7 +375,7 @@ internal class TestProcessor (val context: KonanBackendContext) {
|
|||||||
owner: IrClass,
|
owner: IrClass,
|
||||||
getterName: Name) = WrappedSimpleFunctionDescriptor().let { descriptor ->
|
getterName: Name) = WrappedSimpleFunctionDescriptor().let { descriptor ->
|
||||||
IrFunctionImpl(
|
IrFunctionImpl(
|
||||||
SYNTHETIC_OFFSET, SYNTHETIC_OFFSET,
|
owner.startOffset, owner.endOffset,
|
||||||
TEST_SUITE_GENERATED_MEMBER,
|
TEST_SUITE_GENERATED_MEMBER,
|
||||||
IrSimpleFunctionSymbolImpl(descriptor),
|
IrSimpleFunctionSymbolImpl(descriptor),
|
||||||
getterName,
|
getterName,
|
||||||
@@ -396,7 +396,7 @@ internal class TestProcessor (val context: KonanBackendContext) {
|
|||||||
createDispatchReceiverParameter()
|
createDispatchReceiverParameter()
|
||||||
overriddenSymbols += superFunction.symbol
|
overriddenSymbols += superFunction.symbol
|
||||||
|
|
||||||
body = context.createIrBuilder(symbol).irBlockBody {
|
body = context.createIrBuilder(symbol, symbol.owner.startOffset, symbol.owner.endOffset).irBlockBody {
|
||||||
val constructor = classSymbol.owner.constructors.single { it.valueParameters.isEmpty() }
|
val constructor = classSymbol.owner.constructors.single { it.valueParameters.isEmpty() }
|
||||||
+irReturn(irCall(constructor))
|
+irReturn(irCall(constructor))
|
||||||
}
|
}
|
||||||
@@ -422,7 +422,7 @@ internal class TestProcessor (val context: KonanBackendContext) {
|
|||||||
functions: Collection<TestFunction>,
|
functions: Collection<TestFunction>,
|
||||||
ignored: Boolean) = WrappedClassConstructorDescriptor().let { descriptor ->
|
ignored: Boolean) = WrappedClassConstructorDescriptor().let { descriptor ->
|
||||||
IrConstructorImpl(
|
IrConstructorImpl(
|
||||||
SYNTHETIC_OFFSET, SYNTHETIC_OFFSET,
|
testSuite.owner.startOffset, testSuite.owner.endOffset,
|
||||||
TEST_SUITE_GENERATED_MEMBER,
|
TEST_SUITE_GENERATED_MEMBER,
|
||||||
IrConstructorSymbolImpl(descriptor),
|
IrConstructorSymbolImpl(descriptor),
|
||||||
Name.special("<init>"),
|
Name.special("<init>"),
|
||||||
@@ -450,7 +450,7 @@ internal class TestProcessor (val context: KonanBackendContext) {
|
|||||||
&& it.valueParameters[1].type.isFunction() // function: () -> Unit
|
&& it.valueParameters[1].type.isFunction() // function: () -> Unit
|
||||||
}
|
}
|
||||||
|
|
||||||
body = context.createIrBuilder(symbol).irBlockBody {
|
body = context.createIrBuilder(symbol, symbol.owner.startOffset, symbol.owner.endOffset).irBlockBody {
|
||||||
+irDelegatingConstructorCall(baseClassSuiteConstructor).apply {
|
+irDelegatingConstructorCall(baseClassSuiteConstructor).apply {
|
||||||
putTypeArgument(0, testClassType)
|
putTypeArgument(0, testClassType)
|
||||||
putTypeArgument(1, testCompanionType)
|
putTypeArgument(1, testCompanionType)
|
||||||
@@ -474,7 +474,7 @@ internal class TestProcessor (val context: KonanBackendContext) {
|
|||||||
testCompanion: IrClass?,
|
testCompanion: IrClass?,
|
||||||
functions: Collection<TestFunction>) = WrappedClassDescriptor().let { descriptor ->
|
functions: Collection<TestFunction>) = WrappedClassDescriptor().let { descriptor ->
|
||||||
IrClassImpl(
|
IrClassImpl(
|
||||||
SYNTHETIC_OFFSET, SYNTHETIC_OFFSET,
|
testClass.startOffset, testClass.endOffset,
|
||||||
TEST_SUITE_CLASS,
|
TEST_SUITE_CLASS,
|
||||||
IrClassSymbolImpl(descriptor),
|
IrClassSymbolImpl(descriptor),
|
||||||
testClass.name.synthesizeSuiteClassName(),
|
testClass.name.synthesizeSuiteClassName(),
|
||||||
@@ -530,7 +530,7 @@ internal class TestProcessor (val context: KonanBackendContext) {
|
|||||||
with(buildClassSuite(testClass.ownerClass, testClass.companion,testClass.functions)) {
|
with(buildClassSuite(testClass.ownerClass, testClass.companion,testClass.functions)) {
|
||||||
irFile.addChild(this)
|
irFile.addChild(this)
|
||||||
val irConstructor = constructors.single()
|
val irConstructor = constructors.single()
|
||||||
context.createIrBuilder(irFile.symbol).run {
|
context.createIrBuilder(irFile.symbol, testClass.ownerClass.startOffset, testClass.ownerClass.endOffset).run {
|
||||||
irFile.addTopLevelInitializer(
|
irFile.addTopLevelInitializer(
|
||||||
irCall(irConstructor),
|
irCall(irConstructor),
|
||||||
this@TestProcessor.context,
|
this@TestProcessor.context,
|
||||||
|
|||||||
Reference in New Issue
Block a user