JVM IR: Write ACC_DEPRECATED flags
This commit is contained in:
committed by
Alexander Udalov
parent
a90ac2438d
commit
fd2ad89799
-7
@@ -1056,13 +1056,6 @@ open class WrappedFieldDescriptor(
|
||||
override fun <V : Any?> getUserData(key: CallableDescriptor.UserDataKey<V>?): V? = null
|
||||
}
|
||||
|
||||
fun wrappedSimpleFunctionDescriptorBasedOn(descriptor: SimpleFunctionDescriptor) =
|
||||
if (descriptor is DescriptorWithContainerSource)
|
||||
// TODO: Do we ever need annotations and source for these?
|
||||
WrappedFunctionDescriptorWithContainerSource(descriptor.containerSource)
|
||||
else
|
||||
WrappedSimpleFunctionDescriptor(descriptor.annotations, descriptor.source)
|
||||
|
||||
private fun getContainingDeclaration(declaration: IrDeclarationWithName): DeclarationDescriptor {
|
||||
val parent = declaration.parent
|
||||
return if (parent is IrClass && parent.origin == IrDeclarationOrigin.FILE_CLASS && parent.parent is IrExternalPackageFragment) {
|
||||
|
||||
+7
-7
@@ -6,13 +6,9 @@
|
||||
package org.jetbrains.kotlin.backend.common.lower
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.*
|
||||
import org.jetbrains.kotlin.backend.common.descriptors.WrappedClassConstructorDescriptor
|
||||
import org.jetbrains.kotlin.backend.common.descriptors.WrappedValueParameterDescriptor
|
||||
import org.jetbrains.kotlin.backend.common.descriptors.synthesizedName
|
||||
import org.jetbrains.kotlin.backend.common.descriptors.wrappedSimpleFunctionDescriptorBasedOn
|
||||
import org.jetbrains.kotlin.backend.common.descriptors.*
|
||||
import org.jetbrains.kotlin.backend.common.ir.*
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.SimpleFunctionDescriptor
|
||||
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
||||
import org.jetbrains.kotlin.ir.builders.*
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
@@ -31,6 +27,8 @@ import org.jetbrains.kotlin.ir.util.*
|
||||
import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid
|
||||
import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DescriptorWithContainerSource
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||
|
||||
// TODO: fix expect/actual default parameters
|
||||
|
||||
@@ -484,7 +482,7 @@ private fun IrFunction.generateDefaultsFunctionImpl(
|
||||
private fun buildFunctionDeclaration(irFunction: IrFunction, origin: IrDeclarationOrigin): IrFunction {
|
||||
when (irFunction) {
|
||||
is IrConstructor -> {
|
||||
val descriptor = WrappedClassConstructorDescriptor(irFunction.descriptor.annotations, irFunction.descriptor.source)
|
||||
val descriptor = WrappedClassConstructorDescriptor()
|
||||
return IrConstructorImpl(
|
||||
irFunction.startOffset,
|
||||
irFunction.endOffset,
|
||||
@@ -502,7 +500,9 @@ private fun buildFunctionDeclaration(irFunction: IrFunction, origin: IrDeclarati
|
||||
}
|
||||
}
|
||||
is IrSimpleFunction -> {
|
||||
val descriptor = wrappedSimpleFunctionDescriptorBasedOn(irFunction.descriptor as SimpleFunctionDescriptor)
|
||||
val descriptor = irFunction.descriptor.safeAs<DescriptorWithContainerSource>()?.let {
|
||||
WrappedFunctionDescriptorWithContainerSource(it.containerSource)
|
||||
} ?: WrappedSimpleFunctionDescriptor()
|
||||
val name = Name.identifier("${irFunction.name}\$default")
|
||||
|
||||
return IrFunctionImpl(
|
||||
|
||||
+4
-5
@@ -11,9 +11,9 @@ import org.jetbrains.kotlin.backend.common.descriptors.WrappedSimpleFunctionDesc
|
||||
import org.jetbrains.kotlin.backend.common.ir.copyTo
|
||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.ir.IrElement
|
||||
import org.jetbrains.kotlin.ir.IrStatement
|
||||
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl
|
||||
import org.jetbrains.kotlin.ir.expressions.impl.IrBlockBodyImpl
|
||||
@@ -74,17 +74,16 @@ class PropertiesLowering(
|
||||
private fun createSyntheticMethodForAnnotations(declaration: IrProperty, origin: IrDeclarationOrigin, name: String): IrFunctionImpl {
|
||||
val descriptor = WrappedSimpleFunctionDescriptor(declaration.descriptor.annotations)
|
||||
val symbol = IrSimpleFunctionSymbolImpl(descriptor)
|
||||
// TODO: ACC_DEPRECATED
|
||||
return IrFunctionImpl(
|
||||
-1, -1, origin, symbol, Name.identifier(name),
|
||||
Visibilities.PUBLIC, Modality.OPEN, context.irBuiltIns.unitType,
|
||||
UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, symbol, Name.identifier(name),
|
||||
declaration.visibility, Modality.OPEN, context.irBuiltIns.unitType,
|
||||
isInline = false, isExternal = false, isTailrec = false, isSuspend = false
|
||||
).apply {
|
||||
descriptor.bind(this)
|
||||
|
||||
extensionReceiverParameter = declaration.getter?.extensionReceiverParameter?.copyTo(this)
|
||||
|
||||
body = IrBlockBodyImpl(-1, -1)
|
||||
body = IrBlockBodyImpl(UNDEFINED_OFFSET, UNDEFINED_OFFSET)
|
||||
|
||||
annotations.addAll(declaration.annotations)
|
||||
metadata = declaration.metadata
|
||||
|
||||
Reference in New Issue
Block a user