From 2acee69908371f13b39e9875740868ceaf3f0041 Mon Sep 17 00:00:00 2001 From: Marco Pennekamp Date: Thu, 14 Sep 2023 14:33:05 +0200 Subject: [PATCH] [AA] Fix KDoc reference resolution for non-static callables from supertypes - We should use member scopes to find symbols from supertypes. - The issue was already fixed for static callables because the declared member scope was composed with the static member scope. See KTIJ-25960. ^KTIJ-26003 fixed --- .../fir/references/KDocReferenceResolver.kt | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/references/KDocReferenceResolver.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/references/KDocReferenceResolver.kt index b2069f5ef7b..5c596850bea 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/references/KDocReferenceResolver.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/references/KDocReferenceResolver.kt @@ -9,6 +9,7 @@ import org.jetbrains.kotlin.analysis.api.KtAnalysisSession import org.jetbrains.kotlin.analysis.api.components.KtScopeContext import org.jetbrains.kotlin.analysis.api.components.KtScopeKind import org.jetbrains.kotlin.analysis.api.scopes.KtScope +import org.jetbrains.kotlin.analysis.api.symbols.KtClassOrObjectSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.analysis.api.symbols.* import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolWithMembers @@ -20,7 +21,6 @@ import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.utils.addToStdlib.ifNotEmpty import kotlin.reflect.KClass -import org.jetbrains.kotlin.analysis.api.symbols.KtClassOrObjectSymbol import org.jetbrains.kotlin.analysis.utils.printer.parentOfType internal object KDocReferenceResolver { @@ -192,12 +192,7 @@ internal object KDocReferenceResolver { currentScope .getClassifierSymbols(fqNamePart) .filterIsInstance() - .flatMap { - listOf( - it.getDeclaredMemberScope(), - it.getStaticMemberScope(), - ) - } + .map { it.getCombinedMemberScope() } .toList() .asCompositeScope() } @@ -258,20 +253,13 @@ internal object KDocReferenceResolver { else -> { getClassOrObjectSymbolByClassId(classId) - ?.let { - listOf( - it.getDeclaredMemberScope(), - it.getStaticMemberScope(), - ) - } - ?.asCompositeScope() + ?.getCombinedMemberScope() ?.getCallableSymbols(callableId.callableName) ?.let(::addAll) } } } - private fun generateNameInterpretations(fqName: FqName): Sequence = sequence { val parts = fqName.pathSegments() if (parts.isEmpty()) {