[Analysis API FIR] Fix small mistake in KDocReferenceResolver

`owner` is a PSI element, it can never be an instance of
`KtConstructorSymbol`

Also, make `MutableCollection` an extension receiver instead of context
receiver for the consistency
This commit is contained in:
Roman Golyshev
2022-07-29 17:12:57 +02:00
parent fb32af1c02
commit bcd6a54ffb
2 changed files with 8 additions and 12 deletions
@@ -27,12 +27,12 @@ internal object KDocReferenceResolver {
val pathSegments = fqName.pathSegments() val pathSegments = fqName.pathSegments()
if (pathSegments.size == 1) { if (pathSegments.size == 1) {
val singleSegment = pathSegments.single() val singleSegment = pathSegments.single()
when { when (ownerSymbol) {
owner is KtConstructorSymbol -> { is KtConstructorSymbol -> {
collectConstructorParameterSymbols(owner, singleSegment) collectConstructorParameterSymbols(ownerSymbol, singleSegment)
} }
ownerSymbol is KtNamedClassOrObjectSymbol -> { is KtNamedClassOrObjectSymbol -> {
collectPrimaryConstructorParameterSymbols(ownerSymbol, singleSegment) collectPrimaryConstructorParameterSymbols(ownerSymbol, singleSegment)
} }
} }
@@ -65,8 +65,8 @@ internal object KDocReferenceResolver {
addAll(scope.getClassifierSymbols { it == shortName }) addAll(scope.getClassifierSymbols { it == shortName })
} }
context(KtAnalysisSession, MutableCollection<KtSymbol>) context(KtAnalysisSession)
private fun collectConstructorParameterSymbols(owner: KtFunctionLikeSymbol, name: Name) { private fun MutableCollection<KtSymbol>.collectConstructorParameterSymbols(owner: KtFunctionLikeSymbol, name: Name) {
for (valueParameter in owner.valueParameters) { for (valueParameter in owner.valueParameters) {
if (valueParameter.name == name) { if (valueParameter.name == name) {
add(valueParameter) add(valueParameter)
@@ -105,8 +105,8 @@ internal object KDocReferenceResolver {
getPackageSymbolIfPackageExists(packageFqName)?.let(::add) getPackageSymbolIfPackageExists(packageFqName)?.let(::add)
} }
context(KtAnalysisSession, MutableCollection<KtSymbol>) context(KtAnalysisSession)
private fun collectSymbolsByClassId(classId: ClassId) { private fun MutableCollection<KtSymbol>.collectSymbolsByClassId(classId: ClassId) {
classId.getCorrespondingToplevelClassOrObjectSymbol()?.let(::add) classId.getCorrespondingToplevelClassOrObjectSymbol()?.let(::add)
} }
@@ -1,7 +1,3 @@
// TODO
// UNRESOLVED_REFERENCE
class C { class C {
/** /**
* [a<caret>a] * [a<caret>a]