Refactor JDR: minor extract function in LazyJavaPackageFragmentProvider
This commit is contained in:
+9
-10
@@ -11,6 +11,7 @@ import org.jetbrains.jet.lang.resolve.java.resolver.DescriptorResolverUtils
|
|||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaPackageFragmentProvider
|
import org.jetbrains.jet.lang.resolve.java.resolver.JavaPackageFragmentProvider
|
||||||
import org.jetbrains.jet.lang.resolve.java.lazy.descriptors.LazyJavaPackageFragment
|
import org.jetbrains.jet.lang.resolve.java.lazy.descriptors.LazyJavaPackageFragment
|
||||||
import org.jetbrains.jet.lang.resolve.kotlin.KotlinJvmBinaryClass
|
import org.jetbrains.jet.lang.resolve.kotlin.KotlinJvmBinaryClass
|
||||||
|
import org.jetbrains.jet.lang.resolve.scopes.JetScope
|
||||||
|
|
||||||
public class LazyJavaPackageFragmentProvider(
|
public class LazyJavaPackageFragmentProvider(
|
||||||
outerContext: GlobalJavaResolverContext,
|
outerContext: GlobalJavaResolverContext,
|
||||||
@@ -78,20 +79,18 @@ public class LazyJavaPackageFragmentProvider(
|
|||||||
return c.javaResolverCache.getClassResolvedFromSource(fqName)
|
return c.javaResolverCache.getClassResolvedFromSource(fqName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
val resolvedClassifier = getContainingScope(javaClass)?.getClassifier(javaClass.getName())
|
||||||
|
return resolvedClassifier as? ClassDescriptor ?: c.javaResolverCache.getClass(javaClass)
|
||||||
|
}
|
||||||
|
|
||||||
val outer = javaClass.getOuterClass()
|
private fun getContainingScope(javaClass: JavaClass): JetScope? {
|
||||||
val scope = if (outer != null) {
|
val outerClass = javaClass.getOuterClass()
|
||||||
val outerClass = resolveClass(outer)
|
if (outerClass != null) {
|
||||||
if (outerClass == null) return c.javaResolverCache.getClass(javaClass)
|
return resolveClass(outerClass)?.getUnsubstitutedInnerClassesScope()
|
||||||
outerClass.getUnsubstitutedInnerClassesScope()
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
val outerPackage = getPackageFragment(fqName!!.parent())
|
return getPackageFragment(javaClass.getFqName()!!.parent())?.getMemberScope()
|
||||||
if (outerPackage == null) return c.javaResolverCache.getClass(javaClass)
|
|
||||||
outerPackage.getMemberScope()
|
|
||||||
}
|
}
|
||||||
return scope.getClassifier(javaClass.getName()) as? ClassDescriptor
|
|
||||||
?: c.javaResolverCache.getClass(javaClass)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun resolveClassByFqName(fqName: FqName): ClassDescriptor? {
|
override fun resolveClassByFqName(fqName: FqName): ClassDescriptor? {
|
||||||
|
|||||||
Reference in New Issue
Block a user