- call multifile class members (compiling against binaries)

- inline multifile class members
HACK? scope-based part/facade resolution
This commit is contained in:
Dmitry Petrov
2015-09-11 10:08:01 +03:00
parent 50f83da6da
commit 838433ba8a
3 changed files with 30 additions and 5 deletions
@@ -61,12 +61,19 @@ public class LazyJavaPackageScope(
private val partToFacade = c.storageManager.createLazyValue {
val result = hashMapOf<String, String>()
for (kotlinClass in kotlinBinaryClasses()) {
kotlinClasses@for (kotlinClass in kotlinBinaryClasses()) {
val header = kotlinClass.classHeader
if (header.kind == KotlinClassHeader.Kind.MULTIFILE_CLASS_PART) {
val partName = kotlinClass.classId.shortClassName.asString()
val facadeName = header.multifileClassName ?: ""
result[partName] = facadeName
when (header.kind ) {
KotlinClassHeader.Kind.MULTIFILE_CLASS_PART -> {
val partName = kotlinClass.classId.shortClassName.asString()
val facadeName = header.multifileClassName ?: continue@kotlinClasses
result[partName] = facadeName
}
KotlinClassHeader.Kind.FILE_FACADE -> {
val fileFacadeName = kotlinClass.classId.shortClassName.asString()
result[fileFacadeName] = fileFacadeName
}
else -> {}
}
}
result