[IR] Initialize IrFunction.returnType eagerly, when possible
This commit is contained in:
committed by
Space Team
parent
392fa8f9bd
commit
e9005e4fed
+1
-2
@@ -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()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-2
@@ -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
|
||||||
|
|||||||
+1
-2
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user