Make ClassId's relative class name FqName instead of FqNameUnsafe

It was FqNameUnsafe in times when there were classes without identifier names,
specifically class objects with names like '<class-object-for-...>'
This commit is contained in:
Alexander Udalov
2015-03-18 18:20:09 +03:00
parent 31554b9fa3
commit 9a041136f2
15 changed files with 94 additions and 112 deletions
@@ -19,7 +19,6 @@ package org.jetbrains.kotlin.serialization.deserialization;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.name.ClassId;
import org.jetbrains.kotlin.name.FqName;
import org.jetbrains.kotlin.name.FqNameUnsafe;
import org.jetbrains.kotlin.name.Name;
import org.jetbrains.kotlin.serialization.ProtoBuf;
@@ -85,7 +84,7 @@ public class NameResolver {
index = proto.getParentQualifiedName();
}
return new ClassId(FqName.fromSegments(packageFqName), FqNameUnsafe.fromSegments(relativeClassName), local);
return new ClassId(FqName.fromSegments(packageFqName), FqName.fromSegments(relativeClassName), local);
}
@NotNull
@@ -16,19 +16,16 @@
package org.jetbrains.kotlin.serialization.deserialization
import org.jetbrains.kotlin.serialization.ProtoBuf
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.serialization.deserialization.NameResolver
import org.jetbrains.kotlin.name.FqNameUnsafe
import org.jetbrains.kotlin.serialization.ProtoBuf
public data class ProtoContainer(val classProto: ProtoBuf.Class?, val packageFqName: FqName?) {
{
assert(classProto != null || packageFqName != null)
assert(classProto == null || packageFqName == null)
init {
assert((classProto != null) xor (packageFqName != null))
}
fun getFqName(nameResolver: NameResolver): FqNameUnsafe {
if (packageFqName != null) return packageFqName.toUnsafe()
fun getFqName(nameResolver: NameResolver): FqName {
if (packageFqName != null) return packageFqName
return nameResolver.getClassId(classProto!!.getFqName()).asSingleFqName()
}