rrn/rd/KT-63266/sir-gen
Swift Export: generated sir snapshot Merge-request: KT-MR-13128 Merged-by: Gleb Lukianets <Gleb.Lukianets@jetbrains.com>
This commit is contained in:
committed by
Space Team
parent
1f4099833a
commit
c3725ec8c8
+9
-1
@@ -11,8 +11,12 @@ import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.psi.KtNamedFunction
|
||||
import org.jetbrains.kotlin.psi.KtTreeVisitorVoid
|
||||
import org.jetbrains.kotlin.psi.psiUtil.isPublic
|
||||
import org.jetbrains.kotlin.sir.SirOrigin
|
||||
import org.jetbrains.kotlin.sir.SirDeclaration
|
||||
import org.jetbrains.kotlin.sir.SirForeignFunction
|
||||
import org.jetbrains.kotlin.sir.SirVisibility
|
||||
import org.jetbrains.kotlin.sir.builder.SirForeignFunctionBuilder
|
||||
import org.jetbrains.kotlin.sir.builder.buildForeignFunction
|
||||
|
||||
/**
|
||||
* A root interface for classes that produce Swift IR elements.
|
||||
@@ -36,7 +40,11 @@ class SirGenerator : SirFactory {
|
||||
?.fqName
|
||||
?.pathSegments()
|
||||
?.toListString()
|
||||
?.let { names -> SirForeignFunction(fqName = names) }
|
||||
?.let { names -> buildForeignFunction {
|
||||
origin = SirOrigin(path = names)
|
||||
visibility = SirVisibility.PUBLIC
|
||||
}
|
||||
}
|
||||
?.let { res.add(it) }
|
||||
}
|
||||
}
|
||||
|
||||
+11
-6
@@ -12,8 +12,11 @@ import org.jetbrains.kotlin.analysis.test.framework.test.configurators.*
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.FrontendKind
|
||||
import org.jetbrains.kotlin.platform.konan.NativePlatforms
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.sir.SirDeclaration
|
||||
import org.jetbrains.kotlin.sir.SirForeignFunction
|
||||
import org.jetbrains.kotlin.sir.SirModule
|
||||
import org.jetbrains.kotlin.sir.builder.SirModuleBuilder
|
||||
import org.jetbrains.kotlin.sir.builder.buildModule
|
||||
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
|
||||
import org.jetbrains.kotlin.test.services.TestModuleStructure
|
||||
import org.jetbrains.kotlin.test.services.TestServices
|
||||
@@ -46,16 +49,18 @@ abstract class AbstractKotlinSirContextTestBase : AbstractAnalysisApiBasedTest()
|
||||
val ktFiles = moduleStructure.modules
|
||||
.flatMap { testServices.ktModuleProvider.getModuleFiles(it).filterIsInstance<KtFile>() }
|
||||
|
||||
val module = SirModule()
|
||||
val sirFactory = SirGenerator()
|
||||
ktFiles.forEach { file ->
|
||||
module.declarations += sirFactory.build(file)
|
||||
}
|
||||
val module = buildModule() {
|
||||
val sirFactory = SirGenerator()
|
||||
ktFiles.forEach { file ->
|
||||
declarations += sirFactory.build(file)
|
||||
}
|
||||
}.build()
|
||||
|
||||
val actual = buildString {
|
||||
module.declarations
|
||||
.filterIsInstance<SirForeignFunction>()
|
||||
.forEach {
|
||||
appendLine("${it.fqName}")
|
||||
appendLine("${it.origin.path}")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user