JS_IR: IrField.isFakeOverride

This commit is contained in:
Dmitry Petrov
2019-10-23 18:03:47 +03:00
parent 6101f00611
commit 0b26f32674
3 changed files with 13 additions and 7 deletions
@@ -62,9 +62,10 @@ class JsDeclarationFactory : DeclarationFactory {
name,
fieldType,
visibility,
true,
false,
false
isFinal = true,
isExternal = false,
isStatic = false,
isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE
).also {
descriptor.bind(it)
it.parent = parent
@@ -158,9 +158,10 @@ class JsSharedVariablesManager(val builtIns: IrBuiltIns, val implicitDeclaration
fieldName,
builtIns.anyNType,
Visibilities.PUBLIC,
false,
false,
false
isFinal = false,
isExternal = false,
isStatic = false,
isFakeOverride = false
).also {
descriptor.bind(it)
it.parent = closureBoxClassDeclaration
@@ -66,7 +66,11 @@ class EnumUsageLowering(val context: JsIrBackendContext) : FileLoweringPass {
val descriptor = WrappedFieldDescriptor()
val symbol = IrFieldSymbolImpl(descriptor)
return entry.run {
IrFieldImpl(startOffset, endOffset, origin, symbol, name, irClass.defaultType, Visibilities.PUBLIC, false, true, true).also {
IrFieldImpl(
startOffset, endOffset, origin, symbol, name, irClass.defaultType, Visibilities.PUBLIC,
isFinal = false, isExternal = true, isStatic = true,
isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE
).also {
descriptor.bind(it)
it.parent = irClass
irClass.declarations += it