diff --git a/compiler/serialization/src/org/jetbrains/kotlin/serialization/StringTable.java b/compiler/serialization/src/org/jetbrains/kotlin/serialization/StringTable.java index bfeb774e8e3..62db7a8c6d4 100644 --- a/compiler/serialization/src/org/jetbrains/kotlin/serialization/StringTable.java +++ b/compiler/serialization/src/org/jetbrains/kotlin/serialization/StringTable.java @@ -17,7 +17,7 @@ package org.jetbrains.kotlin.serialization; import org.jetbrains.annotations.NotNull; -import org.jetbrains.kotlin.descriptors.ClassOrPackageFragmentDescriptor; +import org.jetbrains.kotlin.descriptors.ClassDescriptor; import org.jetbrains.kotlin.name.FqName; import java.io.OutputStream; @@ -25,7 +25,7 @@ import java.io.OutputStream; public interface StringTable { int getStringIndex(@NotNull String string); - int getFqNameIndex(@NotNull ClassOrPackageFragmentDescriptor descriptor); + int getFqNameIndex(@NotNull ClassDescriptor descriptor); int getFqNameIndex(@NotNull FqName fqName); diff --git a/compiler/serialization/src/org/jetbrains/kotlin/serialization/StringTableImpl.java b/compiler/serialization/src/org/jetbrains/kotlin/serialization/StringTableImpl.java index f1910f2ef1b..68639b594dd 100644 --- a/compiler/serialization/src/org/jetbrains/kotlin/serialization/StringTableImpl.java +++ b/compiler/serialization/src/org/jetbrains/kotlin/serialization/StringTableImpl.java @@ -18,7 +18,6 @@ package org.jetbrains.kotlin.serialization; import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.descriptors.ClassDescriptor; -import org.jetbrains.kotlin.descriptors.ClassOrPackageFragmentDescriptor; import org.jetbrains.kotlin.descriptors.DeclarationDescriptor; import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor; import org.jetbrains.kotlin.name.FqName; @@ -78,41 +77,34 @@ public class StringTableImpl implements StringTable { } @Override - public int getFqNameIndex(@NotNull ClassOrPackageFragmentDescriptor descriptor) { + public int getFqNameIndex(@NotNull ClassDescriptor descriptor) { if (ErrorUtils.isError(descriptor)) { throw new IllegalStateException("Cannot get FQ name of error class: " + descriptor); } QualifiedName.Builder builder = QualifiedName.newBuilder(); - if (descriptor instanceof ClassDescriptor) { - builder.setKind(QualifiedName.Kind.CLASS); - } + builder.setKind(QualifiedName.Kind.CLASS); DeclarationDescriptor containingDeclaration = descriptor.getContainingDeclaration(); - int shortName; + String shortName; if (containingDeclaration instanceof PackageFragmentDescriptor) { - shortName = getSimpleNameIndex(descriptor.getName()); - PackageFragmentDescriptor fragment = (PackageFragmentDescriptor) containingDeclaration; - if (!fragment.getFqName().isRoot()) { - builder.setParentQualifiedName(getFqNameIndex(fragment.getFqName())); + shortName = descriptor.getName().asString(); + FqName packageFqName = ((PackageFragmentDescriptor) containingDeclaration).getFqName(); + if (!packageFqName.isRoot()) { + builder.setParentQualifiedName(getFqNameIndex(packageFqName)); } } else if (containingDeclaration instanceof ClassDescriptor) { - shortName = getSimpleNameIndex(descriptor.getName()); + shortName = descriptor.getName().asString(); ClassDescriptor outerClass = (ClassDescriptor) containingDeclaration; builder.setParentQualifiedName(getFqNameIndex(outerClass)); } else { - if (descriptor instanceof ClassDescriptor) { - builder.setKind(QualifiedName.Kind.LOCAL); - shortName = getStringIndex(extension.getLocalClassName((ClassDescriptor) descriptor)); - } - else { - throw new IllegalStateException("Package container should be a package: " + descriptor); - } + builder.setKind(QualifiedName.Kind.LOCAL); + shortName = extension.getLocalClassName(descriptor); } - builder.setShortName(shortName); + builder.setShortName(getStringIndex(shortName)); return qualifiedNames.intern(new FqNameProto(builder)); }