(CoroutineDebugger) executionContext added to ContinuationVariableValueDescriptor

This commit is contained in:
Vladimir Ilmov
2020-05-23 14:31:05 +02:00
parent 257c4c5604
commit 7a70f8d29e
2 changed files with 14 additions and 5 deletions
@@ -12,13 +12,19 @@ import com.intellij.debugger.ui.impl.watch.ValueDescriptorImpl
import com.intellij.openapi.project.Project
import com.sun.jdi.ObjectReference
import com.sun.jdi.Value
import org.jetbrains.kotlin.idea.debugger.evaluate.DefaultExecutionContext
class ContinuationValueDescriptorImpl(
project: Project,
class ContinuationVariableValueDescriptorImpl(
val defaultExecutionContext: DefaultExecutionContext,
val continuation: ObjectReference,
val fieldName: String,
private val variableName: String
) : ValueDescriptorImpl(project) {
) : ValueDescriptorImpl(defaultExecutionContext.project) {
init {
setContext(defaultExecutionContext.evaluationContext)
}
override fun calcValueName() = variableName
override fun calcValue(evaluationContext: EvaluationContextImpl?): Value? {
@@ -26,6 +32,9 @@ class ContinuationValueDescriptorImpl(
return continuation.getValue(field)
}
/**
* @TODO implement
*/
override fun getDescriptorEvaluation(context: DebuggerContext?) =
throw EvaluateException("Spilled variable evaluation is not supported")
}
@@ -119,8 +119,8 @@ fun MirrorOfBaseContinuationImpl.spilledValues(context: DefaultExecutionContext)
}
fun FieldVariable.toJavaValue(continuation: ObjectReference, context: DefaultExecutionContext): JavaValue {
val valueDescriptor = ContinuationValueDescriptorImpl(
context.project,
val valueDescriptor = ContinuationVariableValueDescriptorImpl(
context,
continuation,
fieldName,
variableName