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.name.FqName
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe
import org.jetbrains.kotlin.resolve.descriptorUtil.isSubclassOf
import org.jetbrains.kotlin.resolve.descriptorUtil.module
import org.jetbrains.kotlin.resolve.descriptorUtil.parentsWithSelf
import org.jetbrains.kotlin.resolve.descriptorUtil.*
interface ObjCExportNamer {
fun getPackageName(fqName: FqName): String
@@ -27,6 +24,15 @@ interface ObjCExportNamer {
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(
val moduleDescriptor: ModuleDescriptor,
builtIns: KotlinBuiltIns,