[Analysis API] add method for implicit companion object reference detection

Add a new method `isImplicitReferenceToCompanion` to determine
if the given reference is an implicit reference to a companion object.

The method is needed for the rename refactoring in IJ.

^KTIJ-25863
This commit is contained in:
Ilya Kirillov
2023-06-22 11:13:14 +02:00
committed by Space Team
parent f5bbf2b4fe
commit 8b0eb0488f
26 changed files with 553 additions and 1 deletions
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.importO
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.multiplatformInfoProvider.AbstractExpectForActualTest
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.psiTypeProvider.AbstractAnalysisApiExpressionPsiTypeProviderTest
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.psiTypeProvider.AbstractAnalysisApiPsiTypeProviderTest
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.referenceResolveProvider.AbstractIsImplicitCompanionReferenceTest
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.scopeProvider.*
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.signatureSubstitution.AbstractAnalysisApiSignatureContractsTest
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.signatureSubstitution.AbstractAnalysisApiSignatureSubstitutionTest
@@ -391,6 +392,13 @@ private fun AnalysisApiTestGroup.generateAnalysisApiComponentsTests() {
}
}
component("referenceResolveProvider") {
test(AbstractIsImplicitCompanionReferenceTest::class) {
model("isImplicitReferenceToCompanion")
}
}
component("scopeProvider") {
group(filter = frontendIs(FrontendKind.Fir)) {
test(AbstractTypeScopeTest::class) {