From ce96053940024538ba55c75814080c3f1a473a0e Mon Sep 17 00:00:00 2001 From: Dmitry Petrov Date: Wed, 23 Oct 2019 18:04:04 +0300 Subject: [PATCH] JVM_IR: IrField.isFakeOverride --- .../jetbrains/kotlin/backend/jvm/lower/EnumClassLowering.kt | 3 ++- .../backend/jvm/lower/MoveCompanionObjectFieldsLowering.kt | 4 ++-- .../jetbrains/kotlin/backend/jvm/lower/ObjectClassLowering.kt | 3 ++- .../kotlin/backend/jvm/lower/RenameFieldsLowering.kt | 4 +++- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/EnumClassLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/EnumClassLowering.kt index cb29ab54c89..0eda9d59486 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/EnumClassLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/EnumClassLowering.kt @@ -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 diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/MoveCompanionObjectFieldsLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/MoveCompanionObjectFieldsLowering.kt index 184558a9558..c165ab20055 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/MoveCompanionObjectFieldsLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/MoveCompanionObjectFieldsLowering.kt @@ -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 diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/ObjectClassLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/ObjectClassLowering.kt index 5ab87c43218..2b440166b74 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/ObjectClassLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/ObjectClassLowering.kt @@ -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 diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/RenameFieldsLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/RenameFieldsLowering.kt index 58bef2cd792..8727e84f990 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/RenameFieldsLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/RenameFieldsLowering.kt @@ -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) : 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