Refactoring: move method

This commit is contained in:
Nikolay Krasko
2017-05-29 20:30:27 +03:00
parent cb4c840d3b
commit 45958e630d
2 changed files with 16 additions and 15 deletions
@@ -17,6 +17,8 @@
package org.jetbrains.kotlin.idea.debugger
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.sun.jdi.*
import com.sun.tools.jdi.LocalVariableImpl
@@ -52,6 +54,16 @@ fun isInsideInlineArgument(inlineArgument: KtFunction, location: Location, debug
} != 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 {
val type = CodegenBinding.asmTypeForAnonymousClass(context, elementAt)
return type.className.substringAfterLast("$").toInt()