From a2dbf68286f612dc2110a033378185cd1a73c439 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Thu, 30 Oct 2014 19:19:08 +0300 Subject: [PATCH] Code simplifications --- .../descriptors/AbstractLazyMemberScope.kt | 49 ++++++------------- 1 file changed, 16 insertions(+), 33 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/AbstractLazyMemberScope.kt b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/AbstractLazyMemberScope.kt index 61128d26848..5f5a82bdc30 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/AbstractLazyMemberScope.kt +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/descriptors/AbstractLazyMemberScope.kt @@ -17,8 +17,6 @@ package org.jetbrains.jet.lang.resolve.lazy.descriptors import com.google.common.collect.Sets -import com.intellij.util.Function -import com.intellij.util.containers.ContainerUtil import org.jetbrains.jet.lang.descriptors.* import org.jetbrains.jet.lang.psi.* import org.jetbrains.jet.lang.resolve.AnnotationResolver @@ -26,7 +24,6 @@ import org.jetbrains.jet.lang.resolve.BindingTrace import org.jetbrains.jet.lang.resolve.ScriptNameUtil import org.jetbrains.jet.lang.resolve.calls.smartcasts.DataFlowInfo import org.jetbrains.jet.lang.resolve.lazy.ResolveSession -import org.jetbrains.jet.lang.resolve.lazy.data.JetClassLikeInfo import org.jetbrains.jet.lang.resolve.lazy.data.JetScriptInfo import org.jetbrains.jet.lang.resolve.lazy.declarations.DeclarationProvider import org.jetbrains.jet.lang.resolve.name.Name @@ -44,42 +41,28 @@ public abstract class AbstractLazyMemberScope> - - private val functionDescriptors: MemoizedFunctionToNotNull> - private val propertyDescriptors: MemoizedFunctionToNotNull> - - private val descriptorsFromDeclaredElements: NotNullLazyValue> - private val extraDescriptors: NotNullLazyValue> - - { - val storageManager = resolveSession.getStorageManager() - this.classDescriptors = storageManager.createMemoizedFunction { resolveClassDescriptor(it) } - this.functionDescriptors = storageManager.createMemoizedFunction> { doGetFunctions(it) } - this.propertyDescriptors = storageManager.createMemoizedFunction> { doGetProperties(it) } - this.descriptorsFromDeclaredElements = storageManager.createLazyValue> { computeDescriptorsFromDeclaredElements() } - this.extraDescriptors = storageManager.createLazyValue> { computeExtraDescriptors() } - } + private val storageManager = resolveSession.getStorageManager() + private val classDescriptors: MemoizedFunctionToNotNull> = storageManager.createMemoizedFunction { resolveClassDescriptor(it) } + private val functionDescriptors: MemoizedFunctionToNotNull> = storageManager.createMemoizedFunction { doGetFunctions(it) } + private val propertyDescriptors: MemoizedFunctionToNotNull> = storageManager.createMemoizedFunction { doGetProperties(it) } + private val descriptorsFromDeclaredElements: NotNullLazyValue> = storageManager.createLazyValue { computeDescriptorsFromDeclaredElements() } + private val extraDescriptors: NotNullLazyValue> = storageManager.createLazyValue { computeExtraDescriptors() } private fun resolveClassDescriptor(name: Name): List { - val classOrObjectDeclarations = declarationProvider.getClassOrObjectDeclarations(name) - - return ContainerUtil.mapNotNull(classOrObjectDeclarations, object : Function { - override fun `fun`(classLikeInfo: JetClassLikeInfo): ClassDescriptor { - // SCRIPT: Creating a script class - if (classLikeInfo is JetScriptInfo) { - return LazyScriptClassDescriptor(resolveSession, thisDescriptor, name, classLikeInfo) - } - return LazyClassDescriptor(resolveSession, thisDescriptor, name, classLikeInfo) - } - }).toReadOnlyList() + return declarationProvider.getClassOrObjectDeclarations(name).map { + // SCRIPT: Creating a script class + if (it is JetScriptInfo) + LazyScriptClassDescriptor(resolveSession, thisDescriptor, name, it) + else + LazyClassDescriptor(resolveSession, thisDescriptor, name, it) + } } override fun getContainingDeclaration() = thisDescriptor override fun getClassifier(name: Name): ClassDescriptor? = classDescriptors(name).firstOrNull() - override fun getFunctions(name: Name): Set = functionDescriptors(name) + override fun getFunctions(name: Name): Collection = functionDescriptors(name) private fun doGetFunctions(name: Name): Collection { val result = Sets.newLinkedHashSet() @@ -106,10 +89,10 @@ public abstract class AbstractLazyMemberScope) - override fun getProperties(name: Name): Set = propertyDescriptors(name) + override fun getProperties(name: Name): Collection = propertyDescriptors(name) public fun doGetProperties(name: Name): Collection { - val result = Sets.newLinkedHashSet() + val result = LinkedHashSet() val declarations = declarationProvider.getPropertyDeclarations(name) for (propertyDeclaration in declarations) {