From 7170d488bdf356c47370a647dea639c5f8cadaea Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 23 Dec 2015 14:26:40 +0300 Subject: [PATCH] Fix package part class name calculation Package part name can contain dollars --- .../org/jetbrains/kotlin/load/java/descriptors/util.kt | 2 +- .../AbstractBinaryClassAnnotationAndConstantLoader.kt | 3 +-- .../jetbrains/kotlin/load/kotlin/JvmPackagePartSource.kt | 8 +++++++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/descriptors/util.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/descriptors/util.kt index 5a610f0d868..4123dae48a6 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/descriptors/util.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/descriptors/util.kt @@ -67,5 +67,5 @@ fun ClassDescriptor.getParentJavaStaticClassScope(): LazyJavaStaticClassScope? { } fun DeserializedCallableMemberDescriptor.getImplClassNameForDeserialized(): Name? { - return (packagePartSource as? JvmPackagePartSource)?.className?.fqNameForClassNameWithoutDollars?.shortName() + return (packagePartSource as? JvmPackagePartSource)?.simpleName } diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/AbstractBinaryClassAnnotationAndConstantLoader.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/AbstractBinaryClassAnnotationAndConstantLoader.kt index 24ecab7e72b..6a89163eb6e 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/AbstractBinaryClassAnnotationAndConstantLoader.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/AbstractBinaryClassAnnotationAndConstantLoader.kt @@ -202,8 +202,7 @@ public abstract class AbstractBinaryClassAnnotationAndConstantLoader { diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/JvmPackagePartSource.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/JvmPackagePartSource.kt index 0155fb07883..90e932118c0 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/JvmPackagePartSource.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/JvmPackagePartSource.kt @@ -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) +}