Refactor JDR: minor extract function in LazyJavaPackageFragmentProvider

This commit is contained in:
Pavel V. Talanov
2014-02-07 19:10:07 +04:00
parent 2fe2a50b14
commit 16a2a5cd62
@@ -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? {