Minor refactoring in LazyJavaPackageScope

This commit is contained in:
Alexander Udalov
2015-09-15 15:39:18 +03:00
parent 8e83e1c17a
commit 4bc257bd73
4 changed files with 19 additions and 16 deletions
@@ -22,8 +22,10 @@ import org.jetbrains.kotlin.load.java.lazy.LazyJavaResolverContext
import org.jetbrains.kotlin.load.java.structure.JavaClass
import org.jetbrains.kotlin.load.java.structure.JavaPackage
import org.jetbrains.kotlin.load.kotlin.KotlinJvmBinarySourceElement
import org.jetbrains.kotlin.load.kotlin.PackageClassUtils
import org.jetbrains.kotlin.resolve.scopes.DecapitalizedAnnotationScope
import org.jetbrains.kotlin.resolve.scopes.JetScope
import org.jetbrains.kotlin.storage.get
class LazyJavaPackageFragment(
private val c: LazyJavaResolverContext,
@@ -38,6 +40,10 @@ class LazyJavaPackageFragment(
LazyJavaClassDescriptor(c, this, javaClass.fqName!!, javaClass)
}
internal val oldPackageFacade by c.storageManager.createNullableLazyValue {
c.components.kotlinClassFinder.findKotlinClass(PackageClassUtils.getPackageClassId(fqName))
}
internal fun resolveTopLevelClass(javaClass: JavaClass) = topLevelClasses(javaClass)
override fun getMemberScope(): JetScope = wrappedScope
@@ -45,8 +51,6 @@ class LazyJavaPackageFragment(
override fun toString() = "lazy java package fragment: $fqName"
override fun getSource(): SourceElement {
val binaryClass = scope.kotlinBinaryClass ?: return SourceElement.NO_SOURCE
return KotlinJvmBinarySourceElement(binaryClass)
return KotlinJvmBinarySourceElement(oldPackageFacade ?: return SourceElement.NO_SOURCE)
}
}
@@ -28,7 +28,6 @@ import org.jetbrains.kotlin.load.java.lazy.LazyJavaResolverContext
import org.jetbrains.kotlin.load.java.lazy.resolveKotlinBinaryClass
import org.jetbrains.kotlin.load.java.structure.JavaClass
import org.jetbrains.kotlin.load.java.structure.JavaPackage
import org.jetbrains.kotlin.load.kotlin.KotlinJvmBinaryClass
import org.jetbrains.kotlin.load.kotlin.PackageClassUtils
import org.jetbrains.kotlin.load.kotlin.header.KotlinClassHeader
import org.jetbrains.kotlin.name.ClassId
@@ -43,12 +42,6 @@ public class LazyJavaPackageScope(
private val jPackage: JavaPackage,
containingDeclaration: LazyJavaPackageFragment
) : LazyJavaStaticScope(c, containingDeclaration) {
// TODO: Storing references is a temporary hack until modules infrastructure is implemented.
// See JetTypeMapperWithOutDirectories for details
public val kotlinBinaryClass: KotlinJvmBinaryClass?
= c.components.kotlinClassFinder.findKotlinClass(PackageClassUtils.getPackageClassId(packageFragment.fqName))
private val kotlinBinaryClasses = c.storageManager.createLazyValue {
val simpleNames = c.components.packageMapper.findPackageParts(jPackage.getFqName().asString())
val packageClassId = PackageClassUtils.getPackageClassId(packageFragment.fqName).packageFqName