[Swift Export]: KT-63280: Package inflation
Merge-request: KT-MR-13331 Merged-by: Gleb Lukianets <Gleb.Lukianets@jetbrains.com>
This commit is contained in:
committed by
Space Team
parent
0b1c4b836a
commit
64ebec7955
+8
-10
@@ -13,29 +13,27 @@ import org.jetbrains.kotlin.sir.*
|
||||
import org.jetbrains.kotlin.sir.builder.buildForeignFunction
|
||||
|
||||
internal fun KtNamedFunction.toForeignFunction(): SirForeignFunction = buildForeignFunction {
|
||||
origin = SirOrigin.ForeignEntity(
|
||||
AAFunction(this@toForeignFunction)
|
||||
)
|
||||
origin = AAFunction(this@toForeignFunction)
|
||||
}
|
||||
|
||||
private fun KtValueParameterSymbol.toSirParam(): KotlinParameter = AAParameter(
|
||||
private fun KtValueParameterSymbol.toSirParam(): SirKotlinOrigin.Parameter = AAParameter(
|
||||
name = name.toString(),
|
||||
type = AAKotlinType(name = returnType.toString())
|
||||
)
|
||||
|
||||
private class AAFunction(
|
||||
private val originalFunction: KtNamedFunction
|
||||
) : KotlinFunction {
|
||||
) : SirKotlinOrigin.Function {
|
||||
override val fqName: List<String>
|
||||
get() = originalFunction.fqName?.pathSegments()?.toListString() ?: emptyList()
|
||||
|
||||
override val parameters: List<KotlinParameter>
|
||||
override val parameters: List<SirKotlinOrigin.Parameter>
|
||||
get() = analyze(originalFunction) {
|
||||
val function = originalFunction.getFunctionLikeSymbol()
|
||||
function.valueParameters.map { it.toSirParam() }
|
||||
}
|
||||
|
||||
override val returnType: KotlinType
|
||||
override val returnType: SirKotlinOrigin.Type
|
||||
get() = analyze(originalFunction) {
|
||||
val function = originalFunction.getFunctionLikeSymbol()
|
||||
AAKotlinType(name = function.returnType.toString())
|
||||
@@ -44,11 +42,11 @@ private class AAFunction(
|
||||
}
|
||||
private data class AAParameter(
|
||||
override val name: String,
|
||||
override val type: KotlinType
|
||||
) : KotlinParameter
|
||||
override val type: SirKotlinOrigin.Type
|
||||
) : SirKotlinOrigin.Parameter
|
||||
|
||||
private data class AAKotlinType(
|
||||
override val name: String
|
||||
) : KotlinType
|
||||
) : SirKotlinOrigin.Type
|
||||
|
||||
private fun List<Name>.toListString() = map { it.asString() }
|
||||
|
||||
+2
-4
@@ -10,13 +10,11 @@ import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBase
|
||||
import org.jetbrains.kotlin.analysis.test.framework.project.structure.ktModuleProvider
|
||||
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.SirForeignFunction
|
||||
import org.jetbrains.kotlin.sir.KotlinFunction
|
||||
import org.jetbrains.kotlin.sir.SirKotlinOrigin
|
||||
import org.jetbrains.kotlin.sir.SirOrigin
|
||||
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
|
||||
import org.jetbrains.kotlin.test.services.assertions
|
||||
@@ -50,7 +48,7 @@ abstract class AbstractKotlinSirContextTestBase : AbstractAnalysisApiBasedTest()
|
||||
module.declarations
|
||||
.filterIsInstance<SirForeignFunction>()
|
||||
.forEach {
|
||||
val function = (it.origin as SirOrigin.ForeignEntity).entity as KotlinFunction
|
||||
val function = it.origin as SirKotlinOrigin.Function
|
||||
appendLine("${function.fqName}")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user