JVM_IR: IrField.isFakeOverride
This commit is contained in:
+2
-1
@@ -237,7 +237,8 @@ private class EnumClassLowering(val context: JvmBackendContext) : ClassLoweringP
|
|||||||
Visibilities.PRIVATE,
|
Visibilities.PRIVATE,
|
||||||
isFinal = true,
|
isFinal = true,
|
||||||
isExternal = false,
|
isExternal = false,
|
||||||
isStatic = true
|
isStatic = true,
|
||||||
|
isFakeOverride = false
|
||||||
).also {
|
).also {
|
||||||
descriptor.bind(it)
|
descriptor.bind(it)
|
||||||
it.parent = irClass
|
it.parent = irClass
|
||||||
|
|||||||
+2
-2
@@ -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.deepCopyWithSymbols
|
||||||
import org.jetbrains.kotlin.ir.util.hasAnnotation
|
import org.jetbrains.kotlin.ir.util.hasAnnotation
|
||||||
import org.jetbrains.kotlin.ir.util.isObject
|
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.IrElementTransformerVoid
|
||||||
import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid
|
import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid
|
||||||
import org.jetbrains.kotlin.load.java.JvmAbi.JVM_FIELD_ANNOTATION_FQ_NAME
|
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,
|
oldField.name, oldField.type, oldField.visibility,
|
||||||
isFinal = oldField.isFinal,
|
isFinal = oldField.isFinal,
|
||||||
isExternal = oldField.isExternal,
|
isExternal = oldField.isExternal,
|
||||||
isStatic = true
|
isStatic = true,
|
||||||
|
isFakeOverride = false
|
||||||
).apply {
|
).apply {
|
||||||
descriptor.bind(this)
|
descriptor.bind(this)
|
||||||
parent = fieldParent
|
parent = fieldParent
|
||||||
|
|||||||
+2
-1
@@ -67,7 +67,8 @@ private class ObjectClassLowering(val context: JvmBackendContext) : IrElementTra
|
|||||||
Visibilities.PROTECTED/* TODO package local */,
|
Visibilities.PROTECTED/* TODO package local */,
|
||||||
isFinal = true,
|
isFinal = true,
|
||||||
isExternal = false,
|
isExternal = false,
|
||||||
isStatic = true
|
isStatic = true,
|
||||||
|
isFakeOverride = false
|
||||||
).apply {
|
).apply {
|
||||||
privateFieldDescriptor.bind(this)
|
privateFieldDescriptor.bind(this)
|
||||||
parent = irClass
|
parent = irClass
|
||||||
|
|||||||
+3
-1
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.backend.common.descriptors.WrappedFieldDescriptor
|
|||||||
import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase
|
import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase
|
||||||
import org.jetbrains.kotlin.ir.IrElement
|
import org.jetbrains.kotlin.ir.IrElement
|
||||||
import org.jetbrains.kotlin.ir.IrStatement
|
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.IrDeclarationParent
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrField
|
import org.jetbrains.kotlin.ir.declarations.IrField
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrFile
|
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)
|
val symbol = IrFieldSymbolImpl(descriptor)
|
||||||
return IrFieldImpl(
|
return IrFieldImpl(
|
||||||
declaration.startOffset, declaration.endOffset, declaration.origin, symbol, newName,
|
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 {
|
).also {
|
||||||
descriptor.bind(it)
|
descriptor.bind(it)
|
||||||
it.parent = declaration.parent
|
it.parent = declaration.parent
|
||||||
|
|||||||
Reference in New Issue
Block a user