Refactoring: Replace 'ParametersDescriptor' with a simple 'List'
This commit is contained in:
+3
-13
@@ -219,21 +219,11 @@ class KotlinDebuggerCaches(project: Project) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
data class CompiledDataDescriptor(
|
data class CompiledDataDescriptor(
|
||||||
val classes: List<ClassToLoad>,
|
val classes: List<ClassToLoad>,
|
||||||
val sourcePosition: SourcePosition,
|
val sourcePosition: SourcePosition,
|
||||||
val parameters: ParametersDescriptor
|
val parameters: List<Parameter>
|
||||||
)
|
)
|
||||||
|
|
||||||
class ParametersDescriptor : Iterable<Parameter> {
|
|
||||||
private val list = ArrayList<Parameter>()
|
|
||||||
|
|
||||||
fun add(name: String, jetType: KotlinType, value: Value? = null, error: EvaluateException? = null) {
|
|
||||||
list.add(Parameter(name, jetType, value, error))
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun iterator() = list.iterator()
|
|
||||||
}
|
|
||||||
|
|
||||||
data class Parameter(val callText: String, val type: KotlinType, val value: Value? = null, val error: EvaluateException? = null)
|
data class Parameter(val callText: String, val type: KotlinType, val value: Value? = null, val error: EvaluateException? = null)
|
||||||
|
|
||||||
class ComputedClassNames(val classNames: List<String>, val shouldBeCached: Boolean) {
|
class ComputedClassNames(val classNames: List<String>, val shouldBeCached: Boolean) {
|
||||||
|
|||||||
+13
-13
@@ -64,8 +64,7 @@ import org.jetbrains.kotlin.idea.KotlinLanguage
|
|||||||
import org.jetbrains.kotlin.idea.caches.resolve.util.getJavaClassDescriptor
|
import org.jetbrains.kotlin.idea.caches.resolve.util.getJavaClassDescriptor
|
||||||
import org.jetbrains.kotlin.idea.core.quoteSegmentsIfNeeded
|
import org.jetbrains.kotlin.idea.core.quoteSegmentsIfNeeded
|
||||||
import org.jetbrains.kotlin.idea.debugger.DebuggerUtils
|
import org.jetbrains.kotlin.idea.debugger.DebuggerUtils
|
||||||
import org.jetbrains.kotlin.idea.debugger.evaluate.KotlinDebuggerCaches.CompiledDataDescriptor
|
import org.jetbrains.kotlin.idea.debugger.evaluate.KotlinDebuggerCaches.*
|
||||||
import org.jetbrains.kotlin.idea.debugger.evaluate.KotlinDebuggerCaches.ParametersDescriptor
|
|
||||||
import org.jetbrains.kotlin.idea.debugger.evaluate.classLoading.ClassToLoad
|
import org.jetbrains.kotlin.idea.debugger.evaluate.classLoading.ClassToLoad
|
||||||
import org.jetbrains.kotlin.idea.debugger.evaluate.compilingEvaluator.loadClassesSafely
|
import org.jetbrains.kotlin.idea.debugger.evaluate.compilingEvaluator.loadClassesSafely
|
||||||
import org.jetbrains.kotlin.idea.debugger.getBackingFieldName
|
import org.jetbrains.kotlin.idea.debugger.getBackingFieldName
|
||||||
@@ -413,7 +412,7 @@ class KotlinEvaluator(val codeFragment: KtCodeFragment, val sourcePosition: Sour
|
|||||||
private fun ExtractionResult.getParametersForDebugger(
|
private fun ExtractionResult.getParametersForDebugger(
|
||||||
fragment: KtCodeFragment,
|
fragment: KtCodeFragment,
|
||||||
context: EvaluationContextImpl
|
context: EvaluationContextImpl
|
||||||
): ParametersDescriptor {
|
): List<Parameter> {
|
||||||
return runReadAction {
|
return runReadAction {
|
||||||
val valuesForLabels = HashMap<String, Value>()
|
val valuesForLabels = HashMap<String, Value>()
|
||||||
|
|
||||||
@@ -429,10 +428,10 @@ class KotlinEvaluator(val codeFragment: KtCodeFragment, val sourcePosition: Sour
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
val parameters = ParametersDescriptor()
|
val parameters = mutableListOf<Parameter>()
|
||||||
val receiver = config.descriptor.receiverParameter
|
val receiver = config.descriptor.receiverParameter
|
||||||
if (receiver != null) {
|
if (receiver != null) {
|
||||||
parameters.add(THIS_NAME, receiver.getParameterType(true))
|
parameters += Parameter(THIS_NAME, receiver.getParameterType(true))
|
||||||
}
|
}
|
||||||
|
|
||||||
for (param in config.descriptor.parameters) {
|
for (param in config.descriptor.parameters) {
|
||||||
@@ -449,20 +448,21 @@ class KotlinEvaluator(val codeFragment: KtCodeFragment, val sourcePosition: Sour
|
|||||||
val thisObject = context.suspendContext.frameProxy?.thisObject()
|
val thisObject = context.suspendContext.frameProxy?.thisObject()
|
||||||
val field = thisObject?.referenceType()?.fieldByName(backingFieldName)
|
val field = thisObject?.referenceType()?.fieldByName(backingFieldName)
|
||||||
|
|
||||||
if (thisObject != null && field != null) {
|
val parameter = if (thisObject != null && field != null) {
|
||||||
parameters.add(backingFieldName, param.getParameterType(true), thisObject.getValue(field).asValue())
|
Parameter(backingFieldName, param.getParameterType(true), thisObject.getValue(field).asValue())
|
||||||
} else {
|
} else {
|
||||||
parameters.add(
|
Parameter(
|
||||||
backingFieldName, paramDescriptor.builtIns.unitType, null,
|
backingFieldName, paramDescriptor.builtIns.unitType,
|
||||||
EvaluateException("Can't find a backing field for property ${paramDescriptor.name}")
|
error = EvaluateException("Can't find a backing field for property ${paramDescriptor.name}")
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
parameters += parameter
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
parameters.add(paramName, param.getParameterType(true), valuesForLabels[paramName])
|
parameters += Parameter(paramName, param.getParameterType(true), valuesForLabels[paramName])
|
||||||
}
|
}
|
||||||
|
|
||||||
parameters
|
parameters
|
||||||
@@ -470,7 +470,7 @@ class KotlinEvaluator(val codeFragment: KtCodeFragment, val sourcePosition: Sour
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun EvaluationContextImpl.getArgumentsForEval4j(
|
private fun EvaluationContextImpl.getArgumentsForEval4j(
|
||||||
parameters: ParametersDescriptor,
|
parameters: List<Parameter>,
|
||||||
parameterTypes: Array<Type>
|
parameterTypes: Array<Type>
|
||||||
): List<Value> {
|
): List<Value> {
|
||||||
val frameVisitor = FrameVisitor(this)
|
val frameVisitor = FrameVisitor(this)
|
||||||
@@ -491,7 +491,7 @@ class KotlinEvaluator(val codeFragment: KtCodeFragment, val sourcePosition: Sour
|
|||||||
codeFragment: KtCodeFragment,
|
codeFragment: KtCodeFragment,
|
||||||
extractedFunction: KtNamedFunction,
|
extractedFunction: KtNamedFunction,
|
||||||
context: EvaluationContextImpl,
|
context: EvaluationContextImpl,
|
||||||
parameters: ParametersDescriptor
|
parameters: List<Parameter>
|
||||||
): ClassFileFactory {
|
): ClassFileFactory {
|
||||||
return runReadAction {
|
return runReadAction {
|
||||||
val fileForDebugger = createFileForDebugger(codeFragment, extractedFunction)
|
val fileForDebugger = createFileForDebugger(codeFragment, extractedFunction)
|
||||||
|
|||||||
Reference in New Issue
Block a user