Psi2ir: do not generate default accessor body for expect properties
Because generateDefaultGetterBody/generateDefaultSetterBody reference the property's backing field, which in case of extension properties leads to an error "Unbound symbols not allowed" because extension property cannot have a backing field. In some way, this check is similar to the `isExpect` check in `generatePrimaryConstructor`.
This commit is contained in:
+2
-3
@@ -21,7 +21,6 @@ import org.jetbrains.kotlin.ir.expressions.impl.IrSetFieldImpl
|
||||
import org.jetbrains.kotlin.ir.types.impl.IrUninitializedType
|
||||
import org.jetbrains.kotlin.ir.util.declareSimpleFunctionWithOverrides
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.name.Name.isValidIdentifier
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.pureEndOffset
|
||||
import org.jetbrains.kotlin.psi.psiUtil.pureStartOffset
|
||||
@@ -137,8 +136,8 @@ class FunctionGenerator(declarationGenerator: DeclarationGenerator) : Declaratio
|
||||
private fun generateDefaultAccessorBody(
|
||||
accessor: PropertyAccessorDescriptor,
|
||||
irAccessor: IrSimpleFunction
|
||||
) =
|
||||
if (accessor.modality == Modality.ABSTRACT)
|
||||
): IrBlockBody? =
|
||||
if (accessor.modality == Modality.ABSTRACT || accessor.correspondingProperty.isExpect)
|
||||
null
|
||||
else
|
||||
when (accessor) {
|
||||
|
||||
Reference in New Issue
Block a user