[Analysis API] Optimize the rendering logic in `org.jetbrains.kotlin.analysis.api.symbols.DebugSymbolRenderer.renderModule`
This change is needed after the introduction of `KaModuleBase`.
That's because now implementations of `KaModule` might have several supertypes, which are subtypes of `KaModule` (one of them being `KaModuleBase`).
It leads to the `KaModule` class being put before a more narrow `KaModule` API type that is present in `kaModuleApiSubclasses`.
That's why we need to iterate through `kaModuleApiSubclasses` instead, as this list is sorted by the subtyping relation.
^KT-73290
diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/DebugSymbolRenderer.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/DebugSymbolRenderer.kt
index 3ddb432..ad54bac 100644
--- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/DebugSymbolRenderer.kt
+++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/DebugSymbolRenderer.kt
@@ -412,7 +412,7 @@
private fun renderModule(module: KaModule, printer: PrettyPrinter) {
val apiClass = when (val moduleClass = module::class) {
in kaModuleApiSubclasses -> moduleClass
- else -> moduleClass.allSuperclasses.first { it in kaModuleApiSubclasses }
+ else -> kaModuleApiSubclasses.first { it in moduleClass.allSuperclasses }
}
printer.append(apiClass.simpleName + " \"" + module.moduleDescription + "\"")
}