IR API: change val ... : MutableList to var ...: List for most lists
All mutable state for IR declarations should be either: - var (mutable properties) - or class member list Mutable properties are straightforward to persist. The class member list is handled in a special way.
This commit is contained in:
+4
-2
@@ -40,8 +40,10 @@ class AnnotationGenerator(context: GeneratorContext) : IrElementVisitorVoid {
|
||||
declaration.descriptor.backingField
|
||||
else declaration.descriptor
|
||||
|
||||
annotatedDescriptor?.annotations?.mapNotNullTo(declaration.annotations) {
|
||||
constantValueGenerator.generateAnnotationConstructorCall(it)
|
||||
if (annotatedDescriptor != null) {
|
||||
declaration.annotations += annotatedDescriptor.annotations.mapNotNull {
|
||||
constantValueGenerator.generateAnnotationConstructorCall(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ class ClassGenerator(
|
||||
).buildWithScope { irClass ->
|
||||
declarationGenerator.generateGlobalTypeParametersDeclarations(irClass, classDescriptor.declaredTypeParameters)
|
||||
|
||||
classDescriptor.typeConstructor.supertypes.mapTo(irClass.superTypes) {
|
||||
irClass.superTypes = classDescriptor.typeConstructor.supertypes.map {
|
||||
it.toIrType()
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -126,7 +126,7 @@ class DeclarationGenerator(override val context: GeneratorContext) : Generator {
|
||||
from: List<TypeParameterDescriptor>,
|
||||
declareTypeParameter: (Int, Int, TypeParameterDescriptor) -> IrTypeParameter
|
||||
) {
|
||||
from.mapTo(irTypeParametersOwner.typeParameters) { typeParameterDescriptor ->
|
||||
irTypeParametersOwner.typeParameters += from.map { typeParameterDescriptor ->
|
||||
val ktTypeParameterDeclaration = DescriptorToSourceUtils.getSourceFromDescriptor(typeParameterDescriptor)
|
||||
val startOffset = ktTypeParameterDeclaration.startOffsetOrUndefined
|
||||
val endOffset = ktTypeParameterDeclaration.endOffsetOrUndefined
|
||||
|
||||
+1
-1
@@ -286,7 +286,7 @@ class FunctionGenerator(declarationGenerator: DeclarationGenerator) : Declaratio
|
||||
val bodyGenerator = createBodyGenerator(irFunction.symbol)
|
||||
|
||||
// Declare all the value parameters up first.
|
||||
functionDescriptor.valueParameters.mapTo(irFunction.valueParameters) { valueParameterDescriptor ->
|
||||
irFunction.valueParameters += functionDescriptor.valueParameters.map { valueParameterDescriptor ->
|
||||
val ktParameter = DescriptorToSourceUtils.getSourceFromDescriptor(valueParameterDescriptor) as? KtParameter
|
||||
declareParameter(valueParameterDescriptor, ktParameter, irFunction)
|
||||
}
|
||||
|
||||
@@ -71,7 +71,9 @@ class ModuleGenerator(override val context: GeneratorContext) : Generator {
|
||||
|
||||
for (ktAnnotationEntry in ktFile.annotationEntries) {
|
||||
val annotationDescriptor = getOrFail(BindingContext.ANNOTATION, ktAnnotationEntry)
|
||||
irFile.annotations.addIfNotNull(constantValueGenerator.generateAnnotationConstructorCall(annotationDescriptor))
|
||||
constantValueGenerator.generateAnnotationConstructorCall(annotationDescriptor)?.let {
|
||||
irFile.annotations += it
|
||||
}
|
||||
}
|
||||
|
||||
for (ktDeclaration in ktFile.declarations) {
|
||||
|
||||
+1
-1
@@ -379,7 +379,7 @@ class ReflectionReferencesGenerator(statementGenerator: StatementGenerator) : St
|
||||
irAdapterFun.dispatchReceiverParameter = null
|
||||
irAdapterFun.extensionReceiverParameter = null
|
||||
|
||||
ktExpectedParameterTypes.mapIndexedTo(irAdapterFun.valueParameters) { index, ktExpectedParameterType ->
|
||||
irAdapterFun.valueParameters += ktExpectedParameterTypes.mapIndexed { index, ktExpectedParameterType ->
|
||||
val adapterValueParameterDescriptor = WrappedValueParameterDescriptor()
|
||||
context.symbolTable.declareValueParameter(
|
||||
startOffset, endOffset,
|
||||
|
||||
Reference in New Issue
Block a user