From c1b70a730385b65098edfabb74c9051df527514b Mon Sep 17 00:00:00 2001 From: Vladimir Dolzhenko Date: Sat, 8 Jul 2023 07:18:09 +0000 Subject: [PATCH] Move under debug log message when nested class is not found To avoid freezes and useless reporting calculations #KTIJ-25465 Fixed Merge-request: KT-MR-10996 Merged-by: Vladimir Dolzhenko --- .../decompiler/stub/ClassClsStubBuilder.kt | 38 ++++++++++--------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/analysis/decompiled/decompiler-to-stubs/src/org/jetbrains/kotlin/analysis/decompiler/stub/ClassClsStubBuilder.kt b/analysis/decompiled/decompiler-to-stubs/src/org/jetbrains/kotlin/analysis/decompiler/stub/ClassClsStubBuilder.kt index 5c31ab3e158..7d43e56ab58 100644 --- a/analysis/decompiled/decompiler-to-stubs/src/org/jetbrains/kotlin/analysis/decompiler/stub/ClassClsStubBuilder.kt +++ b/analysis/decompiled/decompiler-to-stubs/src/org/jetbrains/kotlin/analysis/decompiler/stub/ClassClsStubBuilder.kt @@ -253,25 +253,27 @@ private class ClassClsStubBuilder( val (nameResolver, classProto, _, sourceElement) = c.components.classDataFinder.findClassData(nestedClassId) ?: c.components.virtualFileForDebug.let { rootFile -> - val outerClassId = nestedClassId.outerClassId - val sortedChildren = rootFile.parent.children.sortedBy { it.name } - val msgPrefix = "Could not find data for nested class $nestedClassId of class $outerClassId\n" - val explanation = when { - outerClassId != null && sortedChildren.none { it.name.startsWith("${outerClassId.relativeClassName}\$a") } -> - // KT-29427: case with obfuscation - "Reason: obfuscation suspected (single-letter name)\n" - else -> - // General case - "" + if (LOG.isDebugEnabled) { + val outerClassId = nestedClassId.outerClassId + val sortedChildren = rootFile.parent.children.sortedBy { it.name } + val msgPrefix = "Could not find data for nested class $nestedClassId of class $outerClassId\n" + val explanation = when { + outerClassId != null && sortedChildren.none { it.name.startsWith("${outerClassId.relativeClassName}\$a") } -> + // KT-29427: case with obfuscation + "Reason: obfuscation suspected (single-letter name)\n" + else -> + // General case + "" + } + val msg = msgPrefix + explanation + + "Root file: ${rootFile.canonicalPath}\n" + + "Dir: ${rootFile.parent.canonicalPath}\n" + + "Children:\n" + + sortedChildren.joinToString(separator = "\n") { + "${it.name} (valid: ${it.isValid})" + } + LOG.debug(msg) } - val msg = msgPrefix + explanation + - "Root file: ${rootFile.canonicalPath}\n" + - "Dir: ${rootFile.parent.canonicalPath}\n" + - "Children:\n" + - sortedChildren.joinToString(separator = "\n") { - "${it.name} (valid: ${it.isValid})" - } - LOG.info(msg) return } createClassStub(classBody, classProto, nameResolver, nestedClassId, sourceElement, c)