[FIR/IR generator] Add kDoc property to AbstractElement & AbstractField

This commit is contained in:
Sergej Jaskiewicz
2023-09-19 18:38:09 +02:00
committed by Space Team
parent 51325ba630
commit 7e7f4811bd
9 changed files with 36 additions and 3 deletions
@@ -30,6 +30,8 @@ class Element(override val name: String, kind: Kind) : AbstractElement<Element,
override val nullable: Boolean
get() = false
override var kDoc: String? = null
override val fields = mutableSetOf<Field>()
override val type: String = "Fir$name"
override val packageName: String = BASE_PACKAGE + kind.packageName.let { if (it.isBlank()) it else "." + it }
@@ -63,6 +63,7 @@ sealed class Field : AbstractField() {
}
copy.fromParent = fromParent
copy.parentHasSeparateTransform = parentHasSeparateTransform
copy.kDoc = kDoc
}
protected abstract fun internalCopy(): Field
@@ -39,6 +39,7 @@ fun SmartPrinter.printElement(element: Element) {
}
}
printKDoc(kDoc)
print("${kind!!.title} $type")
print(typeParameters())
val parentRefs = element.parentRefs
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.fir.tree.generator.printer
import org.jetbrains.kotlin.fir.tree.generator.model.Field
import org.jetbrains.kotlin.generators.tree.printer.printKDoc
import org.jetbrains.kotlin.utils.SmartPrinter
import org.jetbrains.kotlin.utils.withIndent
@@ -17,6 +18,10 @@ fun SmartPrinter.printField(
inConstructor: Boolean = false,
modifiers: SmartPrinter.() -> Unit = {},
) {
if (!override && field.kDoc != null) {
println()
printKDoc(field.kDoc)
}
if (!field.isVal && field.isVolatile) {
println("@Volatile")
}