Optimize memory footprint related to empty/single element collections

^KT-47926 Related
This commit is contained in:
Denis.Zharkov
2021-08-04 16:15:19 +03:00
committed by TeamCityServer
parent 112af9b145
commit 019001ca20
6 changed files with 25 additions and 11 deletions
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.resolve.calls.model.*
import java.util.*
import org.jetbrains.kotlin.utils.addToStdlib.compactIfPossible
class ArgumentsToParametersMapper(
languageVersionSettings: LanguageVersionSettings
@@ -63,7 +63,7 @@ class ArgumentsToParametersMapper(
}
processor.processDefaultsAndRunChecks()
return ArgumentMapping(processor.result, processor.getDiagnostics())
return ArgumentMapping(processor.result.compactIfPossible(), processor.getDiagnostics())
}
}
@@ -31,6 +31,7 @@ import org.jetbrains.kotlin.types.typeUtil.makeNotNullable
import org.jetbrains.kotlin.types.typeUtil.makeNullable
import org.jetbrains.kotlin.utils.SmartList
import org.jetbrains.kotlin.utils.addToStdlib.cast
import org.jetbrains.kotlin.utils.addToStdlib.compactIfPossible
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
internal object CheckVisibility : ResolutionPart() {
@@ -96,7 +97,7 @@ internal object ArgumentsToCandidateParameterDescriptor : ResolutionPart() {
map[argument] = valueParameter
}
}
resolvedCall.argumentToCandidateParameter = map
resolvedCall.argumentToCandidateParameter = map.compactIfPossible()
}
}