[IR][test generator] drop using synthetic offset in ir generation (#2539)

This commit is contained in:
Vasily Levchenko
2019-01-15 17:45:29 +03:00
committed by GitHub
parent 3aef422cdc
commit 1596155182
@@ -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,