[IR] Mark IrConstructorCall as AnnotationMarker

IrConstructorCall is already used to represent both regular constructor
call and annotations.
Implementing AnnotationMarker avoids 'casting' it to this type later on
 in IrTypeSystemContext, which was done with
 a new IrElement implementation. We'd like to
 avoid such implementations, e.g. as so to make the IR hierarchy sealed.

#KT-65773 In Progress
This commit is contained in:
Wojciech Litewka
2024-03-04 12:00:47 +01:00
committed by Space Team
parent bfbc33e3f6
commit 1c17219a7b
3 changed files with 7 additions and 5 deletions
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
import org.jetbrains.kotlin.types.Variance
import org.jetbrains.kotlin.types.model.AnnotationMarker
import org.jetbrains.kotlin.utils.withIndent
// Note the style of the DSL to describe IR elements, which is these things in the following order:
@@ -800,6 +801,7 @@ object IrTree : AbstractTreeBuilder() {
transformerReturnType = rootElement
parent(functionAccessExpression)
parent(type<AnnotationMarker>())
+symbol(constructorSymbolType, mutable = true)
+field("source", type<SourceElement>()) {