diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/DebuggerClassNameProvider.kt b/idea/src/org/jetbrains/kotlin/idea/debugger/DebuggerClassNameProvider.kt index 511d4b78f22..a8cf16ef169 100644 --- a/idea/src/org/jetbrains/kotlin/idea/debugger/DebuggerClassNameProvider.kt +++ b/idea/src/org/jetbrains/kotlin/idea/debugger/DebuggerClassNameProvider.kt @@ -25,7 +25,6 @@ import com.intellij.openapi.project.DumbService import com.intellij.openapi.roots.libraries.LibraryUtil import com.intellij.openapi.ui.MessageType import com.intellij.psi.PsiElement -import com.intellij.psi.PsiFile import com.intellij.psi.search.GlobalSearchScope import com.intellij.psi.search.searches.ReferencesSearch import com.intellij.psi.util.PsiTreeUtil @@ -47,16 +46,15 @@ import org.jetbrains.kotlin.idea.debugger.evaluate.KotlinDebuggerCaches.Computed import org.jetbrains.kotlin.idea.search.usagesSearch.isImportUsage import org.jetbrains.kotlin.idea.util.ProjectRootsUtil import org.jetbrains.kotlin.idea.util.application.runReadAction +import org.jetbrains.kotlin.idea.util.getResolutionScope import org.jetbrains.kotlin.load.java.JvmAbi import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.parents -import org.jetbrains.kotlin.psi.psiUtil.parentsWithSelf import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall import org.jetbrains.kotlin.resolve.inline.InlineUtil -import org.jetbrains.kotlin.resolve.scopes.LexicalScope import org.jetbrains.kotlin.resolve.scopes.LexicalScopeKind import org.jetbrains.kotlin.resolve.source.getPsi import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull @@ -222,7 +220,7 @@ class DebuggerClassNameProvider(val myDebugProcess: DebugProcess, val scopes: Li }?.first } ?: return emptyList() - val lexicalScope = runReadAction { inlineCall.getExpressionResolutionScope(context) } ?: return emptyList() + val lexicalScope = runReadAction { inlineCall.getResolutionScope(context) } ?: return emptyList() val baseClassName = classNamesForPosition(inlineCall, false).firstOrNull() ?: return emptyList() val resolvedCall = runReadAction { inlineCall.getResolvedCall(context) } ?: return emptyList() @@ -431,11 +429,4 @@ private fun String.substringIndex(): String { return substringBeforeLast("$") + "$" } return this -} - -private fun KtCallExpression.getExpressionResolutionScope(bindingContext: BindingContext): LexicalScope? { - return parentsWithSelf - .takeWhile { it !is KtClassBody && it !is KtBlockExpression && it !is PsiFile } - .map { if (it is KtElement) bindingContext[BindingContext.LEXICAL_SCOPE, it] else null } - .firstOrNull { it != null } } \ No newline at end of file