JVM_IR: IrField.isFakeOverride

This commit is contained in:
Dmitry Petrov
2019-10-23 18:04:04 +03:00
parent 0b26f32674
commit ce96053940
4 changed files with 9 additions and 5 deletions
@@ -237,7 +237,8 @@ private class EnumClassLowering(val context: JvmBackendContext) : ClassLoweringP
Visibilities.PRIVATE,
isFinal = true,
isExternal = false,
isStatic = true
isStatic = true,
isFakeOverride = false
).also {
descriptor.bind(it)
it.parent = irClass
@@ -30,7 +30,6 @@ import org.jetbrains.kotlin.ir.symbols.impl.IrVariableSymbolImpl
import org.jetbrains.kotlin.ir.util.deepCopyWithSymbols
import org.jetbrains.kotlin.ir.util.hasAnnotation
import org.jetbrains.kotlin.ir.util.isObject
import org.jetbrains.kotlin.ir.util.patchDeclarationParents
import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid
import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid
import org.jetbrains.kotlin.load.java.JvmAbi.JVM_FIELD_ANNOTATION_FQ_NAME
@@ -214,7 +213,8 @@ private class MoveOrCopyCompanionObjectFieldsLowering(val context: CommonBackend
oldField.name, oldField.type, oldField.visibility,
isFinal = oldField.isFinal,
isExternal = oldField.isExternal,
isStatic = true
isStatic = true,
isFakeOverride = false
).apply {
descriptor.bind(this)
parent = fieldParent
@@ -67,7 +67,8 @@ private class ObjectClassLowering(val context: JvmBackendContext) : IrElementTra
Visibilities.PROTECTED/* TODO package local */,
isFinal = true,
isExternal = false,
isStatic = true
isStatic = true,
isFakeOverride = false
).apply {
privateFieldDescriptor.bind(this)
parent = irClass
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.backend.common.descriptors.WrappedFieldDescriptor
import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase
import org.jetbrains.kotlin.ir.IrElement
import org.jetbrains.kotlin.ir.IrStatement
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent
import org.jetbrains.kotlin.ir.declarations.IrField
import org.jetbrains.kotlin.ir.declarations.IrFile
@@ -103,7 +104,8 @@ private class FieldRenamer(private val newNames: Map<IrField, Name>) : IrElement
val symbol = IrFieldSymbolImpl(descriptor)
return IrFieldImpl(
declaration.startOffset, declaration.endOffset, declaration.origin, symbol, newName,
declaration.type, declaration.visibility, declaration.isFinal, declaration.isExternal, declaration.isStatic
declaration.type, declaration.visibility, declaration.isFinal, declaration.isExternal, declaration.isStatic,
isFakeOverride = declaration.origin == IrDeclarationOrigin.FAKE_OVERRIDE
).also {
descriptor.bind(it)
it.parent = declaration.parent