From f50ea1397ca9e3d9b021b66c585eaca90df08963 Mon Sep 17 00:00:00 2001 From: Igor Chevdar Date: Tue, 22 Oct 2019 11:55:46 +0300 Subject: [PATCH] [IR] Supported isExpect argument (#3482) [compiler-update] 1.3.70-dev-742 --- .../src/org/jetbrains/kotlin/backend/konan/Boxing.kt | 6 ++++-- .../org/jetbrains/kotlin/backend/konan/Context.kt | 3 ++- .../org/jetbrains/kotlin/backend/konan/EntryPoint.kt | 3 ++- .../backend/konan/EnumSpecialDescriptorsFactory.kt | 6 ++++-- .../kotlin/backend/konan/cgen/CBridgeGen.kt | 9 +++++---- .../kotlin/backend/konan/cgen/CBridgeGenUtils.kt | 3 ++- .../kotlin/backend/konan/lower/Autoboxing.kt | 3 ++- .../kotlin/backend/konan/lower/BridgesBuilding.kt | 3 ++- .../backend/konan/lower/CallableReferenceLowering.kt | 9 ++++++--- .../backend/konan/lower/EnumConstructorsLowering.kt | 3 ++- .../backend/konan/lower/FinallyBlocksLowering.kt | 1 + .../backend/konan/lower/InitializersLowering.kt | 3 ++- .../kotlin/backend/konan/lower/InteropLowering.kt | 6 ++++-- .../konan/lower/NativeSuspendFunctionLowering.kt | 6 ++++-- .../kotlin/backend/konan/lower/TestProcessor.kt | 12 ++++++++---- gradle.properties | 12 ++++++------ 16 files changed, 56 insertions(+), 32 deletions(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Boxing.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Boxing.kt index 1c28abd8a41..305be355279 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Boxing.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Boxing.kt @@ -71,7 +71,8 @@ internal val Context.getBoxFunction: (IrClass) -> IrSimpleFunction by Context.la isInline = false, isExternal = false, isTailrec = false, - isSuspend = false + isSuspend = false, + isExpect = false ).also { function -> function.valueParameters.add(WrappedValueParameterDescriptor().let { IrValueParameterImpl( @@ -122,7 +123,8 @@ internal val Context.getUnboxFunction: (IrClass) -> IrSimpleFunction by Context. isInline = false, isExternal = false, isTailrec = false, - isSuspend = false + isSuspend = false, + isExpect = false ).also { function -> function.valueParameters.add(WrappedValueParameterDescriptor().let { IrValueParameterImpl( diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Context.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Context.kt index b10a4a6d5a9..1f65a987884 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Context.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Context.kt @@ -140,7 +140,8 @@ internal class SpecialDeclarationsFactory(val context: Context) : KotlinMangler isExternal = false, isTailrec = false, isSuspend = function.isSuspend, - returnType = returnType + returnType = returnType, + isExpect = false ).apply { descriptor.bind(this) parent = function.parent diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/EntryPoint.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/EntryPoint.kt index f4bc4dead08..005dc682c30 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/EntryPoint.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/EntryPoint.kt @@ -39,7 +39,8 @@ internal fun makeEntryPoint(context: Context): IrFunction { isInline = false, isExternal = false, isTailrec = false, - isSuspend = false + isSuspend = false, + isExpect = false ).also { function -> function.valueParameters.add(WrappedValueParameterDescriptor().let { IrValueParameterImpl( diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/EnumSpecialDescriptorsFactory.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/EnumSpecialDescriptorsFactory.kt index fffeafcd423..920b4c34d2e 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/EnumSpecialDescriptorsFactory.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/EnumSpecialDescriptorsFactory.kt @@ -56,7 +56,8 @@ internal class EnumSpecialDeclarationsFactory(val context: Context) { isInner = false, isData = false, isExternal = false, - isInline = false + isInline = false, + isExpect = false ).apply { it.bind(this) parent = enumClass @@ -94,7 +95,8 @@ internal class EnumSpecialDeclarationsFactory(val context: Context) { isInline = false, isExternal = false, isTailrec = false, - isSuspend = false + isSuspend = false, + isExpect = false ).apply { it.bind(this) parent = implObject diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt index 0e9dbdf8c25..252cacc0ec1 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt @@ -570,7 +570,8 @@ private fun KotlinStubs.createFakeKotlinExternalFunction( isInline = false, isExternal = true, isTailrec = false, - isSuspend = false + isSuspend = false, + isExpect = false ) bridgeDescriptor.bind(bridge) @@ -1195,7 +1196,7 @@ private class ObjCBlockPointerValuePassing( OBJC_BLOCK_FUNCTION_IMPL, IrClassSymbolImpl(classDescriptor), Name.identifier(stubs.getUniqueKotlinFunctionReferenceClassName("BlockFunctionImpl")), ClassKind.CLASS, Visibilities.PRIVATE, Modality.FINAL, - isCompanion = false, isInner = false, isData = false, isExternal = false, isInline = false + isCompanion = false, isInner = false, isData = false, isExternal = false, isInline = false, isExpect = false ) classDescriptor.bind(irClass) irClass.createParameterDeclarations() @@ -1219,7 +1220,7 @@ private class ObjCBlockPointerValuePassing( Name.special(""), Visibilities.PUBLIC, irClass.defaultType, - isInline = false, isExternal = false, isPrimary = true + isInline = false, isExternal = false, isPrimary = true, isExpect = false ) constructorDescriptor.bind(constructor) irClass.addChild(constructor) @@ -1260,7 +1261,7 @@ private class ObjCBlockPointerValuePassing( overriddenInvokeMethod.name, Visibilities.PUBLIC, Modality.FINAL, returnType = functionType.arguments.last().typeOrNull!!, - isInline = false, isExternal = false, isTailrec = false, isSuspend = false + isInline = false, isExternal = false, isTailrec = false, isSuspend = false, isExpect = false ) invokeMethodDescriptor.bind(invokeMethod) invokeMethod.overriddenSymbols += overriddenInvokeMethod.symbol diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGenUtils.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGenUtils.kt index e5845dd73b5..90a1bc456ca 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGenUtils.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGenUtils.kt @@ -115,7 +115,8 @@ private fun createKotlinBridge( isInline = false, isExternal = isExternal, isTailrec = false, - isSuspend = false + isSuspend = false, + isExpect = false ) bridgeDescriptor.bind(bridge) if (isExternal) { diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/Autoboxing.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/Autoboxing.kt index 5b7c05b6565..ed715a14036 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/Autoboxing.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/Autoboxing.kt @@ -501,7 +501,8 @@ private val Context.getLoweredInlineClassConstructor: (IrConstructor) -> IrSimpl isExternal = false, isTailrec = false, isSuspend = false, - returnType = irConstructor.returnType + returnType = irConstructor.returnType, + isExpect = false ).apply { descriptor.bind(this) parent = irConstructor.parent diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/BridgesBuilding.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/BridgesBuilding.kt index 64f1cb35c08..d4d867eef8b 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/BridgesBuilding.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/BridgesBuilding.kt @@ -82,7 +82,8 @@ internal class WorkersBridgesBuilding(val context: Context) : DeclarationContain isExternal = false, isTailrec = false, isSuspend = false, - returnType = context.irBuiltIns.anyNType + returnType = context.irBuiltIns.anyNType, + isExpect = false ).apply { it.bind(this) } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/CallableReferenceLowering.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/CallableReferenceLowering.kt index 106f34f89a3..632e56d9492 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/CallableReferenceLowering.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/CallableReferenceLowering.kt @@ -162,7 +162,8 @@ internal class CallableReferenceLowering(val context: Context): FileLoweringPass isInner = false, isData = false, isExternal = false, - isInline = false + isInline = false, + isExpect = false ).apply { it.bind(this) parent = this@FunctionReferenceBuilder.parent @@ -252,7 +253,8 @@ internal class CallableReferenceLowering(val context: Context): FileLoweringPass functionReferenceClass.defaultType, isInline = false, isExternal = false, - isPrimary = true + isPrimary = true, + isExpect = false ).apply { it.bind(this) parent = functionReferenceClass @@ -306,7 +308,8 @@ internal class CallableReferenceLowering(val context: Context): FileLoweringPass isInline = false, isExternal = false, isTailrec = false, - isSuspend = superFunction.isSuspend + isSuspend = superFunction.isSuspend, + isExpect = false ).apply { it.bind(this) val function = this diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/EnumConstructorsLowering.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/EnumConstructorsLowering.kt index 679cc0afabf..98f7b7b5d67 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/EnumConstructorsLowering.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/EnumConstructorsLowering.kt @@ -122,7 +122,8 @@ internal class EnumConstructorsLowering(val context: Context) : ClassLoweringPas constructor.returnType, isInline = false, isExternal = false, - isPrimary = constructor.isPrimary + isPrimary = constructor.isPrimary, + isExpect = false ).apply { it.bind(this) parent = constructor.parent diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FinallyBlocksLowering.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FinallyBlocksLowering.kt index 570414cd2e9..b794bc91178 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FinallyBlocksLowering.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FinallyBlocksLowering.kt @@ -186,6 +186,7 @@ internal class FinallyBlocksLowering(val context: Context): FileLoweringPass, Ir false, false, false, + false, false) ) return descriptor diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/InitializersLowering.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/InitializersLowering.kt index 9bbec52279f..342fb5ada9e 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/InitializersLowering.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/InitializersLowering.kt @@ -107,7 +107,8 @@ internal class InitializersLowering(val context: CommonBackendContext) : ClassLo isInline = false, isSuspend = false, isExternal = false, - isTailrec = false + isTailrec = false, + isExpect = false ).apply { it.bind(this) parent = irClass diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/InteropLowering.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/InteropLowering.kt index 7341eeec171..38405422043 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/InteropLowering.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/InteropLowering.kt @@ -233,7 +233,8 @@ internal class InteropLoweringPart1(val context: Context) : BaseInteropIrTransfo isInline = false, isExternal = false, isTailrec = false, - isSuspend = false + isSuspend = false, + isExpect = false ).also { result -> resultDescriptor.bind(result) result.parent = irClass @@ -374,7 +375,8 @@ internal class InteropLoweringPart1(val context: Context) : BaseInteropIrTransfo isInline = false, isExternal = false, isTailrec = false, - isSuspend = false + isSuspend = false, + isExpect = false ).apply { it.bind(this) } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/NativeSuspendFunctionLowering.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/NativeSuspendFunctionLowering.kt index 83c7bf9d1a4..60d3014d30c 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/NativeSuspendFunctionLowering.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/NativeSuspendFunctionLowering.kt @@ -486,7 +486,8 @@ internal class NativeSuspendFunctionsLowering(ctx: Context): AbstractSuspendFunc isInline = false, isExternal = false, isTailrec = false, - isSuspend = false + isSuspend = false, + isExpect = false ).apply { it.bind(this) } @@ -504,7 +505,8 @@ internal class NativeSuspendFunctionsLowering(ctx: Context): AbstractSuspendFunc isInline = false, isExternal = false, isTailrec = false, - isSuspend = false + isSuspend = false, + isExpect = false ).apply { it.bind(this) } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/TestProcessor.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/TestProcessor.kt index ea5e999fdc7..f3af1641a36 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/TestProcessor.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/TestProcessor.kt @@ -349,7 +349,8 @@ internal class TestProcessor (val context: Context) { isInline = false, isExternal = false, isTailrec = false, - isSuspend = false + isSuspend = false, + isExpect = false ).apply { descriptor.bind(this) parent = owner @@ -385,7 +386,8 @@ internal class TestProcessor (val context: Context) { isInline = false, isExternal = false, isTailrec = false, - isSuspend = false + isSuspend = false, + isExpect = false ).apply { descriptor.bind(this) parent = owner @@ -430,7 +432,8 @@ internal class TestProcessor (val context: Context) { testSuite.typeWithStarProjections, isInline = false, isExternal = false, - isPrimary = true + isPrimary = true, + isExpect = false ).apply { descriptor.bind(this) parent = owner @@ -485,7 +488,8 @@ internal class TestProcessor (val context: Context) { isInner = false, isData = false, isExternal = false, - isInline = false + isInline = false, + isExpect = false ).apply { descriptor.bind(this) createParameterDeclarations() diff --git a/gradle.properties b/gradle.properties index 7c43bc7970c..435e8fa3f99 100644 --- a/gradle.properties +++ b/gradle.properties @@ -18,12 +18,12 @@ buildKotlinVersion=1.3.60-dev-2755 buildKotlinCompilerRepo=https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_dev_Compiler),number:1.3.60-dev-2755,branch:default:any,pinned:true/artifacts/content/maven remoteRoot=konan_tests -kotlinCompilerRepo=https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_KotlinPublic_Compiler),number:1.3.70-dev-478,branch:default:any,pinned:true/artifacts/content/maven -kotlinVersion=1.3.70-dev-478 -kotlinStdlibRepo=https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_KotlinPublic_Compiler),number:1.3.70-dev-478,branch:default:any,pinned:true/artifacts/content/maven -kotlinStdlibVersion=1.3.70-dev-478 -kotlinStdlibTestsVersion=1.3.70-dev-478 -testKotlinCompilerVersion=1.3.70-dev-478 +kotlinCompilerRepo=https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_KotlinPublic_Compiler),number:1.3.70-dev-742,branch:default:any,pinned:true/artifacts/content/maven +kotlinVersion=1.3.70-dev-742 +kotlinStdlibRepo=https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_KotlinPublic_Compiler),number:1.3.70-dev-742,branch:default:any,pinned:true/artifacts/content/maven +kotlinStdlibVersion=1.3.70-dev-742 +kotlinStdlibTestsVersion=1.3.70-dev-742 +testKotlinCompilerVersion=1.3.70-dev-742 konanVersion=1.3.70 org.gradle.jvmargs='-Dfile.encoding=UTF-8' org.gradle.workers.max=4