From a882cd98ead14126023873a85efbf26f426dbbfc Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Fri, 24 Jan 2020 16:27:42 +0300 Subject: [PATCH] [FIR] Drop duplicate edges in fir tree graph --- .../jetbrains/kotlin/fir/tree/generator/Main.kt | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/Main.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/Main.kt index 70f0885a237..36669dce018 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/Main.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/Main.kt @@ -36,6 +36,12 @@ private fun printInterfaceClassGraph(builder: AbstractFirTreeBuilder) { } val elements = builder.elements + builder.elements.flatMap { it.allParents } + data class Edge(val from: String, val to: String) { + override fun toString(): String { + return "$from -> $to" + } + } + File("FirTree.dot").printWriter().use { printer -> with(printer) { println("digraph FirTree {") @@ -43,11 +49,17 @@ private fun printInterfaceClassGraph(builder: AbstractFirTreeBuilder) { println(" ${it.type} [color=${it.kind!!.toColor()}]") } println() + val edges = mutableSetOf() elements.forEach { element -> element.allParents.forEach { parent -> - println(" ${parent.type} -> ${element.type}") + edges += Edge(parent.type, element.type) } } + edges.forEach { + print(" ") + println(it) + } + println("}") } }