From 5a4718b3a3e7fa04c8ce09e20f3c632471714b10 Mon Sep 17 00:00:00 2001 From: Vasily Levchenko Date: Wed, 13 Jun 2018 14:53:15 +0300 Subject: [PATCH] [kotlin compiler][update] 1.2.60-dev-715 --- .../kotlin/backend/konan/KonanPlatformConfigurator.kt | 3 ++- .../kotlin/backend/konan/irasdescriptors/NewIrUtils.kt | 4 ++++ .../konan/serialization/KonanPackageFragment.kt | 10 +++++++++- .../konan/serialization/KonanSerializationUtil.kt | 2 +- .../kotlin/ir/util/IrUnboundSymbolReplacer.kt | 6 ++++-- gradle.properties | 6 +++--- 6 files changed, 23 insertions(+), 8 deletions(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanPlatformConfigurator.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanPlatformConfigurator.kt index ee3bebe79ff..a583630b523 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanPlatformConfigurator.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanPlatformConfigurator.kt @@ -23,6 +23,7 @@ import org.jetbrains.kotlin.container.useInstance import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap import org.jetbrains.kotlin.resolve.* import org.jetbrains.kotlin.resolve.calls.checkers.ReifiedTypeParameterSubstitutionChecker +import org.jetbrains.kotlin.resolve.calls.components.SamConversionTransformer import org.jetbrains.kotlin.resolve.calls.results.TypeSpecificityComparator import org.jetbrains.kotlin.resolve.checkers.ExpectedActualDeclarationChecker import org.jetbrains.kotlin.resolve.lazy.DelegationFilter @@ -50,6 +51,6 @@ object KonanPlatformConfigurator : PlatformConfigurator( override fun configureModuleComponents(container: StorageComponentContainer) { container.useInstance(SyntheticScopes.Empty) container.useInstance(TypeSpecificityComparator.NONE) - + container.useInstance(SamConversionTransformer.Empty) } } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/irasdescriptors/NewIrUtils.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/irasdescriptors/NewIrUtils.kt index 984fa5f6485..1eaf45b4b7f 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/irasdescriptors/NewIrUtils.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/irasdescriptors/NewIrUtils.kt @@ -251,6 +251,10 @@ fun IrModuleFragment.referenceAllTypeExternalClassifiers(symbolTable: SymbolTabl override fun visitLongValue(p0: LongValue, p1: Nothing?) {} override fun visitCharValue(p0: CharValue?, p1: Nothing?) {} override fun visitIntValue(p0: IntValue?, p1: Nothing?) {} + override fun visitUIntValue(p0: UIntValue?, p1: Nothing?) {} + override fun visitUShortValue(p0: UShortValue?, p1: Nothing?) {} + override fun visitUByteValue(p0: UByteValue?, p1: Nothing?) {} + override fun visitULongValue(p0: ULongValue?, p1: Nothing?) {} override fun visitErrorValue(p0: ErrorValue?, p1: Nothing?) {} override fun visitFloatValue(p0: FloatValue?, p1: Nothing?) {} override fun visitEnumValue(p0: EnumValue?, p1: Nothing?) {} diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanPackageFragment.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanPackageFragment.kt index 8fd21c2e9e7..1db514077d3 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanPackageFragment.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanPackageFragment.kt @@ -23,6 +23,8 @@ import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.metadata.KonanLinkData import org.jetbrains.kotlin.serialization.deserialization.DeserializedPackageFragment import org.jetbrains.kotlin.metadata.deserialization.NameResolverImpl +import org.jetbrains.kotlin.resolve.scopes.MemberScope +import org.jetbrains.kotlin.serialization.deserialization.DeserializationComponents import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedPackageMemberScope import org.jetbrains.kotlin.serialization.deserialization.getClassId import org.jetbrains.kotlin.serialization.deserialization.getName @@ -34,6 +36,12 @@ class KonanPackageFragment( storageManager: StorageManager, module: ModuleDescriptor ) : DeserializedPackageFragment(FqName(fqNameString), storageManager, module) { + lateinit var components: DeserializationComponents + + override fun initialize(components: DeserializationComponents) { + this.components = components + } + // The proto field is lazy so that we can load only needed // packages from the library. private val protoForNames: KonanLinkData.LinkDataPackageFragment by lazy { @@ -52,7 +60,7 @@ class KonanPackageFragment( KonanClassDataFinder(proto, nameResolver) } - override fun computeMemberScope(): DeserializedPackageMemberScope { + override fun getMemberScope(): DeserializedPackageMemberScope { val packageProto = proto.getPackage() return DeserializedPackageMemberScope( this, packageProto, diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanSerializationUtil.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanSerializationUtil.kt index 4ca604973c9..2453919f814 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanSerializationUtil.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanSerializationUtil.kt @@ -95,7 +95,7 @@ fun createKonanPackageFragmentProvider( emptyList(), notFoundClasses, ContractDeserializer.DEFAULT, extensionRegistryLite = KonanSerializerProtocol.extensionRegistry ) for (packageFragment in packageFragments) { - packageFragment.components = components + packageFragment.initialize(components) } return provider diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/ir/util/IrUnboundSymbolReplacer.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/ir/util/IrUnboundSymbolReplacer.kt index 679de3a7b7e..0a8fc245b0a 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/ir/util/IrUnboundSymbolReplacer.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/ir/util/IrUnboundSymbolReplacer.kt @@ -60,7 +60,8 @@ internal fun IrModuleFragment.replaceUnboundSymbols(context: Context) { override fun visitModuleFragment(declaration: IrModuleFragment) { declaration.dependencyModules.forEach { it.acceptVoid(this) } - val dependencyModules = declaration.dependencyModules.groupBy { it.descriptor }.map { (_, fragments) -> + // TODO: toSet added to avoid duplicates introduced in 8094cb7dc5506895466b4912a44e9e7f99a14902. + val dependencyModules = declaration.dependencyModules.toSet().groupBy { it.descriptor }.map { (_, fragments) -> fragments.reduce { firstModule, nextModule -> firstModule.apply { mergeFrom(nextModule) @@ -79,7 +80,8 @@ private fun IrModuleFragment.mergeFrom(other: IrModuleFragment): Unit { assert(this.files.isEmpty()) assert(other.files.isEmpty()) - val thisPackages = this.externalPackageFragments.groupBy { it.packageFragmentDescriptor } + // TODO: toSet added to avoid duplicates introduced in 8094cb7dc5506895466b4912a44e9e7f99a14902. + val thisPackages = this.externalPackageFragments.toSet().groupBy { it.packageFragmentDescriptor } other.externalPackageFragments.forEach { val thisPackage = thisPackages[it.packageFragmentDescriptor]?.single() if (thisPackage == null) { diff --git a/gradle.properties b/gradle.properties index bab564ba3e7..d1103a4282c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -20,8 +20,8 @@ remoteRoot=konan_tests #kotlinCompilerModule=org.jetbrains.kotlin:kotlin-compiler:1.1-SNAPSHOT # Download artifacts of https://teamcity.jetbrains.com/viewType.html?buildTypeId=Kotlin_120_Compiler testDataVersion=1226829:id -kotlinCompilerRepo=https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_dev_CompilerAllPlugins),number:1.2.60-dev-444,tag:kotlin-native,pinned:true/artifacts/content/maven -kotlinVersion=1.2.60-dev-444 -konanVersion=0.7.1 +kotlinCompilerRepo=https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:Kotlin_dev_CompilerAllPlugins),number:1.2.60-dev-715,tag:kotlin-native,pinned:true/artifacts/content/maven +kotlinVersion=1.2.60-dev-715 +konanVersion=0.8 org.gradle.jvmargs='-Dfile.encoding=UTF-8'