Don't file an exception if we failed to calculate the anonymous class name

This commit is contained in:
Yan Zhulanow
2019-03-05 21:36:07 +03:00
parent fd3fab5bcc
commit 97f94700b9
@@ -35,7 +35,6 @@ import org.jetbrains.kotlin.idea.debugger.evaluate.KotlinDebuggerCaches.Computed
import org.jetbrains.kotlin.idea.debugger.evaluate.KotlinDebuggerCaches.ComputedClassNames.Companion.Cached import org.jetbrains.kotlin.idea.debugger.evaluate.KotlinDebuggerCaches.ComputedClassNames.Companion.Cached
import org.jetbrains.kotlin.idea.debugger.evaluate.KotlinDebuggerCaches.ComputedClassNames.Companion.EMPTY import org.jetbrains.kotlin.idea.debugger.evaluate.KotlinDebuggerCaches.ComputedClassNames.Companion.EMPTY
import org.jetbrains.kotlin.idea.debugger.evaluate.KotlinDebuggerCaches.ComputedClassNames.Companion.NonCached import org.jetbrains.kotlin.idea.debugger.evaluate.KotlinDebuggerCaches.ComputedClassNames.Companion.NonCached
import org.jetbrains.kotlin.idea.debugger.evaluate.LOG
import org.jetbrains.kotlin.idea.util.application.runReadAction import org.jetbrains.kotlin.idea.util.application.runReadAction
import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.load.java.JvmAbi import org.jetbrains.kotlin.load.java.JvmAbi
@@ -192,20 +191,14 @@ class DebuggerClassNameProvider(
is KtNamedFunction -> { is KtNamedFunction -> {
val classNamesOfContainingDeclaration = getOuterClassNamesForElement(element.relevantParentInReadAction) val classNamesOfContainingDeclaration = getOuterClassNamesForElement(element.relevantParentInReadAction)
val nonInlineClasses: ComputedClassNames = var nonInlineClasses: ComputedClassNames = classNamesOfContainingDeclaration
if (runReadAction { element.name == null || element.isLocal }) {
val nameOfAnonymousClass = runReadAction { getClassType(element) }
if (nameOfAnonymousClass == null) { if (runReadAction { element.name == null || element.isLocal }) {
val parentText = runReadAction { getRelevantElement(element.parent)?.text } ?: "<parent was null>" val nameOfAnonymousClass = runReadAction { getClassType(element) }
LOG.error("Can not get type for ${runReadAction { element.text }}, parent: $parentText") if (nameOfAnonymousClass != null) {
classNamesOfContainingDeclaration nonInlineClasses += Cached(nameOfAnonymousClass)
} else {
classNamesOfContainingDeclaration + Cached(nameOfAnonymousClass)
}
} else {
classNamesOfContainingDeclaration
} }
}
if (!findInlineUseSites || !element.isInlineInReadAction) { if (!findInlineUseSites || !element.isInlineInReadAction) {
return NonCached(nonInlineClasses.classNames) return NonCached(nonInlineClasses.classNames)