Make NameResolver.getName extension instead of member

To get rid of dependency of NameResolver on Name
This commit is contained in:
Alexander Udalov
2018-03-01 13:27:53 +01:00
parent e31f286444
commit 4f81e572c7
8 changed files with 10 additions and 14 deletions
@@ -42,6 +42,7 @@ import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameUnsafe
import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType
import org.jetbrains.kotlin.resolve.scopes.MemberScope
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedClassDescriptor
import org.jetbrains.kotlin.serialization.deserialization.getName
import org.jetbrains.kotlin.storage.LockBasedStorageManager
import org.jetbrains.kotlin.storage.StorageManager
import org.jetbrains.kotlin.storage.getValue
@@ -19,7 +19,6 @@ package org.jetbrains.kotlin.load.kotlin
import org.jetbrains.kotlin.metadata.jvm.JvmProtoBuf
import org.jetbrains.kotlin.metadata.jvm.JvmProtoBuf.StringTableTypes.Record
import org.jetbrains.kotlin.metadata.jvm.JvmProtoBuf.StringTableTypes.Record.Operation.*
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.serialization.deserialization.NameResolver
import java.util.*
@@ -81,8 +80,6 @@ class JvmNameResolver(
return string
}
override fun getName(index: Int) = Name.guessByFirstCharacter(getString(index))
override fun getQualifiedClassName(index: Int): String =
getString(index)
@@ -17,16 +17,11 @@
package org.jetbrains.kotlin.serialization.deserialization;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.name.ClassId;
import org.jetbrains.kotlin.name.Name;
public interface NameResolver {
@NotNull
String getString(int index);
@NotNull
Name getName(int index);
/**
* @return the fully qualified name of some class in the format: `org/foo/bar/Test.Inner`
*/
@@ -19,18 +19,14 @@ package org.jetbrains.kotlin.serialization.deserialization
import org.jetbrains.kotlin.metadata.ProtoBuf
import org.jetbrains.kotlin.metadata.ProtoBuf.QualifiedNameTable.QualifiedName
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
import java.util.*
class NameResolverImpl(
private val strings: ProtoBuf.StringTable,
private val qualifiedNames: ProtoBuf.QualifiedNameTable
private val strings: ProtoBuf.StringTable,
private val qualifiedNames: ProtoBuf.QualifiedNameTable
) : NameResolver {
override fun getString(index: Int): String = strings.getString(index)
override fun getName(index: Int) = Name.guessByFirstCharacter(strings.getString(index))
override fun getQualifiedClassName(index: Int): String {
val (packageFqNameSegments, relativeClassNameSegments) = traverseIds(index)
val className = relativeClassNameSegments.joinToString(".")
@@ -6,7 +6,11 @@
package org.jetbrains.kotlin.serialization.deserialization
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.Name
fun NameResolver.getClassId(index: Int): ClassId {
return ClassId.fromString(getQualifiedClassName(index), isLocalClassName(index))
}
fun NameResolver.getName(index: Int): Name =
Name.guessByFirstCharacter(getString(index))
@@ -28,6 +28,7 @@ import org.jetbrains.kotlin.resolve.MemberComparator
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
import org.jetbrains.kotlin.resolve.scopes.MemberScopeImpl
import org.jetbrains.kotlin.serialization.deserialization.DeserializationContext
import org.jetbrains.kotlin.serialization.deserialization.getName
import org.jetbrains.kotlin.storage.getValue
import org.jetbrains.kotlin.utils.Printer
import org.jetbrains.kotlin.utils.addIfNotNull
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.metadata.ProtoBuf
import org.jetbrains.kotlin.resolve.descriptorUtil.builtIns
import org.jetbrains.kotlin.serialization.deserialization.DeserializationContext
import org.jetbrains.kotlin.serialization.deserialization.ProtoEnumFlags
import org.jetbrains.kotlin.serialization.deserialization.getName
import org.jetbrains.kotlin.serialization.deserialization.upperBounds
import org.jetbrains.kotlin.types.KotlinType
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.psi.stubs.impl.KotlinTypeAliasStubImpl
import org.jetbrains.kotlin.serialization.Flags
import org.jetbrains.kotlin.serialization.deserialization.ProtoContainer
import org.jetbrains.kotlin.serialization.deserialization.getClassId
import org.jetbrains.kotlin.serialization.deserialization.getName
fun createTypeAliasStub(
parent: StubElement<out PsiElement>,