[Analysis API Standalone] extract a assertIsCallOf test utility to reused in other test modules
^KT-63126
This commit is contained in:
committed by
Space Team
parent
890fbd6b0b
commit
1c17f4a835
-10
@@ -209,16 +209,6 @@ class StandaloneSessionBuilderTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun KtCallExpression.assertIsCallOf(callableId: CallableId) {
|
|
||||||
analyze(this) {
|
|
||||||
val ktCallInfo = resolveCall()
|
|
||||||
Assertions.assertInstanceOf(KtSuccessCallInfo::class.java, ktCallInfo); ktCallInfo as KtSuccessCallInfo
|
|
||||||
val symbol = ktCallInfo.successfulFunctionCallOrNull()?.symbol
|
|
||||||
Assertions.assertInstanceOf(KtFunctionSymbol::class.java, symbol); symbol as KtFunctionSymbol
|
|
||||||
Assertions.assertEquals(callableId, symbol.callableIdIfNonLocal)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun KtTypeReference.assertIsReferenceTo(classId: ClassId) {
|
private fun KtTypeReference.assertIsReferenceTo(classId: ClassId) {
|
||||||
analyze(this) {
|
analyze(this) {
|
||||||
val actualClassId = getKtType().expandedClassSymbol?.classIdIfNonLocal
|
val actualClassId = getKtType().expandedClassSymbol?.classIdIfNonLocal
|
||||||
|
|||||||
+18
@@ -5,6 +5,13 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.analysis.api.standalone.fir.test.cases.session.builder
|
package org.jetbrains.kotlin.analysis.api.standalone.fir.test.cases.session.builder
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.analysis.api.analyze
|
||||||
|
import org.jetbrains.kotlin.analysis.api.calls.KtSuccessCallInfo
|
||||||
|
import org.jetbrains.kotlin.analysis.api.calls.successfulFunctionCallOrNull
|
||||||
|
import org.jetbrains.kotlin.analysis.api.calls.symbol
|
||||||
|
import org.jetbrains.kotlin.analysis.api.symbols.KtFunctionSymbol
|
||||||
|
import org.jetbrains.kotlin.name.CallableId
|
||||||
|
import org.jetbrains.kotlin.psi.KtCallExpression
|
||||||
import org.jetbrains.kotlin.test.MockLibraryUtil
|
import org.jetbrains.kotlin.test.MockLibraryUtil
|
||||||
import org.jetbrains.kotlin.test.util.KtTestUtil
|
import org.jetbrains.kotlin.test.util.KtTestUtil
|
||||||
import java.nio.file.Files
|
import java.nio.file.Files
|
||||||
@@ -13,11 +20,22 @@ import java.nio.file.Paths
|
|||||||
import kotlin.io.path.absolutePathString
|
import kotlin.io.path.absolutePathString
|
||||||
import kotlin.io.path.extension
|
import kotlin.io.path.extension
|
||||||
import kotlin.streams.asSequence
|
import kotlin.streams.asSequence
|
||||||
|
import org.junit.jupiter.api.Assertions
|
||||||
|
|
||||||
internal fun testDataPath(path: String): Path {
|
internal fun testDataPath(path: String): Path {
|
||||||
return Paths.get("analysis/analysis-api-standalone/testData/sessionBuilder").resolve(path)
|
return Paths.get("analysis/analysis-api-standalone/testData/sessionBuilder").resolve(path)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun KtCallExpression.assertIsCallOf(callableId: CallableId) {
|
||||||
|
analyze(this) {
|
||||||
|
val ktCallInfo = resolveCall()
|
||||||
|
Assertions.assertInstanceOf(KtSuccessCallInfo::class.java, ktCallInfo); ktCallInfo as KtSuccessCallInfo
|
||||||
|
val symbol = ktCallInfo.successfulFunctionCallOrNull()?.symbol
|
||||||
|
Assertions.assertInstanceOf(KtFunctionSymbol::class.java, symbol); symbol as KtFunctionSymbol
|
||||||
|
Assertions.assertEquals(callableId, symbol.callableIdIfNonLocal)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
internal fun compileCommonKlib(kLibSourcesRoot: Path): Path {
|
internal fun compileCommonKlib(kLibSourcesRoot: Path): Path {
|
||||||
val ktFiles = Files.walk(kLibSourcesRoot).asSequence().filter { it.extension == "kt" }.toList()
|
val ktFiles = Files.walk(kLibSourcesRoot).asSequence().filter { it.extension == "kt" }.toList()
|
||||||
|
|||||||
Reference in New Issue
Block a user