(CoroutineDebugger) executionContext added to ContinuationVariableValueDescriptor
This commit is contained in:
+12
-3
@@ -12,13 +12,19 @@ import com.intellij.debugger.ui.impl.watch.ValueDescriptorImpl
|
|||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.sun.jdi.ObjectReference
|
import com.sun.jdi.ObjectReference
|
||||||
import com.sun.jdi.Value
|
import com.sun.jdi.Value
|
||||||
|
import org.jetbrains.kotlin.idea.debugger.evaluate.DefaultExecutionContext
|
||||||
|
|
||||||
class ContinuationValueDescriptorImpl(
|
class ContinuationVariableValueDescriptorImpl(
|
||||||
project: Project,
|
val defaultExecutionContext: DefaultExecutionContext,
|
||||||
val continuation: ObjectReference,
|
val continuation: ObjectReference,
|
||||||
val fieldName: String,
|
val fieldName: String,
|
||||||
private val variableName: String
|
private val variableName: String
|
||||||
) : ValueDescriptorImpl(project) {
|
) : ValueDescriptorImpl(defaultExecutionContext.project) {
|
||||||
|
|
||||||
|
init {
|
||||||
|
setContext(defaultExecutionContext.evaluationContext)
|
||||||
|
}
|
||||||
|
|
||||||
override fun calcValueName() = variableName
|
override fun calcValueName() = variableName
|
||||||
|
|
||||||
override fun calcValue(evaluationContext: EvaluationContextImpl?): Value? {
|
override fun calcValue(evaluationContext: EvaluationContextImpl?): Value? {
|
||||||
@@ -26,6 +32,9 @@ class ContinuationValueDescriptorImpl(
|
|||||||
return continuation.getValue(field)
|
return continuation.getValue(field)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @TODO implement
|
||||||
|
*/
|
||||||
override fun getDescriptorEvaluation(context: DebuggerContext?) =
|
override fun getDescriptorEvaluation(context: DebuggerContext?) =
|
||||||
throw EvaluateException("Spilled variable evaluation is not supported")
|
throw EvaluateException("Spilled variable evaluation is not supported")
|
||||||
}
|
}
|
||||||
+2
-2
@@ -119,8 +119,8 @@ fun MirrorOfBaseContinuationImpl.spilledValues(context: DefaultExecutionContext)
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun FieldVariable.toJavaValue(continuation: ObjectReference, context: DefaultExecutionContext): JavaValue {
|
fun FieldVariable.toJavaValue(continuation: ObjectReference, context: DefaultExecutionContext): JavaValue {
|
||||||
val valueDescriptor = ContinuationValueDescriptorImpl(
|
val valueDescriptor = ContinuationVariableValueDescriptorImpl(
|
||||||
context.project,
|
context,
|
||||||
continuation,
|
continuation,
|
||||||
fieldName,
|
fieldName,
|
||||||
variableName
|
variableName
|
||||||
|
|||||||
Reference in New Issue
Block a user