[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
@@ -16,6 +16,8 @@ abstract class AbstractElement<Element, Field> : ElementOrRef<Element, Field>, F
abstract val name: String
abstract val kDoc: String?
abstract val fields: Set<Field>
abstract val params: List<TypeVariable>
@@ -14,6 +14,8 @@ abstract class AbstractField {
val nullable: Boolean
get() = typeRef.nullable
var kDoc: String? = null
abstract val isVolatile: Boolean
abstract val isFinal: Boolean
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.generators.tree.printer
import org.jetbrains.kotlin.generators.tree.AbstractElement
import org.jetbrains.kotlin.generators.tree.ImplementationKind
import org.jetbrains.kotlin.utils.SmartPrinter
/**
* The angle bracket-delimited list of type parameters to print, or empty string if the element has no type parameters.
@@ -51,3 +52,18 @@ val AbstractElement<*, *>.generics: String
get() = params.takeIf { it.isNotEmpty() }
?.let { it.joinToString(", ", "<", ">") { it.name } }
?: ""
fun SmartPrinter.printKDoc(kDoc: String?) {
if (kDoc == null) return
println("/**")
for (line in kDoc.lineSequence()) {
print(" *")
if (line.isBlank()) {
println()
} else {
print(" ")
println(line)
}
}
println(" */")
}