[AA] Show symbol origins in REx tests.
This is in preparation for adding a separate KtSymbolOrigin for resolve extension symbols. ^KT-59351
This commit is contained in:
committed by
Ilya Kirillov
parent
734b87b97e
commit
f01b824751
+3
-1
@@ -67,7 +67,7 @@ abstract class AbstractReferenceResolveTest : AbstractAnalysisApiBasedTest() {
|
|||||||
analyseForTest(ktReferences.first().element) {
|
analyseForTest(ktReferences.first().element) {
|
||||||
val symbols = ktReferences.flatMap { it.resolveToSymbols() }
|
val symbols = ktReferences.flatMap { it.resolveToSymbols() }
|
||||||
checkReferenceResultForValidity(ktReferences, mainModule, testServices, symbols)
|
checkReferenceResultForValidity(ktReferences, mainModule, testServices, symbols)
|
||||||
renderResolvedTo(symbols, renderingOptions)
|
renderResolvedTo(symbols, renderingOptions) { getAdditionalSymbolInfo(it) }
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Directives.UNRESOLVED_REFERENCE in mainModule.directives) {
|
if (Directives.UNRESOLVED_REFERENCE in mainModule.directives) {
|
||||||
@@ -78,6 +78,8 @@ abstract class AbstractReferenceResolveTest : AbstractAnalysisApiBasedTest() {
|
|||||||
testServices.assertions.assertEqualsToTestDataFileSibling(actual)
|
testServices.assertions.assertEqualsToTestDataFileSibling(actual)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
open fun KtAnalysisSession.getAdditionalSymbolInfo(symbol: KtSymbol): String? = null
|
||||||
|
|
||||||
private fun findReferencesAtCaret(mainKtFile: KtFile, caretPosition: Int): List<KtReference> =
|
private fun findReferencesAtCaret(mainKtFile: KtFile, caretPosition: Int): List<KtReference> =
|
||||||
mainKtFile.findReferenceAt(caretPosition)?.unwrapMultiReferences().orEmpty().filterIsInstance<KtReference>()
|
mainKtFile.findReferenceAt(caretPosition)?.unwrapMultiReferences().orEmpty().filterIsInstance<KtReference>()
|
||||||
|
|
||||||
|
|||||||
+5
@@ -6,6 +6,8 @@
|
|||||||
package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.references
|
package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.references
|
||||||
|
|
||||||
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.resolve.extensions.KtResolveExtensionTestSupport
|
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.resolve.extensions.KtResolveExtensionTestSupport
|
||||||
|
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||||
|
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
|
||||||
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
|
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
|
||||||
|
|
||||||
abstract class AbstractReferenceResolveWithResolveExtensionTest : AbstractReferenceResolveTest() {
|
abstract class AbstractReferenceResolveWithResolveExtensionTest : AbstractReferenceResolveTest() {
|
||||||
@@ -13,4 +15,7 @@ abstract class AbstractReferenceResolveWithResolveExtensionTest : AbstractRefere
|
|||||||
super.configureTest(builder)
|
super.configureTest(builder)
|
||||||
KtResolveExtensionTestSupport.configure(builder)
|
KtResolveExtensionTestSupport.configure(builder)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun KtAnalysisSession.getAdditionalSymbolInfo(symbol: KtSymbol): String? =
|
||||||
|
"origin = ${symbol.origin}"
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-2
@@ -18,15 +18,17 @@ object TestReferenceResolveResultRenderer {
|
|||||||
fun KtAnalysisSession.renderResolvedTo(
|
fun KtAnalysisSession.renderResolvedTo(
|
||||||
symbols: List<KtSymbol>,
|
symbols: List<KtSymbol>,
|
||||||
renderer: KtDeclarationRenderer = KtDeclarationRendererForDebug.WITH_QUALIFIED_NAMES,
|
renderer: KtDeclarationRenderer = KtDeclarationRendererForDebug.WITH_QUALIFIED_NAMES,
|
||||||
|
additionalInfo: KtAnalysisSession.(KtSymbol) -> String? = { null }
|
||||||
) =
|
) =
|
||||||
symbols.map { renderResolveResult(it, renderer) }
|
symbols.map { renderResolveResult(it, renderer, additionalInfo) }
|
||||||
.sorted()
|
.sorted()
|
||||||
.withIndex()
|
.withIndex()
|
||||||
.joinToString(separator = "\n") { "${it.index}: ${it.value}" }
|
.joinToString(separator = "\n") { "${it.index}: ${it.value}" }
|
||||||
|
|
||||||
private fun KtAnalysisSession.renderResolveResult(
|
private fun KtAnalysisSession.renderResolveResult(
|
||||||
symbol: KtSymbol,
|
symbol: KtSymbol,
|
||||||
renderer: KtDeclarationRenderer
|
renderer: KtDeclarationRenderer,
|
||||||
|
additionalInfo: KtAnalysisSession.(KtSymbol) -> String?
|
||||||
): String {
|
): String {
|
||||||
return buildString {
|
return buildString {
|
||||||
symbolContainerFqName(symbol)?.let { fqName ->
|
symbolContainerFqName(symbol)?.let { fqName ->
|
||||||
@@ -41,6 +43,7 @@ object TestReferenceResolveResultRenderer {
|
|||||||
}
|
}
|
||||||
else -> error("Unexpected symbol ${symbol::class}")
|
else -> error("Unexpected symbol ${symbol::class}")
|
||||||
}
|
}
|
||||||
|
additionalInfo(symbol)?.let { append(" [$it]") }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,2 +1,2 @@
|
|||||||
Resolved to:
|
Resolved to:
|
||||||
0: (in generated.GeneratedClass2) fun generatedClassMember2(): generated.GeneratedClass1
|
0: (in generated.GeneratedClass2) fun generatedClassMember2(): generated.GeneratedClass1 [origin = SOURCE]
|
||||||
+1
-1
@@ -1,2 +1,2 @@
|
|||||||
Resolved to:
|
Resolved to:
|
||||||
0: (in generated) fun kotlin.String.generatedTopLevelExtensionFunction1(boolean: kotlin.Boolean): kotlin.Int
|
0: (in generated) fun kotlin.String.generatedTopLevelExtensionFunction1(boolean: kotlin.Boolean): kotlin.Int [origin = SOURCE]
|
||||||
+1
-1
@@ -1,2 +1,2 @@
|
|||||||
Resolved to:
|
Resolved to:
|
||||||
0: (in generated) fun kotlin.Any.generatedOverloadedExtensionFunction(): kotlin.Int
|
0: (in generated) fun kotlin.Any.generatedOverloadedExtensionFunction(): kotlin.Int [origin = SOURCE]
|
||||||
+1
-1
@@ -1,2 +1,2 @@
|
|||||||
Resolved to:
|
Resolved to:
|
||||||
0: (in generated) fun generatedTopLevelFunction1(): generated.GeneratedClass2
|
0: (in generated) fun generatedTopLevelFunction1(): generated.GeneratedClass2 [origin = SOURCE]
|
||||||
Vendored
+1
-1
@@ -1,2 +1,2 @@
|
|||||||
Resolved to:
|
Resolved to:
|
||||||
0: (in generated.GeneratedClass2) fun generatedClassMember2(): generated.GeneratedClass1
|
0: (in generated.GeneratedClass2) fun generatedClassMember2(): generated.GeneratedClass1 [origin = SOURCE]
|
||||||
analysis/analysis-api/testData/resolveExtensions/referenceResolve/singleModule/extensionFunction.txt
Vendored
+1
-1
@@ -1,2 +1,2 @@
|
|||||||
Resolved to:
|
Resolved to:
|
||||||
0: (in generated) fun kotlin.String.generatedTopLevelExtensionFunction1(boolean: kotlin.Boolean): kotlin.Int
|
0: (in generated) fun kotlin.String.generatedTopLevelExtensionFunction1(boolean: kotlin.Boolean): kotlin.Int [origin = SOURCE]
|
||||||
Vendored
+1
-1
@@ -1,2 +1,2 @@
|
|||||||
Resolved to:
|
Resolved to:
|
||||||
0: (in generated) fun kotlin.Any.generatedOverloadedExtensionFunction(): kotlin.Int
|
0: (in generated) fun kotlin.Any.generatedOverloadedExtensionFunction(): kotlin.Int [origin = SOURCE]
|
||||||
Vendored
+1
-1
@@ -1,2 +1,2 @@
|
|||||||
Resolved to:
|
Resolved to:
|
||||||
0: (in generated) fun generatedTopLevelFunction1(): generated.GeneratedClass2
|
0: (in generated) fun generatedTopLevelFunction1(): generated.GeneratedClass2 [origin = SOURCE]
|
||||||
Reference in New Issue
Block a user