Fir2Ir: extract error about unsupported mutation
This commit is contained in:
committed by
Space Team
parent
22b4b29292
commit
1cb77a47ec
@@ -40,4 +40,7 @@ interface AbstractFir2IrLazyDeclaration<F> :
|
|||||||
get() = shouldNotBeCalled()
|
get() = shouldNotBeCalled()
|
||||||
override val typeTranslator: TypeTranslator
|
override val typeTranslator: TypeTranslator
|
||||||
get() = shouldNotBeCalled()
|
get() = shouldNotBeCalled()
|
||||||
|
|
||||||
|
fun mutationNotSupported(): Nothing =
|
||||||
|
error("Mutation of Fir2Ir lazy elements is not possible")
|
||||||
}
|
}
|
||||||
|
|||||||
+8
-24
@@ -46,27 +46,19 @@ abstract class AbstractFir2IrLazyFunction<F : FirCallableDeclaration>(
|
|||||||
|
|
||||||
override var isTailrec: Boolean
|
override var isTailrec: Boolean
|
||||||
get() = fir.isTailRec
|
get() = fir.isTailRec
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var isSuspend: Boolean
|
override var isSuspend: Boolean
|
||||||
get() = fir.isSuspend
|
get() = fir.isSuspend
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var isOperator: Boolean
|
override var isOperator: Boolean
|
||||||
get() = fir.isOperator
|
get() = fir.isOperator
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var isInfix: Boolean
|
override var isInfix: Boolean
|
||||||
get() = fir.isInfix
|
get() = fir.isInfix
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
@ObsoleteDescriptorBasedAPI
|
@ObsoleteDescriptorBasedAPI
|
||||||
override val descriptor: FunctionDescriptor
|
override val descriptor: FunctionDescriptor
|
||||||
@@ -74,21 +66,15 @@ abstract class AbstractFir2IrLazyFunction<F : FirCallableDeclaration>(
|
|||||||
|
|
||||||
override var isInline: Boolean
|
override var isInline: Boolean
|
||||||
get() = fir.isInline
|
get() = fir.isInline
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var isExternal: Boolean
|
override var isExternal: Boolean
|
||||||
get() = fir.isExternal
|
get() = fir.isExternal
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var isExpect: Boolean
|
override var isExpect: Boolean
|
||||||
get() = fir.isExpect
|
get() = fir.isExpect
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var body: IrBody? by lazyVar(lock) {
|
override var body: IrBody? by lazyVar(lock) {
|
||||||
if (tryLoadIr()) body else null
|
if (tryLoadIr()) body else null
|
||||||
@@ -100,9 +86,7 @@ abstract class AbstractFir2IrLazyFunction<F : FirCallableDeclaration>(
|
|||||||
|
|
||||||
override var modality: Modality
|
override var modality: Modality
|
||||||
get() = fir.modality!!
|
get() = fir.modality!!
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var correspondingPropertySymbol: IrPropertySymbol? = null
|
override var correspondingPropertySymbol: IrPropertySymbol? = null
|
||||||
|
|
||||||
|
|||||||
@@ -60,75 +60,50 @@ class Fir2IrLazyClass(
|
|||||||
|
|
||||||
override var name: Name
|
override var name: Name
|
||||||
get() = fir.name
|
get() = fir.name
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
throw UnsupportedOperationException()
|
|
||||||
}
|
|
||||||
|
|
||||||
@Suppress("SetterBackingFieldAssignment")
|
|
||||||
override var visibility: DescriptorVisibility = components.visibilityConverter.convertToDescriptorVisibility(fir.visibility)
|
override var visibility: DescriptorVisibility = components.visibilityConverter.convertToDescriptorVisibility(fir.visibility)
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var modality: Modality
|
override var modality: Modality
|
||||||
get() = fir.modality!!
|
get() = fir.modality!!
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var attributeOwnerId: IrAttributeContainer
|
override var attributeOwnerId: IrAttributeContainer
|
||||||
get() = this
|
get() = this
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var kind: ClassKind
|
override var kind: ClassKind
|
||||||
get() = fir.classKind
|
get() = fir.classKind
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var isCompanion: Boolean
|
override var isCompanion: Boolean
|
||||||
get() = fir.isCompanion
|
get() = fir.isCompanion
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var isInner: Boolean
|
override var isInner: Boolean
|
||||||
get() = fir.isInner
|
get() = fir.isInner
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var isData: Boolean
|
override var isData: Boolean
|
||||||
get() = fir.isData
|
get() = fir.isData
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var isExternal: Boolean
|
override var isExternal: Boolean
|
||||||
get() = fir.isExternal
|
get() = fir.isExternal
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var isValue: Boolean
|
override var isValue: Boolean
|
||||||
get() = fir.isInline
|
get() = fir.isInline
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var isExpect: Boolean
|
override var isExpect: Boolean
|
||||||
get() = fir.isExpect
|
get() = fir.isExpect
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var isFun: Boolean
|
override var isFun: Boolean
|
||||||
get() = fir.isFun
|
get() = fir.isFun
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var superTypes: List<IrType> by lazyVar(lock) {
|
override var superTypes: List<IrType> by lazyVar(lock) {
|
||||||
fir.superTypeRefs.map { it.toIrType(typeConverter) }
|
fir.superTypeRefs.map { it.toIrType(typeConverter) }
|
||||||
@@ -160,9 +135,7 @@ class Fir2IrLazyClass(
|
|||||||
|
|
||||||
override var valueClassRepresentation: ValueClassRepresentation<IrSimpleType>?
|
override var valueClassRepresentation: ValueClassRepresentation<IrSimpleType>?
|
||||||
get() = computeValueClassRepresentation(fir)
|
get() = computeValueClassRepresentation(fir)
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
private val fakeOverridesByName = mutableMapOf<Name, Collection<IrDeclaration>>()
|
private val fakeOverridesByName = mutableMapOf<Name, Collection<IrDeclaration>>()
|
||||||
|
|
||||||
|
|||||||
@@ -48,9 +48,7 @@ class Fir2IrLazyConstructor(
|
|||||||
|
|
||||||
override var isPrimary: Boolean
|
override var isPrimary: Boolean
|
||||||
get() = fir.isPrimary
|
get() = fir.isPrimary
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
@ObsoleteDescriptorBasedAPI
|
@ObsoleteDescriptorBasedAPI
|
||||||
override val descriptor: ClassConstructorDescriptor
|
override val descriptor: ClassConstructorDescriptor
|
||||||
@@ -58,35 +56,24 @@ class Fir2IrLazyConstructor(
|
|||||||
|
|
||||||
override var isInline: Boolean
|
override var isInline: Boolean
|
||||||
get() = fir.isInline
|
get() = fir.isInline
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var isExternal: Boolean
|
override var isExternal: Boolean
|
||||||
get() = fir.isExternal
|
get() = fir.isExternal
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var isExpect: Boolean
|
override var isExpect: Boolean
|
||||||
get() = fir.isExpect
|
get() = fir.isExpect
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var body: IrBody? = null
|
override var body: IrBody? = null
|
||||||
|
|
||||||
override var name: Name
|
override var name: Name
|
||||||
get() = SpecialNames.INIT
|
get() = SpecialNames.INIT
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
throw UnsupportedOperationException()
|
|
||||||
}
|
|
||||||
|
|
||||||
@Suppress("SetterBackingFieldAssignment")
|
|
||||||
override var visibility: DescriptorVisibility = components.visibilityConverter.convertToDescriptorVisibility(fir.visibility)
|
override var visibility: DescriptorVisibility = components.visibilityConverter.convertToDescriptorVisibility(fir.visibility)
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var returnType: IrType by lazyVar(lock) {
|
override var returnType: IrType by lazyVar(lock) {
|
||||||
fir.returnTypeRef.toIrType(typeConverter)
|
fir.returnTypeRef.toIrType(typeConverter)
|
||||||
|
|||||||
@@ -55,57 +55,38 @@ class Fir2IrLazyProperty(
|
|||||||
|
|
||||||
override var isVar: Boolean
|
override var isVar: Boolean
|
||||||
get() = fir.isVar
|
get() = fir.isVar
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var isConst: Boolean
|
override var isConst: Boolean
|
||||||
get() = fir.isConst
|
get() = fir.isConst
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var isLateinit: Boolean
|
override var isLateinit: Boolean
|
||||||
get() = fir.isLateInit
|
get() = fir.isLateInit
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var isDelegated: Boolean
|
override var isDelegated: Boolean
|
||||||
get() = fir.delegate != null
|
get() = fir.delegate != null
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var isExternal: Boolean
|
override var isExternal: Boolean
|
||||||
get() = fir.isExternal
|
get() = fir.isExternal
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var isExpect: Boolean
|
override var isExpect: Boolean
|
||||||
get() = fir.isExpect
|
get() = fir.isExpect
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var name: Name
|
override var name: Name
|
||||||
get() = fir.name
|
get() = fir.name
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
throw UnsupportedOperationException()
|
|
||||||
}
|
|
||||||
|
|
||||||
@Suppress("SetterBackingFieldAssignment")
|
|
||||||
override var visibility: DescriptorVisibility = components.visibilityConverter.convertToDescriptorVisibility(fir.visibility)
|
override var visibility: DescriptorVisibility = components.visibilityConverter.convertToDescriptorVisibility(fir.visibility)
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var modality: Modality
|
override var modality: Modality
|
||||||
get() = fir.modality!!
|
get() = fir.modality!!
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
private val type: IrType by lazy {
|
private val type: IrType by lazy {
|
||||||
with(typeConverter) { fir.returnTypeRef.toIrType() }
|
with(typeConverter) { fir.returnTypeRef.toIrType() }
|
||||||
|
|||||||
@@ -46,17 +46,13 @@ class Fir2IrLazyPropertyAccessor(
|
|||||||
// TODO: investigate why some deserialized properties are inline
|
// TODO: investigate why some deserialized properties are inline
|
||||||
override var isInline: Boolean
|
override var isInline: Boolean
|
||||||
get() = firAccessor?.isInline == true
|
get() = firAccessor?.isInline == true
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
error("Mutating Fir2Ir lazy elements is not possible")
|
|
||||||
}
|
|
||||||
|
|
||||||
override var annotations: List<IrConstructorCall> by createLazyAnnotations()
|
override var annotations: List<IrConstructorCall> by createLazyAnnotations()
|
||||||
|
|
||||||
override var name: Name
|
override var name: Name
|
||||||
get() = Name.special("<${if (isSetter) "set" else "get"}-${firParentProperty.name}>")
|
get() = Name.special("<${if (isSetter) "set" else "get"}-${firParentProperty.name}>")
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
throw UnsupportedOperationException()
|
|
||||||
}
|
|
||||||
|
|
||||||
override var returnType: IrType by lazyVar(lock) {
|
override var returnType: IrType by lazyVar(lock) {
|
||||||
if (isSetter) irBuiltIns.unitType else firParentProperty.returnTypeRef.toIrType(typeConverter, conversionTypeContext)
|
if (isSetter) irBuiltIns.unitType else firParentProperty.returnTypeRef.toIrType(typeConverter, conversionTypeContext)
|
||||||
|
|||||||
@@ -43,9 +43,7 @@ class Fir2IrLazySimpleFunction(
|
|||||||
|
|
||||||
override var name: Name
|
override var name: Name
|
||||||
get() = fir.name
|
get() = fir.name
|
||||||
set(_) {
|
set(_) = mutationNotSupported()
|
||||||
throw UnsupportedOperationException()
|
|
||||||
}
|
|
||||||
|
|
||||||
override var returnType: IrType by lazyVar(lock) {
|
override var returnType: IrType by lazyVar(lock) {
|
||||||
fir.returnTypeRef.toIrType(typeConverter)
|
fir.returnTypeRef.toIrType(typeConverter)
|
||||||
|
|||||||
Reference in New Issue
Block a user