[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) {
|
||||
val symbols = ktReferences.flatMap { it.resolveToSymbols() }
|
||||
checkReferenceResultForValidity(ktReferences, mainModule, testServices, symbols)
|
||||
renderResolvedTo(symbols, renderingOptions)
|
||||
renderResolvedTo(symbols, renderingOptions) { getAdditionalSymbolInfo(it) }
|
||||
}
|
||||
|
||||
if (Directives.UNRESOLVED_REFERENCE in mainModule.directives) {
|
||||
@@ -78,6 +78,8 @@ abstract class AbstractReferenceResolveTest : AbstractAnalysisApiBasedTest() {
|
||||
testServices.assertions.assertEqualsToTestDataFileSibling(actual)
|
||||
}
|
||||
|
||||
open fun KtAnalysisSession.getAdditionalSymbolInfo(symbol: KtSymbol): String? = null
|
||||
|
||||
private fun findReferencesAtCaret(mainKtFile: KtFile, caretPosition: Int): List<KtReference> =
|
||||
mainKtFile.findReferenceAt(caretPosition)?.unwrapMultiReferences().orEmpty().filterIsInstance<KtReference>()
|
||||
|
||||
|
||||
+5
@@ -6,6 +6,8 @@
|
||||
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.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
|
||||
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
|
||||
|
||||
abstract class AbstractReferenceResolveWithResolveExtensionTest : AbstractReferenceResolveTest() {
|
||||
@@ -13,4 +15,7 @@ abstract class AbstractReferenceResolveWithResolveExtensionTest : AbstractRefere
|
||||
super.configureTest(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(
|
||||
symbols: List<KtSymbol>,
|
||||
renderer: KtDeclarationRenderer = KtDeclarationRendererForDebug.WITH_QUALIFIED_NAMES,
|
||||
additionalInfo: KtAnalysisSession.(KtSymbol) -> String? = { null }
|
||||
) =
|
||||
symbols.map { renderResolveResult(it, renderer) }
|
||||
symbols.map { renderResolveResult(it, renderer, additionalInfo) }
|
||||
.sorted()
|
||||
.withIndex()
|
||||
.joinToString(separator = "\n") { "${it.index}: ${it.value}" }
|
||||
|
||||
private fun KtAnalysisSession.renderResolveResult(
|
||||
symbol: KtSymbol,
|
||||
renderer: KtDeclarationRenderer
|
||||
renderer: KtDeclarationRenderer,
|
||||
additionalInfo: KtAnalysisSession.(KtSymbol) -> String?
|
||||
): String {
|
||||
return buildString {
|
||||
symbolContainerFqName(symbol)?.let { fqName ->
|
||||
@@ -41,6 +43,7 @@ object TestReferenceResolveResultRenderer {
|
||||
}
|
||||
else -> error("Unexpected symbol ${symbol::class}")
|
||||
}
|
||||
additionalInfo(symbol)?.let { append(" [$it]") }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user