diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/renderer/FirGetClassCallRenderer.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/renderer/FirGetClassCallRenderer.kt new file mode 100644 index 00000000000..4f6801d0cff --- /dev/null +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/renderer/FirGetClassCallRenderer.kt @@ -0,0 +1,14 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.fir.renderer + +import org.jetbrains.kotlin.fir.expressions.FirGetClassCall + +abstract class FirGetClassCallRenderer { + internal lateinit var components: FirRendererComponents + + internal abstract fun render(getClassCall: FirGetClassCall) +} diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/renderer/FirGetClassCallRendererForDebugging.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/renderer/FirGetClassCallRendererForDebugging.kt new file mode 100644 index 00000000000..5d952e251f9 --- /dev/null +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/renderer/FirGetClassCallRendererForDebugging.kt @@ -0,0 +1,16 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.fir.renderer + +import org.jetbrains.kotlin.fir.expressions.FirGetClassCall + +internal class FirGetClassCallRendererForDebugging : FirGetClassCallRenderer() { + override fun render(getClassCall: FirGetClassCall) { + components.annotationRenderer?.render(getClassCall) + components.printer.print("") + components.visitor.visitCall(getClassCall) + } +} diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/renderer/FirRenderer.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/renderer/FirRenderer.kt index 4748f94413b..041d5eed82b 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/renderer/FirRenderer.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/renderer/FirRenderer.kt @@ -47,6 +47,7 @@ class FirRenderer( override val resolvedNamedReferenceRenderer: FirResolvedNamedReferenceRenderer = FirResolvedNamedReferenceRendererWithLabel(), override val resolvedQualifierRenderer: FirResolvedQualifierRenderer = FirResolvedQualifierRendererWithLabel(), private val lineBreakAfterContextReceivers: Boolean = true, + override val getClassCallRenderer: FirGetClassCallRenderer = FirGetClassCallRendererForDebugging(), ) : FirRendererComponents { override val visitor = Visitor() @@ -101,6 +102,7 @@ class FirRenderer( fileAnnotationsContainerRenderer?.components = this resolvedNamedReferenceRenderer.components = this resolvedQualifierRenderer.components = this + getClassCallRenderer.components = this } fun renderElementAsString(element: FirElement, trim: Boolean = false): String { @@ -1114,9 +1116,7 @@ class FirRenderer( } override fun visitGetClassCall(getClassCall: FirGetClassCall) { - annotationRenderer?.render(getClassCall) - print("") - visitCall(getClassCall) + getClassCallRenderer.render(getClassCall) } override fun visitClassReferenceExpression(classReferenceExpression: FirClassReferenceExpression) { diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/renderer/FirRendererComponents.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/renderer/FirRendererComponents.kt index e7c0d276781..ff449fb4d15 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/renderer/FirRendererComponents.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/renderer/FirRendererComponents.kt @@ -28,4 +28,5 @@ internal interface FirRendererComponents { val fileAnnotationsContainerRenderer: FirFileAnnotationsContainerRenderer? val resolvedNamedReferenceRenderer: FirResolvedNamedReferenceRenderer val resolvedQualifierRenderer: FirResolvedQualifierRenderer + val getClassCallRenderer: FirGetClassCallRenderer } \ No newline at end of file