IR: IrField.isFakeOverride
This commit is contained in:
@@ -21,6 +21,7 @@ interface IrField :
|
||||
val isFinal: Boolean
|
||||
val isExternal: Boolean
|
||||
val isStatic: Boolean
|
||||
val isFakeOverride: Boolean
|
||||
|
||||
var initializer: IrExpressionBody?
|
||||
|
||||
|
||||
@@ -43,7 +43,8 @@ class IrFieldImpl(
|
||||
override val visibility: Visibility,
|
||||
override val isFinal: Boolean,
|
||||
override val isExternal: Boolean,
|
||||
override val isStatic: Boolean
|
||||
override val isStatic: Boolean,
|
||||
override val isFakeOverride: Boolean
|
||||
) : IrDeclarationBase(startOffset, endOffset, origin),
|
||||
IrField {
|
||||
|
||||
@@ -60,7 +61,8 @@ class IrFieldImpl(
|
||||
symbol.descriptor.name, type, visibility,
|
||||
isFinal = !symbol.descriptor.isVar,
|
||||
isExternal = symbol.descriptor.isEffectivelyExternal(),
|
||||
isStatic = symbol.descriptor.dispatchReceiverParameter == null
|
||||
isStatic = symbol.descriptor.dispatchReceiverParameter == null,
|
||||
isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE
|
||||
)
|
||||
|
||||
constructor(
|
||||
|
||||
@@ -34,6 +34,7 @@ class IrLazyField(
|
||||
override val isFinal: Boolean,
|
||||
override val isExternal: Boolean,
|
||||
override val isStatic: Boolean,
|
||||
override val isFakeOverride: Boolean,
|
||||
stubGenerator: DeclarationStubGenerator,
|
||||
typeTranslator: TypeTranslator
|
||||
) : IrLazyDeclarationBase(startOffset, endOffset, origin, stubGenerator, typeTranslator),
|
||||
@@ -50,11 +51,12 @@ class IrLazyField(
|
||||
startOffset, endOffset, origin, symbol,
|
||||
symbol.descriptor.name,
|
||||
symbol.descriptor.visibility,
|
||||
!symbol.descriptor.isVar,
|
||||
symbol.descriptor.isEffectivelyExternal(),
|
||||
symbol.descriptor.dispatchReceiverParameter == null,
|
||||
stubGenerator,
|
||||
typeTranslator
|
||||
isFinal = !symbol.descriptor.isVar,
|
||||
isExternal = symbol.descriptor.isEffectivelyExternal(),
|
||||
isStatic = symbol.descriptor.dispatchReceiverParameter == null,
|
||||
isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE,
|
||||
stubGenerator = stubGenerator,
|
||||
typeTranslator = typeTranslator
|
||||
)
|
||||
|
||||
init {
|
||||
|
||||
@@ -243,9 +243,10 @@ open class DeepCopyIrTreeWithSymbols(
|
||||
symbolRenamer.getFieldName(declaration.symbol),
|
||||
declaration.type.remapType(),
|
||||
declaration.visibility,
|
||||
declaration.isFinal,
|
||||
declaration.isExternal,
|
||||
declaration.isStatic
|
||||
isFinal = declaration.isFinal,
|
||||
isExternal = declaration.isExternal,
|
||||
isStatic = declaration.isStatic,
|
||||
isFakeOverride = declaration.isFakeOverride
|
||||
).apply {
|
||||
transformAnnotations(declaration)
|
||||
declaration.overriddenSymbols.mapTo(overriddenSymbols) {
|
||||
|
||||
@@ -431,7 +431,8 @@ class RenderIrElementVisitor : IrElementVisitor<String, Nothing?> {
|
||||
renderFlagsList(
|
||||
"final".takeIf { isFinal },
|
||||
"external".takeIf { isExternal },
|
||||
"static".takeIf { isStatic }
|
||||
"static".takeIf { isStatic },
|
||||
"fake_override".takeIf { isFakeOverride }
|
||||
)
|
||||
|
||||
override fun visitClass(declaration: IrClass, data: Nothing?): String =
|
||||
|
||||
Reference in New Issue
Block a user