Add KotlinClassFinder#findKotlinClass(ClassId)

Will be used to load nested classes correctly at runtime
This commit is contained in:
Alexander Udalov
2014-08-20 13:01:20 +04:00
parent c854b1d713
commit bc1d59a538
8 changed files with 28 additions and 31 deletions
@@ -20,13 +20,18 @@ import org.jetbrains.jet.lang.resolve.java.structure.JavaClass
import org.jetbrains.jet.lang.resolve.java.structure.impl.JavaClassImpl
import org.jetbrains.jet.lang.resolve.name.FqName
import org.jetbrains.kotlin.util.sure
import org.jetbrains.jet.descriptors.serialization.ClassId
public abstract class VirtualFileKotlinClassFinder() : VirtualFileFinder {
public abstract class VirtualFileKotlinClassFinder : VirtualFileFinder {
override fun findKotlinClass(fqName: FqName): KotlinJvmBinaryClass? {
val file = findVirtualFileWithHeader(fqName) ?: return null
return KotlinBinaryClassCache.getKotlinBinaryClass(file)
}
override fun findKotlinClass(classId: ClassId): KotlinJvmBinaryClass? {
return findKotlinClass(classId.asSingleFqName().toSafe())
}
override fun findKotlinClass(javaClass: JavaClass): KotlinJvmBinaryClass? {
var file = (javaClass as JavaClassImpl).getPsi().getContainingFile()!!.getVirtualFile() ?: return null
if (javaClass.getOuterClass() != null) {