diff --git a/compiler/testData/codegen/box/objects/compoundAssignmentToPropertyImportedFromObject.kt b/compiler/testData/codegen/box/objects/compoundAssignmentToPropertyImportedFromObject.kt index e0fe7470fcf..db7d276732c 100644 --- a/compiler/testData/codegen/box/objects/compoundAssignmentToPropertyImportedFromObject.kt +++ b/compiler/testData/codegen/box/objects/compoundAssignmentToPropertyImportedFromObject.kt @@ -1,5 +1,3 @@ -// KT-56326 -// IGNORE_BACKEND_K2: NATIVE import Host.x object Host { diff --git a/compiler/testData/codegen/box/properties/kt4252.kt b/compiler/testData/codegen/box/properties/kt4252.kt index 2f552014f03..f14f069901d 100644 --- a/compiler/testData/codegen/box/properties/kt4252.kt +++ b/compiler/testData/codegen/box/properties/kt4252.kt @@ -1,5 +1,3 @@ -// KT-56326 -// IGNORE_BACKEND_K2: NATIVE class CallbackBlock {} public class Foo diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt index 5b242d72797..d9fc46b749e 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt @@ -1755,12 +1755,13 @@ internal class CodeGeneratorVisitor( return codegen.theUnitInstanceRef.llvm } + val thisPtr = value.receiver?.let { evaluateExpression(it) } val valueToAssign = evaluateExpression(value.value) val address: LLVMValueRef val alignment: Int - if (!value.symbol.owner.isStatic) { - val thisPtr = evaluateExpression(value.receiver!!) - assert(thisPtr.type == codegen.kObjHeaderPtr) { + if (thisPtr != null) { + require(!value.symbol.owner.isStatic) { "Unexpected receiver for a static field: ${value.render()}" } + require(thisPtr.type == codegen.kObjHeaderPtr) { LLVMPrintTypeToString(thisPtr.type)?.toKString().toString() } val parentAsClass = value.symbol.owner.parentAsClass @@ -1775,7 +1776,7 @@ internal class CodeGeneratorVisitor( address = fieldPtrOfClass(thisPtr, value.symbol.owner) alignment = generationState.llvmDeclarations.forField(value.symbol.owner).alignment } else { - assert(value.receiver == null) + require(value.symbol.owner.isStatic) { "A receiver expected for a non-static field: ${value.render()}" } if (context.config.threadsAreAllowed && value.symbol.owner.storageKind(context) == FieldStorageKind.GLOBAL) functionGenerationContext.checkGlobalsAccessible(currentCodeContext.exceptionHandler) if (value.symbol.owner.shouldBeFrozen(context) && value.origin != ObjectClassLowering.IrStatementOriginFieldPreInit)