[PSI2IR] Use SYNTHETIC_OFFSET for delegated brigdes.

This allows kotlin-native to generate code in debug mode.
LLVM requires debug attributes for this code and SYNTHETIC_OFFSET
makes kotlin-native generate dummy debug attributes.
This commit is contained in:
Mads Ager
2020-09-30 13:56:08 +02:00
committed by Alexander Udalov
parent ed5c2b0565
commit b47e0e861b
@@ -19,7 +19,6 @@ package org.jetbrains.kotlin.psi2ir.generators
import org.jetbrains.kotlin.backend.common.CodegenUtil import org.jetbrains.kotlin.backend.common.CodegenUtil
import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.descriptors.IrImplementingDelegateDescriptorImpl import org.jetbrains.kotlin.ir.descriptors.IrImplementingDelegateDescriptorImpl
import org.jetbrains.kotlin.ir.expressions.IrBlockBody import org.jetbrains.kotlin.ir.expressions.IrBlockBody
@@ -30,6 +29,7 @@ import org.jetbrains.kotlin.ir.expressions.impl.IrReturnImpl
import org.jetbrains.kotlin.ir.expressions.mapValueParameters import org.jetbrains.kotlin.ir.expressions.mapValueParameters
import org.jetbrains.kotlin.ir.expressions.putTypeArguments import org.jetbrains.kotlin.ir.expressions.putTypeArguments
import org.jetbrains.kotlin.ir.expressions.typeParametersCount import org.jetbrains.kotlin.ir.expressions.typeParametersCount
import org.jetbrains.kotlin.ir.util.SYNTHETIC_OFFSET
import org.jetbrains.kotlin.ir.util.createIrClassFromDescriptor import org.jetbrains.kotlin.ir.util.createIrClassFromDescriptor
import org.jetbrains.kotlin.ir.util.declareSimpleFunctionWithOverrides import org.jetbrains.kotlin.ir.util.declareSimpleFunctionWithOverrides
import org.jetbrains.kotlin.ir.util.properties import org.jetbrains.kotlin.ir.util.properties
@@ -306,7 +306,7 @@ class ClassGenerator(
delegateToDescriptor: FunctionDescriptor delegateToDescriptor: FunctionDescriptor
): IrSimpleFunction = ): IrSimpleFunction =
context.symbolTable.declareSimpleFunctionWithOverrides( context.symbolTable.declareSimpleFunctionWithOverrides(
UNDEFINED_OFFSET, UNDEFINED_OFFSET, SYNTHETIC_OFFSET, SYNTHETIC_OFFSET,
IrDeclarationOrigin.DELEGATED_MEMBER, IrDeclarationOrigin.DELEGATED_MEMBER,
delegatedDescriptor delegatedDescriptor
).buildWithScope { irFunction -> ).buildWithScope { irFunction ->
@@ -324,8 +324,8 @@ class ClassGenerator(
delegateToDescriptor: FunctionDescriptor, delegateToDescriptor: FunctionDescriptor,
irDelegatedFunction: IrSimpleFunction irDelegatedFunction: IrSimpleFunction
): IrBlockBody { ): IrBlockBody {
val startOffset = UNDEFINED_OFFSET val startOffset = SYNTHETIC_OFFSET
val endOffset = UNDEFINED_OFFSET val endOffset = SYNTHETIC_OFFSET
val irBlockBody = context.irFactory.createBlockBody(startOffset, endOffset) val irBlockBody = context.irFactory.createBlockBody(startOffset, endOffset)