From c71100b486f22ae454d55ecbb49a8324e33a8f72 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Tue, 28 Oct 2014 21:48:38 +0300 Subject: [PATCH] Minor code improvements after conversion to Kotlin --- .../descriptors/DeserializedMemberScope.kt | 47 +++++-------------- 1 file changed, 12 insertions(+), 35 deletions(-) diff --git a/core/serialization/src/org/jetbrains/jet/descriptors/serialization/descriptors/DeserializedMemberScope.kt b/core/serialization/src/org/jetbrains/jet/descriptors/serialization/descriptors/DeserializedMemberScope.kt index c451fa41125..5013b76d897 100644 --- a/core/serialization/src/org/jetbrains/jet/descriptors/serialization/descriptors/DeserializedMemberScope.kt +++ b/core/serialization/src/org/jetbrains/jet/descriptors/serialization/descriptors/DeserializedMemberScope.kt @@ -53,23 +53,21 @@ public abstract class DeserializedMemberScope protected( return map } - private fun computeMembersByName(name: Name, callableKind: Filter): MutableCollection { - val memberProtos = membersProtos.invoke().get(name) + private fun computeMembersByName(name: Name, callableKind: (ProtoBuf.Callable.CallableKind) -> Boolean): LinkedHashSet { + val memberProtos = membersProtos()[name] ?: return LinkedHashSet() - val descriptors = LinkedHashSet(if (memberProtos != null) memberProtos.size() else 0) - if (memberProtos != null) { - for (memberProto in memberProtos) { - if (callableKind.accept(Flags.CALLABLE_KIND.get(memberProto.getFlags()))) { - [suppress("UNCHECKED_CAST")] - descriptors.add(context.deserializer.loadCallable(memberProto) as D) - } + val descriptors = LinkedHashSet(memberProtos.size()) + for (memberProto in memberProtos) { + if (callableKind(Flags.CALLABLE_KIND[memberProto.getFlags()])) { + [suppress("UNCHECKED_CAST")] + descriptors.add(context.deserializer.loadCallable(memberProto) as D) } } return descriptors } private fun computeFunctions(name: Name): Collection { - val descriptors = computeMembersByName(name, FUNCTION) + val descriptors = computeMembersByName(name) { it == ProtoBuf.Callable.CallableKind.FUN } computeNonDeclaredFunctions(name, descriptors) return descriptors.toReadOnlyList() } @@ -80,7 +78,7 @@ public abstract class DeserializedMemberScope protected( override fun getFunctions(name: Name): Collection = functions(name) private fun computeProperties(name: Name): Collection { - val descriptors = computeMembersByName(name, PROPERTY) + val descriptors = computeMembersByName(name) { it == ProtoBuf.Callable.CallableKind.VAL || it == ProtoBuf.Callable.CallableKind.VAR } computeNonDeclaredProperties(name, descriptors) return descriptors.toReadOnlyList() } @@ -107,7 +105,7 @@ public abstract class DeserializedMemberScope protected( private fun computeAllDescriptors(): Collection { val result = LinkedHashSet(0) - for (name in membersProtos.invoke().keySet()) { + for (name in membersProtos().keySet()) { result.addAll(getFunctions(name)) result.addAll(getProperties(name)) } @@ -125,19 +123,12 @@ public abstract class DeserializedMemberScope protected( override fun getImplicitReceiversHierarchy(): List { val receiver = getImplicitReceiver() - if (receiver != null) { - return listOf(receiver) - } - return listOf() + return if (receiver != null) listOf(receiver) else listOf() } protected abstract fun getImplicitReceiver(): ReceiverParameterDescriptor? - override fun getOwnDeclaredDescriptors(): Collection = getAllDescriptors() - - private trait Filter { - fun accept(value: T): Boolean - } + override fun getOwnDeclaredDescriptors() = getAllDescriptors() override fun printScopeStructure(p: Printer) { p.println(javaClass.getSimpleName(), " {") @@ -148,18 +139,4 @@ public abstract class DeserializedMemberScope protected( p.popIndent() p.println("}") } - - class object { - - private val FUNCTION = object : Filter { - override fun accept(value: ProtoBuf.Callable.CallableKind): Boolean { - return value == ProtoBuf.Callable.CallableKind.FUN - } - } - private val PROPERTY = object : Filter { - override fun accept(value: ProtoBuf.Callable.CallableKind): Boolean { - return value == ProtoBuf.Callable.CallableKind.VAL || value == ProtoBuf.Callable.CallableKind.VAR - } - } - } }