From c32e7c723d1e917dda293a44a358462c568a2b0d Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Fri, 6 Oct 2023 23:03:30 +0200 Subject: [PATCH] [Analysis API] resolve `[this]` in KDoc to extension receiver ^KT-62407 fixed --- ...ceModuleReferenceResolveTestGenerated.java | 40 +++++++++++++++++++ .../fir/references/KDocReferenceResolver.kt | 15 +++++++ ...ceModuleReferenceResolveTestGenerated.java | 40 +++++++++++++++++++ ...ceModuleReferenceResolveTestGenerated.java | 40 +++++++++++++++++++ ...ceModuleReferenceResolveTestGenerated.java | 40 +++++++++++++++++++ ...ceModuleReferenceResolveTestGenerated.java | 40 +++++++++++++++++++ .../thisQualifier/thisQualifierOnClass.kt | 9 +++++ .../thisQualifier/thisQualifierOnFunction.kt | 8 ++++ .../thisQualifier/thisQualifierOnFunction.txt | 2 + ...sQualifierOnFunctionNoExtensionReceiver.kt | 8 ++++ .../thisQualifier/thisQualifierOnProperty.kt | 7 ++++ .../thisQualifier/thisQualifierOnProperty.txt | 2 + ...sQualifierOnPropertyNoExtensionReceiver.kt | 7 ++++ 13 files changed, 258 insertions(+) create mode 100644 analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnClass.kt create mode 100644 analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnFunction.kt create mode 100644 analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnFunction.txt create mode 100644 analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnFunctionNoExtensionReceiver.kt create mode 100644 analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnProperty.kt create mode 100644 analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnProperty.txt create mode 100644 analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnPropertyNoExtensionReceiver.kt diff --git a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/references/Fe10IdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/references/Fe10IdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java index 22087a78d17..b1ad140b4fa 100644 --- a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/references/Fe10IdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java +++ b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/references/Fe10IdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java @@ -1593,6 +1593,46 @@ public class Fe10IdeNormalAnalysisSourceModuleReferenceResolveTestGenerated exte } } + @Nested + @TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier") + @TestDataPath("$PROJECT_ROOT") + public class ThisQualifier { + @Test + public void testAllFilesPresentInThisQualifier() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + } + + @Test + @TestMetadata("thisQualifierOnClass.kt") + public void testThisQualifierOnClass() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnClass.kt"); + } + + @Test + @TestMetadata("thisQualifierOnFunction.kt") + public void testThisQualifierOnFunction() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnFunction.kt"); + } + + @Test + @TestMetadata("thisQualifierOnFunctionNoExtensionReceiver.kt") + public void testThisQualifierOnFunctionNoExtensionReceiver() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnFunctionNoExtensionReceiver.kt"); + } + + @Test + @TestMetadata("thisQualifierOnProperty.kt") + public void testThisQualifierOnProperty() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnProperty.kt"); + } + + @Test + @TestMetadata("thisQualifierOnPropertyNoExtensionReceiver.kt") + public void testThisQualifierOnPropertyNoExtensionReceiver() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnPropertyNoExtensionReceiver.kt"); + } + } + @Nested @TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/withErrors") @TestDataPath("$PROJECT_ROOT") 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 135f19d198b..4b8f63723f8 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.KtCallableSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtDeclarationSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtNamedClassOrObjectSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol @@ -19,6 +20,7 @@ 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 { @@ -77,11 +79,24 @@ internal object KDocReferenceResolver { context(KtAnalysisSession) private fun resolveKdocFqName(fqName: FqName, contextElement: KtElement): Collection { + getExtensionReceiverSymbolByThisQualifier(fqName, contextElement).ifNotEmpty { return this } (getSymbolsFromScopes(fqName, contextElement) + listOfNotNull(getPackageSymbolIfPackageExists(fqName))).ifNotEmpty { return this } getNonImportedSymbolsByFullyQualifiedName(fqName).ifNotEmpty { return this } return emptyList() } + context(KtAnalysisSession) + fun getExtensionReceiverSymbolByThisQualifier(fqName: FqName, contextElement: KtElement): Collection { + val owner = contextElement.parentOfType() ?: return emptyList() + if (fqName.pathSegments().singleOrNull()?.asString() == "this") { + if (owner is KtCallableDeclaration && owner.receiverTypeReference != null) { + val symbol = owner.getSymbol() as? KtCallableSymbol ?: return emptyList() + return listOfNotNull(symbol.receiverParameter) + } + } + return emptyList() + } + context(KtAnalysisSession) private fun getSymbolsFromScopes(fqName: FqName, contextElement: KtElement): Collection { getSymbolsFromParentMemberScopes(fqName, contextElement).ifNotEmpty { return this } diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeDependentAnalysisSourceModuleReferenceResolveTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeDependentAnalysisSourceModuleReferenceResolveTestGenerated.java index 34598c0a8a1..ef224d80e2d 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeDependentAnalysisSourceModuleReferenceResolveTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeDependentAnalysisSourceModuleReferenceResolveTestGenerated.java @@ -1593,6 +1593,46 @@ public class FirIdeDependentAnalysisSourceModuleReferenceResolveTestGenerated ex } } + @Nested + @TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier") + @TestDataPath("$PROJECT_ROOT") + public class ThisQualifier { + @Test + public void testAllFilesPresentInThisQualifier() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + } + + @Test + @TestMetadata("thisQualifierOnClass.kt") + public void testThisQualifierOnClass() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnClass.kt"); + } + + @Test + @TestMetadata("thisQualifierOnFunction.kt") + public void testThisQualifierOnFunction() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnFunction.kt"); + } + + @Test + @TestMetadata("thisQualifierOnFunctionNoExtensionReceiver.kt") + public void testThisQualifierOnFunctionNoExtensionReceiver() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnFunctionNoExtensionReceiver.kt"); + } + + @Test + @TestMetadata("thisQualifierOnProperty.kt") + public void testThisQualifierOnProperty() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnProperty.kt"); + } + + @Test + @TestMetadata("thisQualifierOnPropertyNoExtensionReceiver.kt") + public void testThisQualifierOnPropertyNoExtensionReceiver() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnPropertyNoExtensionReceiver.kt"); + } + } + @Nested @TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/withErrors") @TestDataPath("$PROJECT_ROOT") diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisLibrarySourceModuleReferenceResolveTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisLibrarySourceModuleReferenceResolveTestGenerated.java index 960faa571d8..84fcb65c84b 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisLibrarySourceModuleReferenceResolveTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisLibrarySourceModuleReferenceResolveTestGenerated.java @@ -1476,6 +1476,46 @@ public class FirIdeNormalAnalysisLibrarySourceModuleReferenceResolveTestGenerate } } } + + @Nested + @TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier") + @TestDataPath("$PROJECT_ROOT") + public class ThisQualifier { + @Test + public void testAllFilesPresentInThisQualifier() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier"), Pattern.compile("^([^.]+)\\.kt$"), null, true, "withErrors"); + } + + @Test + @TestMetadata("thisQualifierOnClass.kt") + public void testThisQualifierOnClass() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnClass.kt"); + } + + @Test + @TestMetadata("thisQualifierOnFunction.kt") + public void testThisQualifierOnFunction() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnFunction.kt"); + } + + @Test + @TestMetadata("thisQualifierOnFunctionNoExtensionReceiver.kt") + public void testThisQualifierOnFunctionNoExtensionReceiver() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnFunctionNoExtensionReceiver.kt"); + } + + @Test + @TestMetadata("thisQualifierOnProperty.kt") + public void testThisQualifierOnProperty() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnProperty.kt"); + } + + @Test + @TestMetadata("thisQualifierOnPropertyNoExtensionReceiver.kt") + public void testThisQualifierOnPropertyNoExtensionReceiver() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnPropertyNoExtensionReceiver.kt"); + } + } } @Nested diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java index a4295b40840..4f85f040840 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/references/FirIdeNormalAnalysisSourceModuleReferenceResolveTestGenerated.java @@ -1593,6 +1593,46 @@ public class FirIdeNormalAnalysisSourceModuleReferenceResolveTestGenerated exten } } + @Nested + @TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier") + @TestDataPath("$PROJECT_ROOT") + public class ThisQualifier { + @Test + public void testAllFilesPresentInThisQualifier() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + } + + @Test + @TestMetadata("thisQualifierOnClass.kt") + public void testThisQualifierOnClass() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnClass.kt"); + } + + @Test + @TestMetadata("thisQualifierOnFunction.kt") + public void testThisQualifierOnFunction() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnFunction.kt"); + } + + @Test + @TestMetadata("thisQualifierOnFunctionNoExtensionReceiver.kt") + public void testThisQualifierOnFunctionNoExtensionReceiver() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnFunctionNoExtensionReceiver.kt"); + } + + @Test + @TestMetadata("thisQualifierOnProperty.kt") + public void testThisQualifierOnProperty() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnProperty.kt"); + } + + @Test + @TestMetadata("thisQualifierOnPropertyNoExtensionReceiver.kt") + public void testThisQualifierOnPropertyNoExtensionReceiver() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnPropertyNoExtensionReceiver.kt"); + } + } + @Nested @TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/withErrors") @TestDataPath("$PROJECT_ROOT") diff --git a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/references/FirStandaloneNormalAnalysisSourceModuleReferenceResolveTestGenerated.java b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/references/FirStandaloneNormalAnalysisSourceModuleReferenceResolveTestGenerated.java index 0a19f826766..84be16f6085 100644 --- a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/references/FirStandaloneNormalAnalysisSourceModuleReferenceResolveTestGenerated.java +++ b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/references/FirStandaloneNormalAnalysisSourceModuleReferenceResolveTestGenerated.java @@ -1593,6 +1593,46 @@ public class FirStandaloneNormalAnalysisSourceModuleReferenceResolveTestGenerate } } + @Nested + @TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier") + @TestDataPath("$PROJECT_ROOT") + public class ThisQualifier { + @Test + public void testAllFilesPresentInThisQualifier() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + } + + @Test + @TestMetadata("thisQualifierOnClass.kt") + public void testThisQualifierOnClass() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnClass.kt"); + } + + @Test + @TestMetadata("thisQualifierOnFunction.kt") + public void testThisQualifierOnFunction() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnFunction.kt"); + } + + @Test + @TestMetadata("thisQualifierOnFunctionNoExtensionReceiver.kt") + public void testThisQualifierOnFunctionNoExtensionReceiver() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnFunctionNoExtensionReceiver.kt"); + } + + @Test + @TestMetadata("thisQualifierOnProperty.kt") + public void testThisQualifierOnProperty() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnProperty.kt"); + } + + @Test + @TestMetadata("thisQualifierOnPropertyNoExtensionReceiver.kt") + public void testThisQualifierOnPropertyNoExtensionReceiver() throws Exception { + runTest("analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnPropertyNoExtensionReceiver.kt"); + } + } + @Nested @TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/withErrors") @TestDataPath("$PROJECT_ROOT") diff --git a/analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnClass.kt b/analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnClass.kt new file mode 100644 index 00000000000..89531ea20b6 --- /dev/null +++ b/analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnClass.kt @@ -0,0 +1,9 @@ +// UNRESOLVED_REFERENCE + +/** + * [this] + */ +class A { + +} + diff --git a/analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnFunction.kt b/analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnFunction.kt new file mode 100644 index 00000000000..2518924cd5d --- /dev/null +++ b/analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnFunction.kt @@ -0,0 +1,8 @@ +/** + * [this] + */ +fun AAA.foo() { + +} + +class AAA \ No newline at end of file diff --git a/analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnFunction.txt b/analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnFunction.txt new file mode 100644 index 00000000000..8f89c3f5d20 --- /dev/null +++ b/analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnFunction.txt @@ -0,0 +1,2 @@ +Resolved to: +0: extension receiver with type AAA diff --git a/analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnFunctionNoExtensionReceiver.kt b/analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnFunctionNoExtensionReceiver.kt new file mode 100644 index 00000000000..1b5185e24bd --- /dev/null +++ b/analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnFunctionNoExtensionReceiver.kt @@ -0,0 +1,8 @@ +// UNRESOLVED_REFERENCE + +/** + * [this] + */ +fun foo() { + +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnProperty.kt b/analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnProperty.kt new file mode 100644 index 00000000000..468cf88ad47 --- /dev/null +++ b/analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnProperty.kt @@ -0,0 +1,7 @@ +/** + * [this] + */ +val AAA.foo + get() = 1 + +class AAA \ No newline at end of file diff --git a/analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnProperty.txt b/analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnProperty.txt new file mode 100644 index 00000000000..8f89c3f5d20 --- /dev/null +++ b/analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnProperty.txt @@ -0,0 +1,2 @@ +Resolved to: +0: extension receiver with type AAA diff --git a/analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnPropertyNoExtensionReceiver.kt b/analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnPropertyNoExtensionReceiver.kt new file mode 100644 index 00000000000..ec12bcae287 --- /dev/null +++ b/analysis/analysis-api/testData/referenceResolve/kDoc/thisQualifier/thisQualifierOnPropertyNoExtensionReceiver.kt @@ -0,0 +1,7 @@ +// UNRESOLVED_REFERENCE + +/** + * [this] + */ +val foo + get() = 1