kotlin-objective-c cross resolve: introduce createNamer() function

This commit is contained in:
Max Medvedev
2018-06-22 11:06:12 +03:00
committed by SvyatoslavScherbina
parent e6b66bb6c5
commit 0d8e176050
@@ -12,10 +12,7 @@ import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.incremental.components.NoLookupLocation import org.jetbrains.kotlin.incremental.components.NoLookupLocation
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe import org.jetbrains.kotlin.resolve.descriptorUtil.*
import org.jetbrains.kotlin.resolve.descriptorUtil.isSubclassOf
import org.jetbrains.kotlin.resolve.descriptorUtil.module
import org.jetbrains.kotlin.resolve.descriptorUtil.parentsWithSelf
interface ObjCExportNamer { interface ObjCExportNamer {
fun getPackageName(fqName: FqName): String fun getPackageName(fqName: FqName): String
@@ -27,6 +24,15 @@ interface ObjCExportNamer {
fun getEnumEntrySelector(descriptor: ClassDescriptor): String fun getEnumEntrySelector(descriptor: ClassDescriptor): String
} }
fun createNamer(moduleDescriptor: ModuleDescriptor,
topLevelNamePrefix: String = moduleDescriptor.namePrefix): ObjCExportNamer {
val generator = object : ObjCExportHeaderGenerator(moduleDescriptor, moduleDescriptor.builtIns, topLevelNamePrefix) {
override fun reportWarning(text: String) {}
override fun reportWarning(method: FunctionDescriptor, text: String) {}
}
return generator.namer
}
internal class ObjCExportNamerImpl( internal class ObjCExportNamerImpl(
val moduleDescriptor: ModuleDescriptor, val moduleDescriptor: ModuleDescriptor,
builtIns: KotlinBuiltIns, builtIns: KotlinBuiltIns,