Make LazyJavaPackageFragment#javaScope private
This commit is contained in:
+2
-2
@@ -52,7 +52,7 @@ class LazyJavaPackageFragmentProvider(
|
||||
override fun getPackageFragments(fqName: FqName) = emptyOrSingletonList(getPackageFragment(fqName))
|
||||
|
||||
override fun getSubPackagesOf(fqName: FqName, nameFilter: (Name) -> Boolean) =
|
||||
getPackageFragment(fqName)?.javaScope?.getSubPackages().orEmpty()
|
||||
getPackageFragment(fqName)?.getSubPackageFqNames().orEmpty()
|
||||
|
||||
fun getClass(javaClass: JavaClass): ClassDescriptor? = c.javaClassResolver.resolveClass(javaClass)
|
||||
|
||||
@@ -70,7 +70,7 @@ class LazyJavaPackageFragmentProvider(
|
||||
|
||||
if (fqName == null) return null
|
||||
|
||||
return getPackageFragment(fqName.parent())?.javaScope?.findClassifierByJavaClass(javaClass, NoLookupLocation.FROM_JAVA_LOADER)
|
||||
return getPackageFragment(fqName.parent())?.findClassifierByJavaClass(javaClass)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+14
-1
@@ -16,13 +16,16 @@
|
||||
|
||||
package org.jetbrains.kotlin.load.java.lazy.descriptors
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.SourceElement
|
||||
import org.jetbrains.kotlin.descriptors.impl.PackageFragmentDescriptorImpl
|
||||
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.KotlinJvmBinaryPackageSourceElement
|
||||
import org.jetbrains.kotlin.load.kotlin.header.KotlinClassHeader
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.resolve.scopes.ChainedMemberScope
|
||||
import org.jetbrains.kotlin.resolve.scopes.LazyScopeAdapter
|
||||
@@ -39,7 +42,7 @@ class LazyJavaPackageFragment(
|
||||
}.toMap()
|
||||
}
|
||||
|
||||
internal val javaScope by c.storageManager.createLazyValue {
|
||||
private val javaScope by c.storageManager.createLazyValue {
|
||||
LazyJavaPackageScope(c, jPackage, this)
|
||||
}
|
||||
|
||||
@@ -51,6 +54,16 @@ class LazyJavaPackageFragment(
|
||||
}))
|
||||
}
|
||||
|
||||
private val subPackages = c.storageManager.createRecursionTolerantLazyValue(
|
||||
{ jPackage.subPackages.map(JavaPackage::fqName) },
|
||||
// This breaks infinite recursion between loading Java descriptors and building light classes
|
||||
onRecursiveCall = listOf()
|
||||
)
|
||||
|
||||
internal fun getSubPackageFqNames(): List<FqName> = subPackages()
|
||||
|
||||
internal fun findClassifierByJavaClass(jClass: JavaClass): ClassDescriptor? = javaScope.findClassifierByJavaClass(jClass)
|
||||
|
||||
private val partToFacade by c.storageManager.createLazyValue {
|
||||
val result = hashMapOf<String, String>()
|
||||
kotlinClasses@for ((partName, kotlinClass) in binaryClasses) {
|
||||
|
||||
+2
-11
@@ -118,7 +118,8 @@ class LazyJavaPackageScope(
|
||||
return classes(FindClassRequest(name, javaClass))
|
||||
}
|
||||
|
||||
fun findClassifierByJavaClass(javaClass: JavaClass, location: LookupLocation) = findClassifier(javaClass.name, javaClass, location)
|
||||
internal fun findClassifierByJavaClass(javaClass: JavaClass) =
|
||||
findClassifier(javaClass.name, javaClass, NoLookupLocation.FROM_JAVA_LOADER)
|
||||
|
||||
override fun getContributedVariables(name: Name, location: LookupLocation): Collection<PropertyDescriptor> = emptyList()
|
||||
|
||||
@@ -143,22 +144,12 @@ class LazyJavaPackageScope(
|
||||
return super.getFunctionNames(kindFilter, nameFilter)
|
||||
}
|
||||
|
||||
private val subPackages = c.storageManager.createRecursionTolerantLazyValue(
|
||||
{
|
||||
jPackage.subPackages.map { sp -> sp.fqName }
|
||||
},
|
||||
// This breaks infinite recursion between loading Java descriptors and building light classes
|
||||
onRecursiveCall = listOf()
|
||||
)
|
||||
|
||||
override fun computeNonDeclaredFunctions(result: MutableCollection<SimpleFunctionDescriptor>, name: Name) {
|
||||
c.components.samConversionResolver.resolveSamConstructor(ownerDescriptor) {
|
||||
getContributedClassifier(name, NoLookupLocation.FOR_ALREADY_TRACKED)
|
||||
}?.let { result.add(it) }
|
||||
}
|
||||
|
||||
override fun getSubPackages() = subPackages()
|
||||
|
||||
override fun getPropertyNames(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean) = listOf<Name>()
|
||||
|
||||
// we don't use implementation from super which caches all descriptors and does not use filters
|
||||
|
||||
-3
@@ -26,7 +26,6 @@ import org.jetbrains.kotlin.load.java.components.DescriptorResolverUtils.resolve
|
||||
import org.jetbrains.kotlin.load.java.descriptors.getParentJavaStaticClassScope
|
||||
import org.jetbrains.kotlin.load.java.lazy.LazyJavaResolverContext
|
||||
import org.jetbrains.kotlin.load.java.structure.JavaClass
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.resolve.DescriptorFactory.createEnumValueOfMethod
|
||||
import org.jetbrains.kotlin.resolve.DescriptorFactory.createEnumValuesMethod
|
||||
@@ -69,8 +68,6 @@ class LazyJavaStaticClassScope(
|
||||
return null
|
||||
}
|
||||
|
||||
override fun getSubPackages(): Collection<FqName> = listOf()
|
||||
|
||||
override fun computeNonDeclaredFunctions(result: MutableCollection<SimpleFunctionDescriptor>, name: Name) {
|
||||
c.components.samConversionResolver.resolveSamConstructor(ownerDescriptor) {
|
||||
ownerDescriptor.unsubstitutedInnerClassesScope.getContributedClassifier(name, NoLookupLocation.FOR_ALREADY_TRACKED)
|
||||
|
||||
-4
@@ -21,16 +21,12 @@ import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor
|
||||
import org.jetbrains.kotlin.load.java.lazy.LazyJavaResolverContext
|
||||
import org.jetbrains.kotlin.load.java.structure.JavaMethod
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.types.KotlinType
|
||||
|
||||
abstract class LazyJavaStaticScope(c: LazyJavaResolverContext) : LazyJavaScope(c) {
|
||||
|
||||
override fun getDispatchReceiverParameter() = null
|
||||
|
||||
abstract fun getSubPackages(): Collection<FqName>
|
||||
|
||||
override fun resolveMethodSignature(
|
||||
method: JavaMethod, methodTypeParameters: List<TypeParameterDescriptor>, returnType: KotlinType,
|
||||
valueParameters: List<ValueParameterDescriptor>
|
||||
|
||||
Reference in New Issue
Block a user