[FE] Extract computation of sealed class inheritors into separate component

This is needed to provide more optimal provider in IDE plugin
This commit is contained in:
Dmitriy Novozhilov
2020-11-23 11:14:22 +03:00
committed by TeamCityServer
parent c0a1aecf9b
commit 6809adee9c
10 changed files with 87 additions and 43 deletions
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.descriptors.impl.ClassDescriptorBase
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.resolve.DescriptorFactory.createPrimaryConstructorForObject
import org.jetbrains.kotlin.resolve.descriptorUtil.computeSealedSubclasses
import org.jetbrains.kotlin.resolve.SealedClassInheritorsProviderImpl
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe
import org.jetbrains.kotlin.resolve.scopes.MemberScope
import org.jetbrains.kotlin.resolve.scopes.StaticScopeForKotlinEnum
@@ -54,7 +54,7 @@ class CommonizedClassDescriptor(
private val typeConstructor = CommonizedClassTypeConstructor(targetComponents, cirSupertypes)
private val sealedSubclasses = targetComponents.storageManager.createLazyValue {
// TODO: pass proper language version settings
computeSealedSubclasses(this, freedomForSealedInterfacesSupported = false)
SealedClassInheritorsProviderImpl.computeSealedSubclasses(this, freedomForSealedInterfacesSupported = false)
}
private val declaredTypeParametersAndTypeParameterResolver = targetComponents.storageManager.createLazyValue {