Refactor: get rid of MemberFqNameProvider

This commit is contained in:
Pavel V. Talanov
2015-01-29 15:08:46 +03:00
parent d52d1035d0
commit 11ed783e1e
3 changed files with 7 additions and 14 deletions
@@ -98,7 +98,7 @@ private class CallableClsStubBuilder(
private fun doCreateCallableStub(): StubElement<out PsiElement> { private fun doCreateCallableStub(): StubElement<out PsiElement> {
val callableKind = Flags.CALLABLE_KIND[callableProto.getFlags()] val callableKind = Flags.CALLABLE_KIND[callableProto.getFlags()]
val callableName = c.nameResolver.getName(callableProto.getName()) val callableName = c.nameResolver.getName(callableProto.getName())
val callableFqName = c.memberFqNameProvider.getMemberFqName(callableName) val callableFqName = c.containerFqName.child(callableName)
return when (callableKind) { return when (callableKind) {
ProtoBuf.Callable.CallableKind.FUN -> { ProtoBuf.Callable.CallableKind.FUN -> {
@@ -101,7 +101,7 @@ private class ClassClsStubBuilder(
private fun doCreateClassOrObjectStub(): StubElement<out PsiElement> { private fun doCreateClassOrObjectStub(): StubElement<out PsiElement> {
val isClassObject = classKind == ProtoBuf.Class.Kind.CLASS_OBJECT val isClassObject = classKind == ProtoBuf.Class.Kind.CLASS_OBJECT
val fqName = outerContext.memberFqNameProvider.getMemberFqName(classId.getRelativeClassName().shortName()) val fqName = outerContext.containerFqName.child(classId.getRelativeClassName().shortName())
val shortName = fqName.shortName()?.ref() val shortName = fqName.shortName()?.ref()
val superTypeRefs = supertypeIds.filter { val superTypeRefs = supertypeIds.filter {
//TODO: filtering function types should go away //TODO: filtering function types should go away
@@ -184,7 +184,7 @@ private class ClassClsStubBuilder(
KotlinClassStubImpl( KotlinClassStubImpl(
JetStubElementTypes.ENUM_ENTRY, JetStubElementTypes.ENUM_ENTRY,
classBody, classBody,
qualifiedName = c.memberFqNameProvider.getMemberFqName(name).ref(), qualifiedName = c.containerFqName.child(name).ref(),
name = name.ref(), name = name.ref(),
superNames = array(), superNames = array(),
isTrait = false, isTrait = false,
@@ -37,17 +37,10 @@ class ClsStubBuilderComponents(
nameResolver: NameResolver, nameResolver: NameResolver,
packageFqName: FqName packageFqName: FqName
): ClsStubBuilderContext { ): ClsStubBuilderContext {
return ClsStubBuilderContext(this, nameResolver, MemberFqNameProvider(packageFqName), EmptyTypeParameters) return ClsStubBuilderContext(this, nameResolver, packageFqName, EmptyTypeParameters)
} }
} }
//TODO_R: remove?
class MemberFqNameProvider(val fqName: FqName) {
fun getMemberFqName(name: Name): FqName = fqName.child(name)
fun child(name: Name?): MemberFqNameProvider = if (name == null) this else MemberFqNameProvider(fqName.child(name))
}
trait TypeParameters { trait TypeParameters {
fun get(id: Int): Name fun get(id: Int): Name
@@ -72,7 +65,7 @@ class TypeParametersImpl(
class ClsStubBuilderContext( class ClsStubBuilderContext(
val components: ClsStubBuilderComponents, val components: ClsStubBuilderComponents,
val nameResolver: NameResolver, val nameResolver: NameResolver,
val memberFqNameProvider: MemberFqNameProvider, val containerFqName: FqName,
val typeParameters: TypeParameters val typeParameters: TypeParameters
) )
@@ -80,7 +73,7 @@ private fun ClsStubBuilderContext.child(typeParameterList: List<ProtoBuf.TypePar
return ClsStubBuilderContext( return ClsStubBuilderContext(
this.components, this.components,
this.nameResolver, this.nameResolver,
this.memberFqNameProvider.child(name), if (name != null) this.containerFqName.child(name) else this.containerFqName,
this.typeParameters.child(nameResolver, typeParameterList) this.typeParameters.child(nameResolver, typeParameterList)
) )
} }
@@ -89,7 +82,7 @@ private fun ClsStubBuilderContext.child(nameResolver: NameResolver): ClsStubBuil
return ClsStubBuilderContext( return ClsStubBuilderContext(
this.components, this.components,
nameResolver, nameResolver,
this.memberFqNameProvider, this.containerFqName,
this.typeParameters this.typeParameters
) )
} }