(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.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")
} }
@@ -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