Make ClassDescriptor#classId nullable

Local classes or anonymous objects do not have a class id. Use "!!" almost
everywhere to make assertion explicit
This commit is contained in:
Alexander Udalov
2016-10-14 14:29:05 +03:00
parent 17e54b6d2d
commit 0e9f29fdba
9 changed files with 22 additions and 22 deletions
@@ -271,7 +271,7 @@ internal object RuntimeTypeMapper {
val classId = klass.classId
if (!classId.isLocal) {
JavaToKotlinClassMap.INSTANCE.mapJavaToKotlin(classId.asSingleFqName(), DefaultBuiltIns.Instance)?.let { return it.classId }
JavaToKotlinClassMap.INSTANCE.mapJavaToKotlin(classId.asSingleFqName(), DefaultBuiltIns.Instance)?.let { return it.classId!! }
}
return classId
@@ -51,7 +51,7 @@ internal fun ClassDescriptor.toJavaClass(): Class<*>? {
else -> {
// If this is neither a Kotlin class nor a Java class, it is either a built-in or some fake class descriptor like the one
// that's created for java.io.Serializable in JvmBuiltInsSettings
val classId = JavaToKotlinClassMap.INSTANCE.mapKotlinToJava(DescriptorUtils.getFqName(this)) ?: classId
val classId = JavaToKotlinClassMap.INSTANCE.mapKotlinToJava(DescriptorUtils.getFqName(this)) ?: classId!!
val packageName = classId.packageFqName.asString()
val className = classId.relativeClassName.asString()
// All pseudo-classes like kotlin.String.Companion must be accessible from the current class loader