From 8334769eb0dd195ad12637a3250b850d06b4cd25 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Mon, 26 Nov 2018 17:55:03 +0900 Subject: [PATCH] Refactoring: Replace 'ParametersDescriptor' with a simple 'List' --- .../debugger/evaluate/KotlinDebuggerCaches.kt | 16 +++--------- .../evaluate/KotlinEvaluationBuilder.kt | 26 +++++++++---------- 2 files changed, 16 insertions(+), 26 deletions(-) diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinDebuggerCaches.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinDebuggerCaches.kt index ee54b6645d1..5ff452f5854 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinDebuggerCaches.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinDebuggerCaches.kt @@ -219,21 +219,11 @@ class KotlinDebuggerCaches(project: Project) { } data class CompiledDataDescriptor( - val classes: List, - val sourcePosition: SourcePosition, - val parameters: ParametersDescriptor + val classes: List, + val sourcePosition: SourcePosition, + val parameters: List ) - class ParametersDescriptor : Iterable { - private val list = ArrayList() - - 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) class ComputedClassNames(val classNames: List, val shouldBeCached: Boolean) { diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluationBuilder.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluationBuilder.kt index e08c4d6dbfd..e4aa6b60228 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluationBuilder.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluationBuilder.kt @@ -64,8 +64,7 @@ import org.jetbrains.kotlin.idea.KotlinLanguage import org.jetbrains.kotlin.idea.caches.resolve.util.getJavaClassDescriptor import org.jetbrains.kotlin.idea.core.quoteSegmentsIfNeeded import org.jetbrains.kotlin.idea.debugger.DebuggerUtils -import org.jetbrains.kotlin.idea.debugger.evaluate.KotlinDebuggerCaches.CompiledDataDescriptor -import org.jetbrains.kotlin.idea.debugger.evaluate.KotlinDebuggerCaches.ParametersDescriptor +import org.jetbrains.kotlin.idea.debugger.evaluate.KotlinDebuggerCaches.* import org.jetbrains.kotlin.idea.debugger.evaluate.classLoading.ClassToLoad import org.jetbrains.kotlin.idea.debugger.evaluate.compilingEvaluator.loadClassesSafely import org.jetbrains.kotlin.idea.debugger.getBackingFieldName @@ -413,7 +412,7 @@ class KotlinEvaluator(val codeFragment: KtCodeFragment, val sourcePosition: Sour private fun ExtractionResult.getParametersForDebugger( fragment: KtCodeFragment, context: EvaluationContextImpl - ): ParametersDescriptor { + ): List { return runReadAction { val valuesForLabels = HashMap() @@ -429,10 +428,10 @@ class KotlinEvaluator(val codeFragment: KtCodeFragment, val sourcePosition: Sour }) } - val parameters = ParametersDescriptor() + val parameters = mutableListOf() val receiver = config.descriptor.receiverParameter if (receiver != null) { - parameters.add(THIS_NAME, receiver.getParameterType(true)) + parameters += Parameter(THIS_NAME, receiver.getParameterType(true)) } 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 field = thisObject?.referenceType()?.fieldByName(backingFieldName) - if (thisObject != null && field != null) { - parameters.add(backingFieldName, param.getParameterType(true), thisObject.getValue(field).asValue()) + val parameter = if (thisObject != null && field != null) { + Parameter(backingFieldName, param.getParameterType(true), thisObject.getValue(field).asValue()) } else { - parameters.add( - backingFieldName, paramDescriptor.builtIns.unitType, null, - EvaluateException("Can't find a backing field for property ${paramDescriptor.name}") + Parameter( + backingFieldName, paramDescriptor.builtIns.unitType, + error = EvaluateException("Can't find a backing field for property ${paramDescriptor.name}") ) } + parameters += parameter continue } } - parameters.add(paramName, param.getParameterType(true), valuesForLabels[paramName]) + parameters += Parameter(paramName, param.getParameterType(true), valuesForLabels[paramName]) } parameters @@ -470,7 +470,7 @@ class KotlinEvaluator(val codeFragment: KtCodeFragment, val sourcePosition: Sour } private fun EvaluationContextImpl.getArgumentsForEval4j( - parameters: ParametersDescriptor, + parameters: List, parameterTypes: Array ): List { val frameVisitor = FrameVisitor(this) @@ -491,7 +491,7 @@ class KotlinEvaluator(val codeFragment: KtCodeFragment, val sourcePosition: Sour codeFragment: KtCodeFragment, extractedFunction: KtNamedFunction, context: EvaluationContextImpl, - parameters: ParametersDescriptor + parameters: List ): ClassFileFactory { return runReadAction { val fileForDebugger = createFileForDebugger(codeFragment, extractedFunction)