From 92537557bc0b0c230846a827d8e6df9b6ace784e Mon Sep 17 00:00:00 2001 From: Alexander Gorshenev Date: Fri, 15 Mar 2019 01:44:55 +0300 Subject: [PATCH] Changes after code review --- .../jetbrains/kotlin/backend/konan/ToplevelPhases.kt | 2 +- .../konan/serialization/KonanDeclarationTable.kt | 5 ++++- .../KonanDeserializeDescriptorReference.kt | 2 +- .../konan/serialization/KonanIrModuleSerializer.kt | 3 +-- .../backend/konan/serialization/KonanIrlinker.kt | 12 +----------- .../konan/serialization/KonanSerializerExtension.kt | 2 +- gradle.properties | 6 +++--- 7 files changed, 12 insertions(+), 20 deletions(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ToplevelPhases.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ToplevelPhases.kt index 1b2c437d1d3..c418add18b8 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ToplevelPhases.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ToplevelPhases.kt @@ -146,7 +146,7 @@ internal val patchDeclarationParents0Phase = konanUnitPhase( internal val serializerPhase = konanUnitPhase( op = { - val declarationTable = KonanDeclarationTable(irModule!!.irBuiltins, DescriptorTable()).apply { loadKnownBuiltins() } + val declarationTable = KonanDeclarationTable(irModule!!.irBuiltins, DescriptorTable()) val serializedIr = KonanIrModuleSerializer(this, declarationTable).serializedIrModule(irModule!!) val serializer = KonanSerializationUtil(this, config.configuration.get(CommonConfigurationKeys.METADATA_VERSION)!!, declarationTable) serializedLinkData = diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanDeclarationTable.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanDeclarationTable.kt index b22e789116a..8cb4e756b16 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanDeclarationTable.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanDeclarationTable.kt @@ -11,8 +11,11 @@ class KonanDeclarationTable(builtIns: IrBuiltIns, descriptorTable: DescriptorTab DeclarationTable(builtIns, descriptorTable, KonanMangler) { override var currentIndex = 0L + init { + loadKnownBuiltins() + } } -// This is what we pre-populate tables with +// This is what we pre-populate tables with. val IrBuiltIns.knownBuiltins get() = irBuiltInsExternalPackageFragment.declarations diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanDeserializeDescriptorReference.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanDeserializeDescriptorReference.kt index db56ecd8d5d..a10b86d4783 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanDeserializeDescriptorReference.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanDeserializeDescriptorReference.kt @@ -53,7 +53,7 @@ class KonanDescriptorReferenceDeserializer( Pair(null, getContributedDescriptors(packageFqNameString, name)) } else { val clazz = currentModule.findClassAcrossModuleDependencies(ClassId(packageFqName, classFqName, false))!! - Pair(clazz, getContributedDescriptors(clazz.unsubstitutedMemberScope, name) + clazz.getConstructors()) + Pair(clazz, clazz.unsubstitutedMemberScope.getContributedDescriptors() + clazz.getConstructors()) } if (packageFqNameString.startsWith("cnames.") || packageFqNameString.startsWith("objcnames.")) { diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrModuleSerializer.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrModuleSerializer.kt index c6a768fedaa..8c3656e8f7b 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrModuleSerializer.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrModuleSerializer.kt @@ -15,8 +15,7 @@ class KonanIrModuleSerializer( ) : IrModuleSerializer(logger, declarationTable, KonanMangler, bodiesOnlyForInlines) { override fun backendSpecificExplicitRoot(declaration: IrFunction) = - declaration.descriptor.annotations.hasAnnotation(RuntimeNames.exportForCppRuntime) || - declaration.descriptor.annotations.hasAnnotation(RuntimeNames.exportForCompilerAnnotation) + declaration.descriptor.annotations.hasAnnotation(RuntimeNames.exportForCppRuntime) override fun backendSpecificExplicitRoot(declaration: IrClass) = declaration.descriptor.annotations.hasAnnotation(RuntimeNames.exportTypeInfoAnnotation) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrlinker.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrlinker.kt index 4954850d111..4d4da198809 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrlinker.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrlinker.kt @@ -34,7 +34,7 @@ class KonanIrLinker( builtIns: IrBuiltIns, symbolTable: SymbolTable, val forwardModuleDescriptor: ModuleDescriptor?) - : KotlinIrLinker(currentModule, logger, builtIns, symbolTable, forwardModuleDescriptor), + : KotlinIrLinker(logger, builtIns, symbolTable, forwardModuleDescriptor, 0L), DescriptorUniqIdAware by KonanDescriptorUniqIdAware { private val forwardDeclarations = mutableSetOf() @@ -42,14 +42,4 @@ class KonanIrLinker( override val descriptorReferenceDeserializer = KonanDescriptorReferenceDeserializer(currentModule, resolvedForwardDeclarations) override fun reader(moduleDescriptor: ModuleDescriptor, uniqId: UniqId) = moduleDescriptor.konanLibrary!!.irDeclaration(uniqId.index, uniqId.isLocal) - - init { - var currentIndex = 0L - builtIns.knownBuiltins.forEach { - require(it is IrFunction) - deserializedSymbols.put(UniqIdKey(null, UniqId(currentIndex, isLocal = false)), it.symbol) - assert(symbolTable.referenceSimpleFunction(it.descriptor) == it.symbol) - currentIndex++ - } - } } \ No newline at end of file diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanSerializerExtension.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanSerializerExtension.kt index 94ea1e51f1b..a87f160bf6e 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanSerializerExtension.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanSerializerExtension.kt @@ -81,7 +81,7 @@ internal class KonanSerializerExtension(val context: Context, override val metad } override fun serializeProperty(descriptor: PropertyDescriptor, proto: ProtoBuf.Property.Builder, - versionRequirementTable: MutableVersionRequirementTable, + versionRequirementTable: MutableVersionRequirementTable?, childSerializer: DescriptorSerializer) { proto.setExtension(KonanProtoBuf.propertyFile, sourceFileMap.assign(descriptor.source.containingFile)) uniqId(descriptor) ?.let { proto.setExtension(KonanProtoBuf.propertyUniqId, it) } diff --git a/gradle.properties b/gradle.properties index 42500600338..b5379333319 100644 --- a/gradle.properties +++ b/gradle.properties @@ -18,9 +18,9 @@ buildKotlinVersion=1.3.30-dev-1945 buildKotlinCompilerRepo=https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_dev_CompilerAllPlugins),number:1.3.30-dev-1945,pinned:true/artifacts/content/maven remoteRoot=konan_tests -kotlinCompilerRepo=https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_dev_CompilerAllPlugins),number:1.3.40-dev-392,branch:default:true,pinned:true/artifacts/content/maven -kotlinVersion=1.3.40-dev-392 -testKotlinVersion=1.3.40-dev-392 +kotlinCompilerRepo=https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_dev_CompilerAllPlugins),number:1.3.40-dev-605,branch:default:true,pinned:true/artifacts/content/maven +kotlinVersion=1.3.40-dev-605 +testKotlinVersion=1.3.40-dev-605 sharedRepo=https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_KotlinNativeShared_BuildAndTest),number:1.0-dev-16,branch:default:true,pinned:true/artifacts/content/maven sharedVersion=1.0-dev-16 konanVersion=1.3.0