Remove JavaToKotlinClassMap dependency on built-ins instance

This commit is contained in:
Denis Zharkov
2016-04-01 17:39:17 +03:00
parent 5bf39689e9
commit 7fe5a9db8d
13 changed files with 142 additions and 93 deletions
@@ -16,6 +16,7 @@
package org.jetbrains.kotlin.idea.core
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
import org.jetbrains.kotlin.idea.util.ImportInsertHelper
import org.jetbrains.kotlin.load.java.components.JavaAnnotationMapper
import org.jetbrains.kotlin.name.FqName
@@ -66,7 +67,7 @@ class ImportableFqNameClassifier(private val file: KtFile) {
}
return when {
JavaToKotlinClassMap.INSTANCE.mapPlatformClass(fqName).isNotEmpty()
JavaToKotlinClassMap.INSTANCE.mapPlatformClass(fqName, DefaultBuiltIns.Instance).isNotEmpty()
|| JavaAnnotationMapper.javaToKotlinNameMap[fqName] != null -> Classification.notToBeUsedInKotlin
fqName.parent() == file.packageFqName -> Classification.fromCurrentPackage
@@ -20,6 +20,7 @@ import com.intellij.lang.java.JavaLanguage
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.TextRange
import com.intellij.psi.*
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
import org.jetbrains.kotlin.name.FqNameUnsafe
import org.jetbrains.kotlin.platform.JavaToKotlinClassMap
import org.jetbrains.kotlin.psi.psiUtil.*
@@ -242,7 +243,9 @@ data class DataForConversion private constructor(
else {
val fqName = FqNameUnsafe(qualifiedName)
// skip explicit imports of platform classes mapped into Kotlin classes
if (fqName.isSafe && JavaToKotlinClassMap.INSTANCE.mapPlatformClass(fqName.toSafe()).isNotEmpty()) continue
if (fqName.isSafe
&& JavaToKotlinClassMap.INSTANCE.mapPlatformClass(
fqName.toSafe(), DefaultBuiltIns.Instance).isNotEmpty()) continue
append("import $qualifiedName\n")
}
}
@@ -43,6 +43,7 @@ import org.jetbrains.eval4j.jdi.JDIEval
import org.jetbrains.eval4j.jdi.asJdiValue
import org.jetbrains.eval4j.jdi.asValue
import org.jetbrains.eval4j.jdi.makeInitialFrame
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
import org.jetbrains.kotlin.caches.resolve.KotlinCacheService
import org.jetbrains.kotlin.codegen.*
import org.jetbrains.kotlin.codegen.binding.CodegenBinding
@@ -546,7 +547,7 @@ fun Type.getClassDescriptor(scope: GlobalSearchScope): ClassDescriptor? {
val jvmName = JvmClassName.byInternalName(internalName).fqNameForClassNameWithoutDollars
val platformClasses = JavaToKotlinClassMap.INSTANCE.mapPlatformClass(jvmName)
val platformClasses = JavaToKotlinClassMap.INSTANCE.mapPlatformClass(jvmName, DefaultBuiltIns.Instance)
if (platformClasses.isNotEmpty()) return platformClasses.first()
return runReadAction {