Refactoring: move method
This commit is contained in:
@@ -17,6 +17,8 @@
|
|||||||
package org.jetbrains.kotlin.idea.debugger
|
package org.jetbrains.kotlin.idea.debugger
|
||||||
|
|
||||||
import com.intellij.debugger.engine.DebugProcessImpl
|
import com.intellij.debugger.engine.DebugProcessImpl
|
||||||
|
import com.intellij.debugger.engine.events.DebuggerCommandImpl
|
||||||
|
import com.intellij.debugger.impl.DebuggerContextImpl
|
||||||
import com.intellij.debugger.jdi.LocalVariableProxyImpl
|
import com.intellij.debugger.jdi.LocalVariableProxyImpl
|
||||||
import com.sun.jdi.*
|
import com.sun.jdi.*
|
||||||
import com.sun.tools.jdi.LocalVariableImpl
|
import com.sun.tools.jdi.LocalVariableImpl
|
||||||
@@ -52,6 +54,16 @@ fun isInsideInlineArgument(inlineArgument: KtFunction, location: Location, debug
|
|||||||
} != null
|
} != null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun <T: Any> DebugProcessImpl.invokeInManagerThread(f: (DebuggerContextImpl) -> T?): T? {
|
||||||
|
var result: T? = null
|
||||||
|
managerThread.invokeAndWait(object : DebuggerCommandImpl() {
|
||||||
|
override fun action() {
|
||||||
|
result = runReadAction { f(debuggerContext) }
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
private fun lambdaOrdinalByArgument(elementAt: KtFunction, context: BindingContext): Int {
|
private fun lambdaOrdinalByArgument(elementAt: KtFunction, context: BindingContext): Int {
|
||||||
val type = CodegenBinding.asmTypeForAnonymousClass(context, elementAt)
|
val type = CodegenBinding.asmTypeForAnonymousClass(context, elementAt)
|
||||||
return type.className.substringAfterLast("$").toInt()
|
return type.className.substringAfterLast("$").toInt()
|
||||||
|
|||||||
+4
-15
@@ -23,8 +23,6 @@ import com.intellij.debugger.engine.evaluation.EvaluateException
|
|||||||
import com.intellij.debugger.engine.evaluation.TextWithImports
|
import com.intellij.debugger.engine.evaluation.TextWithImports
|
||||||
import com.intellij.debugger.engine.evaluation.TextWithImportsImpl
|
import com.intellij.debugger.engine.evaluation.TextWithImportsImpl
|
||||||
import com.intellij.debugger.engine.evaluation.expression.EvaluatorBuilderImpl
|
import com.intellij.debugger.engine.evaluation.expression.EvaluatorBuilderImpl
|
||||||
import com.intellij.debugger.engine.events.DebuggerCommandImpl
|
|
||||||
import com.intellij.debugger.impl.DebuggerContextImpl
|
|
||||||
import com.intellij.debugger.settings.NodeRendererSettings
|
import com.intellij.debugger.settings.NodeRendererSettings
|
||||||
import com.intellij.debugger.ui.impl.watch.*
|
import com.intellij.debugger.ui.impl.watch.*
|
||||||
import com.intellij.debugger.ui.tree.*
|
import com.intellij.debugger.ui.tree.*
|
||||||
@@ -55,6 +53,7 @@ import org.jetbrains.kotlin.idea.KotlinFileType
|
|||||||
import org.jetbrains.kotlin.idea.debugger.KotlinDebuggerTestBase
|
import org.jetbrains.kotlin.idea.debugger.KotlinDebuggerTestBase
|
||||||
import org.jetbrains.kotlin.idea.debugger.KotlinFrameExtraVariablesProvider
|
import org.jetbrains.kotlin.idea.debugger.KotlinFrameExtraVariablesProvider
|
||||||
import org.jetbrains.kotlin.idea.debugger.evaluate.AbstractKotlinEvaluateExpressionTest.PrinterConfig.DescriptorViewOptions
|
import org.jetbrains.kotlin.idea.debugger.evaluate.AbstractKotlinEvaluateExpressionTest.PrinterConfig.DescriptorViewOptions
|
||||||
|
import org.jetbrains.kotlin.idea.debugger.invokeInManagerThread
|
||||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||||
import org.jetbrains.kotlin.test.InTextDirectivesUtils.*
|
import org.jetbrains.kotlin.test.InTextDirectivesUtils.*
|
||||||
import org.junit.Assert
|
import org.junit.Assert
|
||||||
@@ -316,14 +315,14 @@ abstract class AbstractKotlinEvaluateExpressionTest : KotlinDebuggerTestBase() {
|
|||||||
append(getPrefix(descriptor))
|
append(getPrefix(descriptor))
|
||||||
append(label)
|
append(label)
|
||||||
if (config.shouldRenderSourcesPosition() && hasSourcePosition(descriptor)) {
|
if (config.shouldRenderSourcesPosition() && hasSourcePosition(descriptor)) {
|
||||||
val sp = invokeInManagerThread {
|
val sp = debugProcess.invokeInManagerThread {
|
||||||
SourcePositionProvider.getSourcePosition(descriptor, myProject, debuggerContext)
|
SourcePositionProvider.getSourcePosition(descriptor, myProject, debuggerContext)
|
||||||
}
|
}
|
||||||
append(" (sp = ${render(sp)})")
|
append(" (sp = ${render(sp)})")
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config.shouldRenderExpression() && descriptor is ValueDescriptorImpl) {
|
if (config.shouldRenderExpression() && descriptor is ValueDescriptorImpl) {
|
||||||
val expression = invokeInManagerThread {
|
val expression = debugProcess.invokeInManagerThread {
|
||||||
descriptor.getTreeEvaluation((node as XValueNodeImpl).valueContainer as JavaValue, it) as? PsiExpression
|
descriptor.getTreeEvaluation((node as XValueNodeImpl).valueContainer as JavaValue, it) as? PsiExpression
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -338,7 +337,7 @@ abstract class AbstractKotlinEvaluateExpressionTest : KotlinDebuggerTestBase() {
|
|||||||
val codeFragmentText = codeFragment.text
|
val codeFragmentText = codeFragment.text
|
||||||
|
|
||||||
if (config.shouldComputeResultOfCreateExpression()) {
|
if (config.shouldComputeResultOfCreateExpression()) {
|
||||||
invokeInManagerThread {
|
debugProcess.invokeInManagerThread {
|
||||||
it.suspendContext?.evaluate(
|
it.suspendContext?.evaluate(
|
||||||
TextWithImportsImpl(text.kind, codeFragmentText, codeFragment.importsToString(), text.fileType),
|
TextWithImportsImpl(text.kind, codeFragmentText, codeFragment.importsToString(), text.fileType),
|
||||||
null)
|
null)
|
||||||
@@ -356,16 +355,6 @@ abstract class AbstractKotlinEvaluateExpressionTest : KotlinDebuggerTestBase() {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun <T: Any> invokeInManagerThread(f: (DebuggerContextImpl) -> T?): T? {
|
|
||||||
var result: T? = null
|
|
||||||
debuggerContext.debugProcess!!.managerThread.invokeAndWait(object : DebuggerCommandImpl() {
|
|
||||||
override fun action() {
|
|
||||||
result = runReadAction { f(debuggerContext) }
|
|
||||||
}
|
|
||||||
})
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun getPrefix(descriptor: NodeDescriptorImpl): String {
|
private fun getPrefix(descriptor: NodeDescriptorImpl): String {
|
||||||
val prefix = when (descriptor) {
|
val prefix = when (descriptor) {
|
||||||
is StackFrameDescriptor -> "frame"
|
is StackFrameDescriptor -> "frame"
|
||||||
|
|||||||
Reference in New Issue
Block a user