JVM_IR: compute signatures for fake overrides of Java fields
This commit is contained in:
committed by
TeamCityServer
parent
8c3386b607
commit
c3f4fcde0b
+9
-5
@@ -14,10 +14,7 @@ import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol
|
||||
import org.jetbrains.kotlin.ir.types.*
|
||||
import org.jetbrains.kotlin.ir.util.isFacadeClass
|
||||
import org.jetbrains.kotlin.ir.util.isVararg
|
||||
import org.jetbrains.kotlin.ir.util.parentAsClass
|
||||
import org.jetbrains.kotlin.ir.util.render
|
||||
import org.jetbrains.kotlin.ir.util.*
|
||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
|
||||
import org.jetbrains.kotlin.ir.visitors.acceptVoid
|
||||
import org.jetbrains.kotlin.types.Variance
|
||||
@@ -234,7 +231,14 @@ abstract class IrMangleComputer(protected val builder: StringBuilder, private va
|
||||
typeParameterContainer.add(declaration)
|
||||
declaration.parent.acceptVoid(this)
|
||||
|
||||
val isStaticProperty = accessor != null && accessor.dispatchReceiverParameter == null && declaration.parent !is IrPackageFragment
|
||||
val isStaticProperty = if (accessor != null)
|
||||
accessor.let { it.dispatchReceiverParameter == null && declaration.parent !is IrPackageFragment }
|
||||
else {
|
||||
// Fake override for a Java field
|
||||
val backingField = declaration.resolveFakeOverride()?.backingField
|
||||
?: error("Expected at least one accessor or a backing field for property ${declaration.render()}")
|
||||
backingField.isStatic
|
||||
}
|
||||
|
||||
if (isStaticProperty) {
|
||||
builder.appendSignature(MangleConstant.STATIC_MEMBER_MARK)
|
||||
|
||||
Reference in New Issue
Block a user