Unneeded subclasses replaced by factory methods
This commit is contained in:
+27
-36
@@ -16,50 +16,41 @@ import org.jetbrains.jet.lang.resolve.java.descriptor.JavaPackageFragmentDescrip
|
|||||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver
|
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver
|
||||||
import org.jetbrains.jet.lang.descriptors.PackageFragmentProvider
|
import org.jetbrains.jet.lang.descriptors.PackageFragmentProvider
|
||||||
|
|
||||||
abstract class LazyJavaPackageFragment(
|
fun LazyPackageFragmentForJavaPackage(
|
||||||
|
c: LazyJavaResolverContext,
|
||||||
|
containingDeclaration: ModuleDescriptor,
|
||||||
|
jPackage: JavaPackage
|
||||||
|
) = LazyJavaPackageFragment(c, containingDeclaration, JavaPackageFragmentDescriptor.Kind.PROPER, jPackage.getFqName(),
|
||||||
|
{ LazyPackageFragmentScopeForJavaPackage(c, jPackage, this) })
|
||||||
|
|
||||||
|
fun LazyPackageFragmentForJavaClass(
|
||||||
|
c: LazyJavaResolverContext,
|
||||||
|
containingDeclaration: ModuleDescriptor,
|
||||||
|
jClass: JavaClass
|
||||||
|
) = LazyJavaPackageFragment(c, containingDeclaration, JavaPackageFragmentDescriptor.Kind.CLASS_STATICS,
|
||||||
|
jClass.getFqName().sure("Attempt to build a package of an anonymous/local class: $jClass"),
|
||||||
|
{ LazyPackageFragmentScopeForJavaClass(c, jClass, this) })
|
||||||
|
|
||||||
|
class LazyJavaPackageFragment(
|
||||||
private val c: LazyJavaResolverContext,
|
private val c: LazyJavaResolverContext,
|
||||||
containingDeclaration: ModuleDescriptor,
|
containingDeclaration: ModuleDescriptor,
|
||||||
name: Name
|
val _kind: JavaPackageFragmentDescriptor.Kind,
|
||||||
) : DeclarationDescriptorNonRootImpl(containingDeclaration, listOf(), name), JavaPackageFragmentDescriptor, LazyJavaDescriptor {
|
val _fqName: FqName,
|
||||||
|
createMemberScope: LazyJavaPackageFragment.() -> JetScope
|
||||||
protected abstract val _memberScope: JetScope
|
) : DeclarationDescriptorNonRootImpl(containingDeclaration, listOf(), _fqName.shortNameOrSpecial()),
|
||||||
|
JavaPackageFragmentDescriptor, LazyJavaDescriptor
|
||||||
|
{
|
||||||
|
private val _memberScope = createMemberScope()
|
||||||
override fun getMemberScope() = _memberScope
|
override fun getMemberScope() = _memberScope
|
||||||
|
|
||||||
override fun getJavaDescriptorResolver(): JavaDescriptorResolver = c.javaDescriptorResolver
|
override fun getKind() = _kind
|
||||||
|
override fun getFqName() = _fqName
|
||||||
override fun getProvider(): PackageFragmentProvider = c.packageFragmentProvider
|
override fun getJavaDescriptorResolver() = c.javaDescriptorResolver
|
||||||
|
override fun getProvider() = c.packageFragmentProvider
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: DeclarationDescriptorVisitor<R, D>, data: D) = visitor.visitPackageFragmentDescriptor(this, data) as R
|
override fun <R, D> accept(visitor: DeclarationDescriptorVisitor<R, D>, data: D) = visitor.visitPackageFragmentDescriptor(this, data) as R
|
||||||
|
|
||||||
override fun substitute(substitutor: TypeSubstitutor) = this
|
override fun substitute(substitutor: TypeSubstitutor) = this
|
||||||
|
|
||||||
override fun toString() = "lazy java package fragment: " + getFqName()
|
override fun toString() = "lazy java package fragment: " + getFqName()
|
||||||
}
|
|
||||||
|
|
||||||
public class LazyPackageFragmentForJavaPackage(
|
|
||||||
c: LazyJavaResolverContext,
|
|
||||||
containingDeclaration: ModuleDescriptor,
|
|
||||||
val jPackage: JavaPackage
|
|
||||||
) : LazyJavaPackageFragment(c, containingDeclaration, jPackage.getFqName().shortNameOrSpecial()) {
|
|
||||||
override fun getFqName(): FqName = jPackage.getFqName()
|
|
||||||
|
|
||||||
override val _memberScope = LazyPackageFragmentScopeForJavaPackage(c, jPackage, this)
|
|
||||||
|
|
||||||
override fun getKind() = JavaPackageFragmentDescriptor.Kind.PROPER
|
|
||||||
}
|
|
||||||
|
|
||||||
public class LazyPackageFragmentForJavaClass(
|
|
||||||
c: LazyJavaResolverContext,
|
|
||||||
containingDeclaration: ModuleDescriptor,
|
|
||||||
val jClass: JavaClass
|
|
||||||
) : LazyJavaPackageFragment(c, containingDeclaration,
|
|
||||||
jClass.getFqName().sure("Attempt to build a package of an anonymous/local class: $jClass")
|
|
||||||
.shortNameOrRoot()
|
|
||||||
) {
|
|
||||||
override fun getFqName(): FqName = jClass.getFqName()!!
|
|
||||||
|
|
||||||
override val _memberScope = LazyPackageFragmentScopeForJavaClass(c, jClass, this)
|
|
||||||
|
|
||||||
override fun getKind() = JavaPackageFragmentDescriptor.Kind.CLASS_STATICS
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user