Rewritten PackageFragmentDescriptor to Kotlin.

This commit is contained in:
Evgeny Gerashchenko
2014-03-26 00:41:54 +04:00
parent 00c0c1acd1
commit 9ecd680fd4
7 changed files with 15 additions and 22 deletions
@@ -52,7 +52,7 @@ public object ClassSerializationUtil {
public fun getClassId(classDescriptor: ClassDescriptor): ClassId { public fun getClassId(classDescriptor: ClassDescriptor): ClassId {
val owner = classDescriptor.getContainingDeclaration() val owner = classDescriptor.getContainingDeclaration()
if (owner is PackageFragmentDescriptor) { if (owner is PackageFragmentDescriptor) {
return ClassId(owner.getFqName(), FqNameUnsafe.topLevel(classDescriptor.getName())) return ClassId(owner.fqName, FqNameUnsafe.topLevel(classDescriptor.getName()))
} }
return getClassId(owner as ClassDescriptor).createNestedClassId(classDescriptor.getName()) return getClassId(owner as ClassDescriptor).createNestedClassId(classDescriptor.getName())
} }
@@ -30,7 +30,7 @@ public class CliSourcesMemberFilter(environment: JetCoreEnvironment): MemberFilt
override fun acceptPackagePartClass(container: PackageFragmentDescriptor, member: ProtoBuf.Callable, nameResolver: NameResolver): Boolean { override fun acceptPackagePartClass(container: PackageFragmentDescriptor, member: ProtoBuf.Callable, nameResolver: NameResolver): Boolean {
if (member.hasExtension(JavaProtoBuf.implClassName)) { if (member.hasExtension(JavaProtoBuf.implClassName)) {
val shortName = nameResolver.getName(member.getExtension(JavaProtoBuf.implClassName)!!) val shortName = nameResolver.getName(member.getExtension(JavaProtoBuf.implClassName)!!)
val fqName = container.getFqName().child(shortName) val fqName = container.fqName.child(shortName)
val internalName = JvmClassName.byFqNameWithoutInnerClasses(fqName).getInternalName() val internalName = JvmClassName.byFqNameWithoutInnerClasses(fqName).getInternalName()
return internalName !in packagePartClassNames return internalName !in packagePartClassNames
} }
@@ -58,7 +58,7 @@ public class LazyResolveBasedCache() : JavaResolverCache {
return resolveSession.findInPackageFragments(fqName) { packageFragmentDescriptor -> return resolveSession.findInPackageFragments(fqName) { packageFragmentDescriptor ->
ResolveSessionUtils.findByQualifiedName( ResolveSessionUtils.findByQualifiedName(
packageFragmentDescriptor.getMemberScope(), packageFragmentDescriptor.getMemberScope(),
fqName.tail(packageFragmentDescriptor.getFqName())) fqName.tail(packageFragmentDescriptor.fqName))
} }
} }
@@ -77,7 +77,7 @@ public abstract class LazyJavaMemberScope(
}.toList()) }.toList())
if (_containingDeclaration is JavaPackageFragmentDescriptor) { if (_containingDeclaration is JavaPackageFragmentDescriptor) {
val klass = c.javaClassResolver.resolveClassByFqName(_containingDeclaration.getFqName().child(name)) val klass = c.javaClassResolver.resolveClassByFqName(_containingDeclaration.fqName.child(name))
if (klass is LazyJavaClassDescriptor && klass.getFunctionTypeForSamInterface() != null) { if (klass is LazyJavaClassDescriptor && klass.getFunctionTypeForSamInterface() != null) {
functions.add(SingleAbstractMethodUtils.createSamConstructorFunction(_containingDeclaration, klass)) functions.add(SingleAbstractMethodUtils.createSamConstructorFunction(_containingDeclaration, klass))
} }
@@ -54,5 +54,5 @@ abstract class LazyJavaPackageFragment(
private val _memberScope = createMemberScope() private val _memberScope = createMemberScope()
override fun getMemberScope(): LazyJavaPackageFragmentScope = _memberScope override fun getMemberScope(): LazyJavaPackageFragmentScope = _memberScope
override fun toString() = "lazy java package fragment: " + getFqName() override fun toString() = "lazy java package fragment: " + fqName
} }
@@ -1,5 +1,5 @@
/* /*
* Copyright 2010-2013 JetBrains s.r.o. * Copyright 2010-2014 JetBrains s.r.o.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -14,21 +14,16 @@
* limitations under the License. * limitations under the License.
*/ */
package org.jetbrains.jet.lang.descriptors; package org.jetbrains.jet.lang.descriptors
import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.resolve.name.FqName
import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.scopes.JetScope
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
public interface PackageFragmentDescriptor extends ClassOrPackageFragmentDescriptor { public trait PackageFragmentDescriptor : ClassOrPackageFragmentDescriptor {
@NotNull override fun getContainingDeclaration(): ModuleDescriptor
@Override
ModuleDescriptor getContainingDeclaration();
@NotNull val fqName: FqName
FqName getFqName();
@NotNull fun getMemberScope(): JetScope
JetScope getMemberScope();
} }
@@ -23,8 +23,8 @@ import org.jetbrains.jet.lang.types.TypeSubstitutor
public abstract class PackageFragmentDescriptorImpl( public abstract class PackageFragmentDescriptorImpl(
module: ModuleDescriptor, module: ModuleDescriptor,
val _fqName: FqName override val fqName: FqName
) : DeclarationDescriptorNonRootImpl(module, Annotations.EMPTY, _fqName.shortNameOrSpecial()), PackageFragmentDescriptor { ) : DeclarationDescriptorNonRootImpl(module, Annotations.EMPTY, fqName.shortNameOrSpecial()), PackageFragmentDescriptor {
override fun substitute(substitutor: TypeSubstitutor): DeclarationDescriptor? = this override fun substitute(substitutor: TypeSubstitutor): DeclarationDescriptor? = this
override fun <R, D> accept(visitor: DeclarationDescriptorVisitor<R, D>, data: D): R = override fun <R, D> accept(visitor: DeclarationDescriptorVisitor<R, D>, data: D): R =
@@ -33,6 +33,4 @@ public abstract class PackageFragmentDescriptorImpl(
override fun getContainingDeclaration(): ModuleDescriptor { override fun getContainingDeclaration(): ModuleDescriptor {
return super<DeclarationDescriptorNonRootImpl>.getContainingDeclaration() as ModuleDescriptor return super<DeclarationDescriptorNonRootImpl>.getContainingDeclaration() as ModuleDescriptor
} }
override fun getFqName(): FqName = _fqName
} }