[FIR2IR] Don't create list under the hood in DelegatedMemberGenerator

This commit is contained in:
Mikhail Glukhikh
2020-08-27 18:06:58 +03:00
parent 5384ccf02f
commit 9ad55a0ee3
@@ -203,9 +203,9 @@ internal class DelegatedMemberGenerator(
val substParameters = mutableListOf<IrTypeParameterSymbol>() val substParameters = mutableListOf<IrTypeParameterSymbol>()
val substArguments = mutableListOf<IrTypeArgument>() val substArguments = mutableListOf<IrTypeArgument>()
initializeTypeSubstitution(substParameters, substArguments, irField.type) initializeTypeSubstitution(substParameters, substArguments, irField.type)
superFunction.typeParameters.forEach { typeParameter -> typeParameters = superFunction.typeParameters.map { typeParameter ->
val parameterDescriptor = WrappedTypeParameterDescriptor() val parameterDescriptor = WrappedTypeParameterDescriptor()
typeParameters += symbolTable.declareScopedTypeParameter( symbolTable.declareScopedTypeParameter(
startOffset, endOffset, origin, parameterDescriptor startOffset, endOffset, origin, parameterDescriptor
) { symbol -> ) { symbol ->
irFactory.createTypeParameter( irFactory.createTypeParameter(
@@ -232,10 +232,10 @@ internal class DelegatedMemberGenerator(
} }
irTypeSubstitutor = IrTypeSubstitutor(substParameters, substArguments, irBuiltIns) irTypeSubstitutor = IrTypeSubstitutor(substParameters, substArguments, irBuiltIns)
} }
superFunction.valueParameters.forEach { valueParameter -> valueParameters = superFunction.valueParameters.map { valueParameter ->
val parameterDescriptor = WrappedValueParameterDescriptor() val parameterDescriptor = WrappedValueParameterDescriptor()
val substedType = if (addTypeSubstitution) irTypeSubstitutor.substitute(valueParameter.type) else valueParameter.type val substedType = if (addTypeSubstitution) irTypeSubstitutor.substitute(valueParameter.type) else valueParameter.type
valueParameters += symbolTable.declareValueParameter( symbolTable.declareValueParameter(
startOffset, endOffset, origin, parameterDescriptor, substedType startOffset, endOffset, origin, parameterDescriptor, substedType
) { symbol -> ) { symbol ->
irFactory.createValueParameter( irFactory.createValueParameter(