Fix package part class name calculation

Package part name can contain dollars
This commit is contained in:
Alexander Udalov
2015-12-23 14:26:40 +03:00
parent e67318e049
commit 7170d488bd
3 changed files with 9 additions and 4 deletions
@@ -67,5 +67,5 @@ fun ClassDescriptor.getParentJavaStaticClassScope(): LazyJavaStaticClassScope? {
}
fun DeserializedCallableMemberDescriptor.getImplClassNameForDeserialized(): Name? {
return (packagePartSource as? JvmPackagePartSource)?.className?.fqNameForClassNameWithoutDollars?.shortName()
return (packagePartSource as? JvmPackagePartSource)?.simpleName
}
@@ -202,8 +202,7 @@ public abstract class AbstractBinaryClassAnnotationAndConstantLoader<A : Any, C
if (property && container is ProtoContainer.Class && container.isInterface) {
return container.classId.createNestedClassId(Name.identifier(JvmAbi.DEFAULT_IMPLS_CLASS_NAME))
}
return ((container as? ProtoContainer.Package)?.packagePartSource as? JvmPackagePartSource)
?.className?.fqNameForClassNameWithoutDollars?.let { ClassId.topLevel(it) }
return ((container as? ProtoContainer.Package)?.packagePartSource as? JvmPackagePartSource)?.classId
}
private fun loadAnnotationsAndInitializers(kotlinClass: KotlinJvmBinaryClass): Storage<A, C> {
@@ -16,7 +16,13 @@
package org.jetbrains.kotlin.load.kotlin
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.resolve.jvm.JvmClassName
import org.jetbrains.kotlin.serialization.deserialization.descriptors.PackagePartSource
class JvmPackagePartSource(val className: JvmClassName) : PackagePartSource
class JvmPackagePartSource(val className: JvmClassName) : PackagePartSource {
val simpleName: Name get() = Name.identifier(className.internalName.substringAfterLast('/'))
val classId: ClassId get() = ClassId(className.packageFqName, simpleName)
}