[IR] Initialize IrFunction.returnType eagerly, when possible

This commit is contained in:
Wojciech Litewka
2024-03-07 11:54:06 +01:00
committed by Space Team
parent 392fa8f9bd
commit e9005e4fed
3 changed files with 3 additions and 6 deletions
@@ -296,7 +296,7 @@ internal class FunctionGenerator(declarationGenerator: DeclarationGenerator) : D
visibility = visibility, visibility = visibility,
isInline = isInline, isInline = isInline,
isExpect = isExpect, isExpect = isExpect,
returnType = null, returnType = constructorDescriptor.returnType.toIrType(),
symbol = it, symbol = it,
isPrimary = isPrimary, isPrimary = isPrimary,
isExternal = isEffectivelyExternal(), isExternal = isEffectivelyExternal(),
@@ -310,7 +310,6 @@ internal class FunctionGenerator(declarationGenerator: DeclarationGenerator) : D
if (context.configuration.generateBodies) { if (context.configuration.generateBodies) {
irConstructor.body = createBodyGenerator(irConstructor.symbol).generateBody(irConstructor) irConstructor.body = createBodyGenerator(irConstructor.symbol).generateBody(irConstructor)
} }
irConstructor.returnType = constructorDescriptor.returnType.toIrType()
} }
} }
@@ -180,7 +180,7 @@ internal class StandaloneDeclarationGenerator(private val context: GeneratorCont
visibility = visibility, visibility = visibility,
isInline = isInline, isInline = isInline,
isExpect = isExpect, isExpect = isExpect,
returnType = null, returnType = descriptor.returnType.toIrType(),
symbol = symbol, symbol = symbol,
isPrimary = isPrimary, isPrimary = isPrimary,
isExternal = isEffectivelyExternal(), isExternal = isEffectivelyExternal(),
@@ -192,7 +192,6 @@ internal class StandaloneDeclarationGenerator(private val context: GeneratorCont
val ctorTypeParameters = descriptor.typeParameters.filter { it.containingDeclaration === descriptor } val ctorTypeParameters = descriptor.typeParameters.filter { it.containingDeclaration === descriptor }
generateScopedTypeParameterDeclarations(irConstructor, ctorTypeParameters) generateScopedTypeParameterDeclarations(irConstructor, ctorTypeParameters)
generateValueParameterDeclarations(irConstructor, descriptor, defaultArgumentFactory) generateValueParameterDeclarations(irConstructor, descriptor, defaultArgumentFactory)
irConstructor.returnType = descriptor.returnType.toIrType()
} }
return irConstructor return irConstructor
@@ -94,7 +94,7 @@ internal interface DescriptorToIrTranslationMixin {
visibility, visibility,
isInline, isInline,
isExpect, isExpect,
null, constructorDescriptor.returnType.toIrType(),
it, it,
isPrimary, isPrimary,
isEffectivelyExternal(), isEffectivelyExternal(),
@@ -109,7 +109,6 @@ internal interface DescriptorToIrTranslationMixin {
it.parent = irConstructor it.parent = irConstructor
} }
} }
irConstructor.returnType = constructorDescriptor.returnType.toIrType()
irConstructor.generateAnnotations() irConstructor.generateAnnotations()
return irConstructor return irConstructor
} }