Introduce KotlinMetadataFinder#hasMetadataPackage

Before creating a MetadataPackageFragment, check that the corresponding
directory (across the classpath) contains at least one .kotlin_metadata file.
Otherwise we're creating packages for every simple name queried during the
resolution and sometimes prefer a (empty) package to the existing class, for
example when the latter class is star-imported
This commit is contained in:
Alexander Udalov
2016-11-23 16:31:39 +03:00
parent bfb7b21472
commit 0dc31af73d
6 changed files with 28 additions and 1 deletions
@@ -119,6 +119,9 @@ class DirectoryBasedClassFinder(
// TODO
override fun findMetadata(classId: ClassId): InputStream? = null
// TODO
override fun hasMetadataPackage(fqName: FqName): Boolean = false
// TODO: load built-ins from packageDirectory?
override fun findBuiltInsData(packageFqName: FqName): InputStream? = null
}
@@ -59,6 +59,9 @@ class JvmIDEVirtualFileFinder(private val scope: GlobalSearchScope) : VirtualFil
// TODO
override fun findMetadata(classId: ClassId): InputStream? = null
// TODO
override fun hasMetadataPackage(fqName: FqName): Boolean = false
// TODO: load built-ins metadata from scope
override fun findBuiltInsData(packageFqName: FqName): InputStream? = null