[AA] implement isExpect/isActual for callable symbols
^KT-54846 Fixed
This commit is contained in:
committed by
teamcity
parent
52a95cb75f
commit
fe4ca30c55
+6
@@ -41,6 +41,12 @@ internal class KtFe10DescConstructorSymbol(
|
||||
override val returnType: KtType
|
||||
get() = withValidityAssertion { descriptor.returnType.toKtType(analysisContext) }
|
||||
|
||||
override val isActual: Boolean
|
||||
get() = withValidityAssertion { descriptor.isActual }
|
||||
|
||||
override val isExpect: Boolean
|
||||
get() = withValidityAssertion { descriptor.isExpect }
|
||||
|
||||
override val typeParameters: List<KtTypeParameterSymbol>
|
||||
get() = withValidityAssertion {
|
||||
descriptor.typeParameters.mapNotNull {
|
||||
|
||||
+6
@@ -75,6 +75,12 @@ internal class KtFe10DescFunctionSymbol private constructor(
|
||||
override val isBuiltinFunctionInvoke: Boolean
|
||||
get() = withValidityAssertion { callableIdIfNonLocal in kotlinFunctionInvokeCallableIds }
|
||||
|
||||
override val isActual: Boolean
|
||||
get() = withValidityAssertion { descriptor.isActual }
|
||||
|
||||
override val isExpect: Boolean
|
||||
get() = withValidityAssertion { descriptor.isExpect }
|
||||
|
||||
override val valueParameters: List<KtValueParameterSymbol>
|
||||
get() = withValidityAssertion { descriptor.valueParameters.map { KtFe10DescValueParameterSymbol(it, analysisContext) } }
|
||||
|
||||
|
||||
+6
@@ -60,6 +60,12 @@ internal class KtFe10DescKotlinPropertySymbol(
|
||||
override val isOverride: Boolean
|
||||
get() = withValidityAssertion { descriptor.isExplicitOverride }
|
||||
|
||||
override val isActual: Boolean
|
||||
get() = withValidityAssertion { descriptor.isActual }
|
||||
|
||||
override val isExpect: Boolean
|
||||
get() = withValidityAssertion { descriptor.isExpect }
|
||||
|
||||
override val hasGetter: Boolean
|
||||
get() = withValidityAssertion { true }
|
||||
|
||||
|
||||
+8
@@ -30,6 +30,8 @@ import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.psi.KtConstructor
|
||||
import org.jetbrains.kotlin.psi.KtPrimaryConstructor
|
||||
import org.jetbrains.kotlin.psi.psiUtil.hasActualModifier
|
||||
import org.jetbrains.kotlin.psi.psiUtil.hasExpectModifier
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
|
||||
internal class KtFe10PsiConstructorSymbol(
|
||||
@@ -61,6 +63,12 @@ internal class KtFe10PsiConstructorSymbol(
|
||||
override val visibility: Visibility
|
||||
get() = withValidityAssertion { psi.ktVisibility ?: descriptor?.ktVisibility ?: Visibilities.Public }
|
||||
|
||||
override val isActual: Boolean
|
||||
get() = withValidityAssertion { descriptor?.isActual ?: psi.hasActualModifier() }
|
||||
|
||||
override val isExpect: Boolean
|
||||
get() = withValidityAssertion { descriptor?.isExpect ?: psi.hasExpectModifier() }
|
||||
|
||||
override val typeParameters: List<KtTypeParameterSymbol>
|
||||
get() = withValidityAssertion { psi.typeParameters.map { KtFe10PsiTypeParameterSymbol(it, analysisContext) } }
|
||||
|
||||
|
||||
+9
-4
@@ -10,13 +10,12 @@ import org.jetbrains.kotlin.analysis.api.base.KtContextReceiver
|
||||
import org.jetbrains.kotlin.analysis.api.contracts.description.KtContractEffectDeclaration
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisContext
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.Fe10AnalysisFacade.AnalysisMode
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.calculateHashCode
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.contracts.effectDeclarationToAnalysisApi
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.calculateHashCode
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.descriptorBased.base.*
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.isEqualTo
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.pointers.KtFe10NeverRestoringSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.symbols.psiBased.base.*
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.utils.ValidityAwareCachedValue
|
||||
import org.jetbrains.kotlin.analysis.api.descriptors.utils.cached
|
||||
import org.jetbrains.kotlin.analysis.api.impl.base.util.kotlinFunctionInvokeCallableIds
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
|
||||
@@ -29,7 +28,6 @@ import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtPsiBasedSymbolPointe
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||
import org.jetbrains.kotlin.contracts.description.ContractProviderKey
|
||||
import org.jetbrains.kotlin.contracts.description.EffectDeclaration
|
||||
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
@@ -38,9 +36,10 @@ import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.name.CallableId
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.psi.KtNamedFunction
|
||||
import org.jetbrains.kotlin.psi.psiUtil.hasActualModifier
|
||||
import org.jetbrains.kotlin.psi.psiUtil.hasExpectModifier
|
||||
import org.jetbrains.kotlin.psi.psiUtil.isExtensionDeclaration
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import kotlin.reflect.KProperty
|
||||
|
||||
internal class KtFe10PsiFunctionSymbol(
|
||||
override val psi: KtNamedFunction,
|
||||
@@ -81,6 +80,12 @@ internal class KtFe10PsiFunctionSymbol(
|
||||
override val isBuiltinFunctionInvoke: Boolean
|
||||
get() = withValidityAssertion { callableIdIfNonLocal in kotlinFunctionInvokeCallableIds }
|
||||
|
||||
override val isActual: Boolean
|
||||
get() = withValidityAssertion { descriptor?.isActual ?: psi.hasActualModifier() }
|
||||
|
||||
override val isExpect: Boolean
|
||||
get() = withValidityAssertion { descriptor?.isExpect ?: psi.hasExpectModifier() }
|
||||
|
||||
override val valueParameters: List<KtValueParameterSymbol>
|
||||
get() = withValidityAssertion { psi.valueParameters.map { KtFe10PsiValueParameterSymbol(it, analysisContext) } }
|
||||
|
||||
|
||||
+8
@@ -30,6 +30,8 @@ import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.name.CallableId
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.psi.KtProperty
|
||||
import org.jetbrains.kotlin.psi.psiUtil.hasActualModifier
|
||||
import org.jetbrains.kotlin.psi.psiUtil.hasExpectModifier
|
||||
import org.jetbrains.kotlin.psi.psiUtil.isExtensionDeclaration
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
|
||||
@@ -96,6 +98,12 @@ internal class KtFe10PsiKotlinPropertySymbol(
|
||||
override val isStatic: Boolean
|
||||
get() = withValidityAssertion { false }
|
||||
|
||||
override val isActual: Boolean
|
||||
get() = withValidityAssertion { descriptor?.isActual ?: psi.hasActualModifier() }
|
||||
|
||||
override val isExpect: Boolean
|
||||
get() = withValidityAssertion { descriptor?.isExpect ?: psi.hasExpectModifier() }
|
||||
|
||||
override val initializer: KtInitializerValue?
|
||||
get() = withValidityAssertion { createKtInitializerValue(psi, descriptor, analysisContext) }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user