[API Usage] Use type refinements in overrides-related facilities

This commit is contained in:
Denis Zharkov
2019-07-01 15:36:24 +03:00
committed by Dmitry Savvinov
parent 694f521bfd
commit b7e011a29b
22 changed files with 165 additions and 60 deletions
@@ -33,6 +33,7 @@ import org.jetbrains.kotlin.resolve.scopes.MemberScope
import org.jetbrains.kotlin.serialization.deserialization.builtins.BuiltInSerializerProtocol
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedPackageMemberScope
import org.jetbrains.kotlin.storage.StorageManager
import org.jetbrains.kotlin.types.checker.NewKotlinTypeChecker
import java.io.InputStream
class MetadataPackageFragmentProvider(
@@ -41,7 +42,8 @@ class MetadataPackageFragmentProvider(
moduleDescriptor: ModuleDescriptor,
notFoundClasses: NotFoundClasses,
private val metadataPartProvider: MetadataPartProvider,
contractDeserializer: ContractDeserializer
contractDeserializer: ContractDeserializer,
kotlinTypeChecker: NewKotlinTypeChecker
) : AbstractDeserializedPackageFragmentProvider(storageManager, finder, moduleDescriptor) {
init {
components = DeserializationComponents(
@@ -59,7 +61,8 @@ class MetadataPackageFragmentProvider(
notFoundClasses,
contractDeserializer,
AdditionalClassPartsProvider.None, PlatformDependentDeclarationFilter.All,
BuiltInSerializerProtocol.extensionRegistry
BuiltInSerializerProtocol.extensionRegistry,
kotlinTypeChecker
)
}
@@ -29,6 +29,7 @@ import org.jetbrains.kotlin.protobuf.ExtensionRegistryLite
import org.jetbrains.kotlin.resolve.constants.ConstantValue
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
import org.jetbrains.kotlin.storage.StorageManager
import org.jetbrains.kotlin.types.checker.NewKotlinTypeChecker
class DeserializationComponents(
val storageManager: StorageManager,
@@ -46,7 +47,8 @@ class DeserializationComponents(
val contractDeserializer: ContractDeserializer,
val additionalClassPartsProvider: AdditionalClassPartsProvider = AdditionalClassPartsProvider.None,
val platformDependentDeclarationFilter: PlatformDependentDeclarationFilter = PlatformDependentDeclarationFilter.All,
val extensionRegistryLite: ExtensionRegistryLite
val extensionRegistryLite: ExtensionRegistryLite,
val kotlinTypeChecker: NewKotlinTypeChecker = NewKotlinTypeChecker.Default
) {
val classDeserializer: ClassDeserializer = ClassDeserializer(this)
@@ -264,7 +264,7 @@ class DeserializedClassDescriptor(
result: MutableCollection<D>
) {
val fromCurrent = ArrayList<CallableMemberDescriptor>(result)
OverridingUtil.generateOverridesInFunctionGroup(
c.components.kotlinTypeChecker.overridingUtil.generateOverridesInFunctionGroup(
name,
fromSupertypes,
fromCurrent,