From ffdf3c361e667d95f2d25ab3644710c97d75fb9f Mon Sep 17 00:00:00 2001 From: Igor Chevdar Date: Mon, 5 Aug 2019 13:53:39 +0300 Subject: [PATCH] [K/N libraries] Used fictitious functional interfaces factory --- .../konan/KonanModuleDescriptorUtils.kt | 14 ----------- ...DeserializedPackageFragmentsFactoryImpl.kt | 23 ++++++++++++------- 2 files changed, 15 insertions(+), 22 deletions(-) delete mode 100644 konan/library-reader/src/org/jetbrains/kotlin/descriptors/konan/KonanModuleDescriptorUtils.kt diff --git a/konan/library-reader/src/org/jetbrains/kotlin/descriptors/konan/KonanModuleDescriptorUtils.kt b/konan/library-reader/src/org/jetbrains/kotlin/descriptors/konan/KonanModuleDescriptorUtils.kt deleted file mode 100644 index 4973f915bef..00000000000 --- a/konan/library-reader/src/org/jetbrains/kotlin/descriptors/konan/KonanModuleDescriptorUtils.kt +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.descriptors.konan - -import org.jetbrains.kotlin.descriptors.ModuleDescriptor -import org.jetbrains.kotlin.konan.library.KONAN_STDLIB_NAME -import org.jetbrains.kotlin.name.Name - -private val STDLIB_MODULE_NAME = Name.special("<$KONAN_STDLIB_NAME>") - -fun ModuleDescriptor.isKonanStdlib() = name == STDLIB_MODULE_NAME diff --git a/konan/library-reader/src/org/jetbrains/kotlin/serialization/konan/impl/KonanDeserializedPackageFragmentsFactoryImpl.kt b/konan/library-reader/src/org/jetbrains/kotlin/serialization/konan/impl/KonanDeserializedPackageFragmentsFactoryImpl.kt index 71ab6b7c151..e407a87bec9 100644 --- a/konan/library-reader/src/org/jetbrains/kotlin/serialization/konan/impl/KonanDeserializedPackageFragmentsFactoryImpl.kt +++ b/konan/library-reader/src/org/jetbrains/kotlin/serialization/konan/impl/KonanDeserializedPackageFragmentsFactoryImpl.kt @@ -5,18 +5,17 @@ package org.jetbrains.kotlin.serialization.konan.impl +import org.jetbrains.kotlin.builtins.functions.functionInterfacePackageFragmentProvider import org.jetbrains.kotlin.contracts.ContractDeserializerImpl import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.impl.ClassDescriptorImpl +import org.jetbrains.kotlin.descriptors.impl.CompositePackageFragmentProvider import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl import org.jetbrains.kotlin.descriptors.impl.PackageFragmentDescriptorImpl import org.jetbrains.kotlin.incremental.components.LookupLocation import org.jetbrains.kotlin.incremental.components.LookupTracker import org.jetbrains.kotlin.incremental.components.NoLookupLocation -import org.jetbrains.kotlin.konan.library.KonanLibrary -import org.jetbrains.kotlin.konan.library.exportForwardDeclarations -import org.jetbrains.kotlin.konan.library.isInterop -import org.jetbrains.kotlin.konan.library.packageFqName +import org.jetbrains.kotlin.konan.library.* import org.jetbrains.kotlin.konan.library.resolver.PackageAccessedHandler import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name @@ -96,7 +95,7 @@ internal object KonanDeserializedPackageFragmentsFactoryImpl : KonanDeserialized library, deserializedPackageFragments, moduleDescriptor ) - val provider = PackageFragmentProviderImpl(deserializedPackageFragments + syntheticPackageFragments) + val packageFragmentProvider = PackageFragmentProviderImpl(deserializedPackageFragments + syntheticPackageFragments) val notFoundClasses = NotFoundClasses(storageManager, moduleDescriptor) @@ -110,9 +109,9 @@ internal object KonanDeserializedPackageFragmentsFactoryImpl : KonanDeserialized storageManager, moduleDescriptor, configuration, - DeserializedClassDataFinder(provider), + DeserializedClassDataFinder(packageFragmentProvider), annotationAndConstantLoader, - provider, + packageFragmentProvider, LocalClassifierTypeSettings.Default, ErrorReporter.DO_NOTHING, LookupTracker.DO_NOTHING, @@ -127,7 +126,15 @@ internal object KonanDeserializedPackageFragmentsFactoryImpl : KonanDeserialized packageFragment.initialize(components) } - return provider + return if (library.uniqueName == KONAN_STDLIB_NAME) + CompositePackageFragmentProvider( + listOf( + packageFragmentProvider, + functionInterfacePackageFragmentProvider(storageManager, moduleDescriptor) + ) + ) + else + packageFragmentProvider } override fun createForwardDeclarationHackPackagePartProvider(