Minor: Extract a const for continuation variable name
This commit is contained in:
+1
-1
@@ -322,7 +322,7 @@ class CoroutineTransformerMethodVisitor(
|
|||||||
methodNode.instructions.insert(methodNode.instructions.last, endLabel)
|
methodNode.instructions.insert(methodNode.instructions.last, endLabel)
|
||||||
methodNode.localVariables.add(
|
methodNode.localVariables.add(
|
||||||
LocalVariableNode(
|
LocalVariableNode(
|
||||||
"\$continuation",
|
CONTINUATION_VARIABLE_NAME,
|
||||||
languageVersionSettings.continuationAsmType().descriptor,
|
languageVersionSettings.continuationAsmType().descriptor,
|
||||||
null,
|
null,
|
||||||
startLabel,
|
startLabel,
|
||||||
|
|||||||
@@ -124,6 +124,8 @@ val INITIAL_SUSPEND_DESCRIPTOR_FOR_DO_RESUME = object : CallableDescriptor.UserD
|
|||||||
|
|
||||||
val CONTINUATION_PARAMETER_NAME = Name.identifier("continuation")
|
val CONTINUATION_PARAMETER_NAME = Name.identifier("continuation")
|
||||||
|
|
||||||
|
const val CONTINUATION_VARIABLE_NAME = "\$continuation"
|
||||||
|
|
||||||
// Resolved calls to suspension function contain descriptors as they visible within coroutines:
|
// Resolved calls to suspension function contain descriptors as they visible within coroutines:
|
||||||
// E.g. `fun <V> await(f: CompletableFuture<V>): V` instead of `fun <V> await(f: CompletableFuture<V>, machine: Continuation<V>): Unit`
|
// E.g. `fun <V> await(f: CompletableFuture<V>): V` instead of `fun <V> await(f: CompletableFuture<V>, machine: Continuation<V>): Unit`
|
||||||
// See `createJvmSuspendFunctionView` and it's usages for clarification
|
// See `createJvmSuspendFunctionView` and it's usages for clarification
|
||||||
|
|||||||
+2
-1
@@ -18,6 +18,7 @@ import com.intellij.debugger.memory.utils.StackFrameItem
|
|||||||
import com.intellij.debugger.ui.impl.watch.ValueDescriptorImpl
|
import com.intellij.debugger.ui.impl.watch.ValueDescriptorImpl
|
||||||
import com.intellij.xdebugger.frame.XNamedValue
|
import com.intellij.xdebugger.frame.XNamedValue
|
||||||
import com.sun.jdi.*
|
import com.sun.jdi.*
|
||||||
|
import org.jetbrains.kotlin.codegen.coroutines.CONTINUATION_VARIABLE_NAME
|
||||||
import org.jetbrains.kotlin.idea.debugger.evaluate.LOG
|
import org.jetbrains.kotlin.idea.debugger.evaluate.LOG
|
||||||
import org.jetbrains.kotlin.idea.debugger.evaluate.VariableFinder.Companion.SUSPEND_LAMBDA_CLASSES
|
import org.jetbrains.kotlin.idea.debugger.evaluate.VariableFinder.Companion.SUSPEND_LAMBDA_CLASSES
|
||||||
import org.jetbrains.kotlin.idea.debugger.evaluate.getInvokePolicy
|
import org.jetbrains.kotlin.idea.debugger.evaluate.getInvokePolicy
|
||||||
@@ -91,7 +92,7 @@ class KotlinCoroutinesAsyncStackTraceProvider : AsyncStackTraceProvider {
|
|||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
val continuationVariable = frameProxy.safeVisibleVariableByName("\$continuation") ?: return null
|
val continuationVariable = frameProxy.safeVisibleVariableByName(CONTINUATION_VARIABLE_NAME) ?: return null
|
||||||
val continuation = frameProxy.getValue(continuationVariable) as? ObjectReference ?: return null
|
val continuation = frameProxy.getValue(continuationVariable) as? ObjectReference ?: return null
|
||||||
|
|
||||||
return collectFrames(continuation)
|
return collectFrames(continuation)
|
||||||
|
|||||||
@@ -293,7 +293,7 @@ class VariableFinder private constructor(private val context: EvaluationContextI
|
|||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
val continuationVariable = frameProxy.safeVisibleVariableByName("\$continuation") ?: return null
|
val continuationVariable = frameProxy.safeVisibleVariableByName(CONTINUATION_VARIABLE_NAME) ?: return null
|
||||||
val continuation = frameProxy.getValue(continuationVariable) as? ObjectReference ?: return null
|
val continuation = frameProxy.getValue(continuationVariable) as? ObjectReference ?: return null
|
||||||
return findCoroutineContextForContinuation(continuation)
|
return findCoroutineContextForContinuation(continuation)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user