From 396451b5da62ee7689efb930b5ec5fbfdb0348f2 Mon Sep 17 00:00:00 2001 From: Sergej Jaskiewicz Date: Thu, 16 Mar 2023 14:55:36 +0100 Subject: [PATCH] [IR] Support specifying kdocs for properties in IR tree generator --- .../org/jetbrains/kotlin/ir/generator/config/ConfigModel.kt | 2 ++ .../src/org/jetbrains/kotlin/ir/generator/model/Model.kt | 2 ++ .../src/org/jetbrains/kotlin/ir/generator/print/Elements.kt | 4 ++++ 3 files changed, 8 insertions(+) diff --git a/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/config/ConfigModel.kt b/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/config/ConfigModel.kt index 2d52e01b37b..8a8c23b6d91 100644 --- a/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/config/ConfigModel.kt +++ b/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/config/ConfigModel.kt @@ -91,6 +91,8 @@ sealed class FieldConfig( var printProperty = true var strictCastInTransformChildren = false + var kdoc: String? = null + var generationCallback: (PropertySpec.Builder.() -> Unit)? = null override fun toString() = name diff --git a/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/model/Model.kt b/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/model/Model.kt index 339d86a205a..dd5af81d7ac 100644 --- a/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/model/Model.kt +++ b/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/model/Model.kt @@ -84,6 +84,8 @@ sealed class Field( var needsDescriptorApiAnnotation = false abstract val transformable: Boolean + val kdoc = config?.kdoc + val printProperty = config?.printProperty ?: true val generationCallback = config?.generationCallback diff --git a/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/print/Elements.kt b/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/print/Elements.kt index 7ce750f7b9c..7827d084f5b 100644 --- a/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/print/Elements.kt +++ b/compiler/ir/ir.tree/tree-generator/src/org/jetbrains/kotlin/ir/generator/print/Elements.kt @@ -67,6 +67,10 @@ fun printElements(generationPath: File, model: Model) = sequence { addAnnotation(descriptorApiAnnotation) } + field.kdoc?.let { + addKdoc(it) + } + field.generationCallback?.invoke(this) }.build()) }