[Analysis API] Support references to context parameters in `KDocReferenceResolver`
^KT-78057 fixed
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 b0080f7..a3bedea 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
@@ -231,6 +231,13 @@
add(owner.symbol)
}
}
+
+ owner.modifierList?.contextReceiverLists?.flatMap { it.contextParameters() }?.forEach { contextParameter ->
+ if (contextParameter.nameAsName == name) {
+ add(contextParameter.symbol)
+ }
+ }
+
if (owner is KtTypeParameterListOwner) {
for (typeParameter in owner.typeParameters) {
if (typeParameter.nameAsName == name) {
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/kDoc/parameters/FunctionContextParameter.references.txt b/analysis/analysis-api/testData/components/resolver/singleByPsi/kDoc/parameters/FunctionContextParameter.references.txt
index 405d5aa..b588d3d 100644
--- a/analysis/analysis-api/testData/components/resolver/singleByPsi/kDoc/parameters/FunctionContextParameter.references.txt
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/kDoc/parameters/FunctionContextParameter.references.txt
@@ -1,24 +1,27 @@
<caret_1>:
KDocName(53,55): 'xx'
KDocReference:
- Nothing (Unresolved reference)
+ xx: kotlin.String
<caret_2>:
KDocName(109,111): 'xx'
KDocReference:
- Nothing (Unresolved reference)
+ xx: kotlin.String
<caret_3>:
KDocName(154,156): 'xx'
KDocReference:
- (in <local>: A.foo) xx
+ 0: (in <local>: A.foo) xx
+ 1: xx: kotlin.String
<caret_4>:
KDocName(206,208): 'xx'
KDocReference:
- (in <local>: A.foo) xx
+ 0: (in <local>: A.foo) xx
+ 1: xx: kotlin.String
<caret_5>:
KDocName(263,265): 'xx'
KDocReference:
- (in <local>: A.foo) xx
+ 0: (in <local>: A.foo) xx
+ 1: xx: kotlin.String
\ No newline at end of file
diff --git a/analysis/analysis-api/testData/components/resolver/singleByPsi/kDoc/withErrors/duplicatedContextParameters.references.txt b/analysis/analysis-api/testData/components/resolver/singleByPsi/kDoc/withErrors/duplicatedContextParameters.references.txt
index 0100fe5..260fc94 100644
--- a/analysis/analysis-api/testData/components/resolver/singleByPsi/kDoc/withErrors/duplicatedContextParameters.references.txt
+++ b/analysis/analysis-api/testData/components/resolver/singleByPsi/kDoc/withErrors/duplicatedContextParameters.references.txt
@@ -1,19 +1,23 @@
<caret_1>:
KDocName(53,55): 'xx'
KDocReference:
- Nothing (Unresolved reference)
+ 0: xx: kotlin.Int
+ 1: xx: kotlin.String
<caret_2>:
KDocName(118,120): 'xx'
KDocReference:
- Nothing (Unresolved reference)
+ 0: xx: kotlin.Int
+ 1: xx: kotlin.String
<caret_3>:
KDocName(141,143): 'xx'
KDocReference:
- Nothing (Unresolved reference)
+ 0: xx: kotlin.Int
+ 1: xx: kotlin.String
<caret_4>:
KDocName(214,216): 'xx'
KDocReference:
- Nothing (Unresolved reference)
+ 0: xx: kotlin.Int
+ 1: xx: kotlin.String
\ No newline at end of file