Do not duplicate list of default imports
This commit is contained in:
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.builtins.DefaultBuiltIns
|
|||||||
import org.jetbrains.kotlin.j2k.*
|
import org.jetbrains.kotlin.j2k.*
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.platform.JavaToKotlinClassMap
|
import org.jetbrains.kotlin.platform.JavaToKotlinClassMap
|
||||||
|
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform
|
||||||
|
|
||||||
class Import(val name: String) : Element() {
|
class Import(val name: String) : Element() {
|
||||||
override fun generateCode(builder: CodeBuilder) {
|
override fun generateCode(builder: CodeBuilder) {
|
||||||
@@ -78,17 +79,15 @@ private fun Converter.filterImport(name: String, ref: PsiJavaCodeReferenceElemen
|
|||||||
else if (target is KtLightClass) {
|
else if (target is KtLightClass) {
|
||||||
if (isFacadeClassFromLibrary(target)) return null
|
if (isFacadeClassFromLibrary(target)) return null
|
||||||
|
|
||||||
if (isUnderDefaultImports(target)) return null
|
if (isImportedByDefault(target)) return null
|
||||||
}
|
}
|
||||||
|
|
||||||
return name
|
return name
|
||||||
}
|
}
|
||||||
|
|
||||||
val DEFAULT_IMPORTS = setOf("java.lang",
|
private val DEFAULT_IMPORTS_SET: Set<FqName> = JvmPlatform.defaultModuleParameters.defaultImports
|
||||||
"kotlin", "kotlin.annotation", "kotlin.jvm",
|
.filter { it.isAllUnder }
|
||||||
"kotlin.collections", "kotlin.ranges", "kotlin.sequences",
|
.map { it.fqnPart() }
|
||||||
"kotlin.text", "kotlin.io")
|
.toSet()
|
||||||
|
|
||||||
fun isUnderDefaultImports(c: KtLightClass): Boolean {
|
private fun isImportedByDefault(c: KtLightClass) = c.getFqName().parent() in DEFAULT_IMPORTS_SET
|
||||||
return c.getFqName().parent().asString() in DEFAULT_IMPORTS
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user