rrn/rd/KT-63270-swift-printer

KT-63270: add swift printing capabilities to SIR

Co-authored-by: Artem Olkov <artem.olkov@jetbrains.com>
Co-authored-by: Sergej Jaskiewicz <jaskiewiczs@icloud.com>


Merge-request: KT-MR-13191
Merged-by: Gleb Lukianets <Gleb.Lukianets@jetbrains.com>
This commit is contained in:
Artem Olkov
2023-11-24 12:53:51 +00:00
committed by Space Team
parent f9933adf5e
commit a040954f68
30 changed files with 533 additions and 46 deletions
@@ -41,7 +41,7 @@ class SirGenerator : SirFactory {
?.pathSegments()
?.toListString()
?.let { names -> buildForeignFunction {
origin = SirOrigin(path = names)
origin = SirOrigin.KotlinEntity(names)
visibility = SirVisibility.PUBLIC
}
}
@@ -15,6 +15,7 @@ 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.SirOrigin
import org.jetbrains.kotlin.sir.builder.SirModuleBuilder
import org.jetbrains.kotlin.sir.builder.buildModule
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
@@ -52,6 +53,7 @@ abstract class AbstractKotlinSirContextTestBase : AbstractAnalysisApiBasedTest()
val module = buildModule {
val sirFactory = SirGenerator()
ktFiles.forEach { file ->
name = "Test"
declarations += sirFactory.build(file)
}
}
@@ -60,7 +62,7 @@ abstract class AbstractKotlinSirContextTestBase : AbstractAnalysisApiBasedTest()
module.declarations
.filterIsInstance<SirForeignFunction>()
.forEach {
appendLine("${it.origin.path}")
appendLine("${(it.origin as SirOrigin.KotlinEntity).path}")
}
}