Pseudocode: Store lazily computed value usage map in the pseudocode

This commit is contained in:
Alexey Sedunov
2014-06-27 14:55:57 +04:00
parent 30192b4c40
commit 02342fce5d
5 changed files with 37 additions and 24 deletions
@@ -373,8 +373,6 @@ private fun ExtractionData.inferParametersInfo(
val extractedDescriptorToParameter = HashMap<DeclarationDescriptor, MutableParameter>()
val valueUsageMap = pseudocode.collectValueUsages()
for (refInfo in getBrokenReferencesInfo(createTemporaryCodeBlock())) {
val (originalRef, originalDeclaration, originalDescriptor, resolvedCall) = refInfo.resolveResult
val ref = refInfo.refExpr
@@ -437,7 +435,7 @@ private fun ExtractionData.inferParametersInfo(
if (!parameterType.processTypeIfExtractable(typeParameters, nonDenotableTypes)) continue
val parameterTypePredicate =
pseudocode.getElementValue(originalRef)?.let { getExpectedTypePredicate(it, valueUsageMap, bindingContext) } ?: AllTypes
pseudocode.getElementValue(originalRef)?.let { getExpectedTypePredicate(it, bindingContext) } ?: AllTypes
val parameter = extractedDescriptorToParameter.getOrPut(descriptorToExtract) {
val parameterName =