J2K JavaToKotlinClassMap
This commit is contained in:
@@ -49,7 +49,7 @@ private fun KotlinType.approximateNonDynamicFlexibleTypes(
|
||||
if (isFlexible()) {
|
||||
val flexible = asFlexibleType()
|
||||
val lowerClass = flexible.lowerBound.constructor.declarationDescriptor as? ClassDescriptor?
|
||||
val isCollection = lowerClass != null && JavaToKotlinClassMap.INSTANCE.isMutable(lowerClass)
|
||||
val isCollection = lowerClass != null && JavaToKotlinClassMap.isMutable(lowerClass)
|
||||
// (Mutable)Collection<T>! -> MutableCollection<T>?
|
||||
// Foo<(Mutable)Collection<T>!>! -> Foo<Collection<T>>?
|
||||
// Foo! -> Foo?
|
||||
|
||||
+1
-1
@@ -215,7 +215,7 @@ object SourceNavigationHelper {
|
||||
fun getOriginalPsiClassOrCreateLightClass(classOrObject: KtClassOrObject): PsiClass? {
|
||||
val fqName = classOrObject.fqName
|
||||
if (fqName != null) {
|
||||
val javaClassId = JavaToKotlinClassMap.INSTANCE.mapKotlinToJava(fqName.toUnsafe())
|
||||
val javaClassId = JavaToKotlinClassMap.mapKotlinToJava(fqName.toUnsafe())
|
||||
if (javaClassId != null) {
|
||||
return JavaPsiFacade.getInstance(classOrObject.project).findClass(
|
||||
javaClassId.asSingleFqName().asString(),
|
||||
|
||||
+1
-1
@@ -112,7 +112,7 @@ class TypeInstantiationItems(
|
||||
val typeArgs = fuzzyType.type.arguments
|
||||
inheritanceSearchers.addInheritorSearcher(classDescriptor, classDescriptor, typeArgs, fuzzyType.freeParameters, tail)
|
||||
|
||||
val javaClassId = JavaToKotlinClassMap.INSTANCE.mapKotlinToJava(DescriptorUtils.getFqName(classifier))
|
||||
val javaClassId = JavaToKotlinClassMap.mapKotlinToJava(DescriptorUtils.getFqName(classifier))
|
||||
if (javaClassId != null) {
|
||||
val javaAnalog = resolutionFacade.moduleDescriptor.resolveTopLevelClass(javaClassId.asSingleFqName(), NoLookupLocation.FROM_IDE)
|
||||
if (javaAnalog != null) {
|
||||
|
||||
@@ -93,4 +93,4 @@ class ImportableFqNameClassifier(private val file: KtFile) {
|
||||
}
|
||||
|
||||
fun isJavaClassNotToBeUsedInKotlin(fqName: FqName): Boolean
|
||||
= JavaToKotlinClassMap.INSTANCE.isJavaPlatformClass(fqName) || JavaAnnotationMapper.javaToKotlinNameMap[fqName] != null
|
||||
= JavaToKotlinClassMap.isJavaPlatformClass(fqName) || JavaAnnotationMapper.javaToKotlinNameMap[fqName] != null
|
||||
|
||||
@@ -249,7 +249,7 @@ 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.isJavaPlatformClass(fqName.toSafe())) continue
|
||||
if (fqName.isSafe && JavaToKotlinClassMap.isJavaPlatformClass(fqName.toSafe())) continue
|
||||
append("import $qualifiedName\n")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -122,7 +122,7 @@ class PlainTextPasteImportResolver(val dataForConversion: DataForConversion, val
|
||||
.map { it to it.resolveToDescriptor(resolutionFacade) }
|
||||
.filter { canBeImported(it.second) }
|
||||
|
||||
classes.find { (_, descriptor) -> JavaToKotlinClassMap.INSTANCE.mapPlatformClass(descriptor!!).isNotEmpty() }
|
||||
classes.find { (_, descriptor) -> JavaToKotlinClassMap.mapPlatformClass(descriptor!!).isNotEmpty() }
|
||||
?.let { (psiClass, _) -> addImport(psiElementFactory.createImportStatement(psiClass)) }
|
||||
if (reference.resolve() != null) return true
|
||||
|
||||
|
||||
@@ -552,7 +552,7 @@ fun Type.getClassDescriptor(scope: GlobalSearchScope): ClassDescriptor? {
|
||||
val jvmName = JvmClassName.byInternalName(internalName).fqNameForClassNameWithoutDollars
|
||||
|
||||
// TODO: use the correct built-ins from the module instead of DefaultBuiltIns here
|
||||
JavaToKotlinClassMap.INSTANCE.mapJavaToKotlin(jvmName)?.let(
|
||||
JavaToKotlinClassMap.mapJavaToKotlin(jvmName)?.let(
|
||||
DefaultBuiltIns.Instance.builtInsModule::findClassAcrossModuleDependencies
|
||||
)?.let { return it }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user