[FIR] KTIJ-24156: Add test data
This commit is contained in:
committed by
Space Team
parent
af414cfb5e
commit
3a6e3290aa
+6
@@ -106,6 +106,12 @@ public class Fe10IdeNormalAnalysisSourceModuleSymbolByFqNameTestGenerated extend
|
|||||||
runTest("analysis/analysis-api/testData/symbols/symbolByFqName/nestedClass.kt");
|
runTest("analysis/analysis-api/testData/symbols/symbolByFqName/nestedClass.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("typealias.kt")
|
||||||
|
public void testTypealias() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/symbols/symbolByFqName/typealias.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Nested
|
@Nested
|
||||||
@TestMetadata("analysis/analysis-api/testData/symbols/symbolByFqName/withTestCompilerPluginEnabled")
|
@TestMetadata("analysis/analysis-api/testData/symbols/symbolByFqName/withTestCompilerPluginEnabled")
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
|||||||
+6
@@ -106,6 +106,12 @@ public class FirIdeNormalAnalysisSourceModuleSymbolByFqNameTestGenerated extends
|
|||||||
runTest("analysis/analysis-api/testData/symbols/symbolByFqName/nestedClass.kt");
|
runTest("analysis/analysis-api/testData/symbols/symbolByFqName/nestedClass.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("typealias.kt")
|
||||||
|
public void testTypealias() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/symbols/symbolByFqName/typealias.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Nested
|
@Nested
|
||||||
@TestMetadata("analysis/analysis-api/testData/symbols/symbolByFqName/withTestCompilerPluginEnabled")
|
@TestMetadata("analysis/analysis-api/testData/symbols/symbolByFqName/withTestCompilerPluginEnabled")
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
|||||||
+9
-1
@@ -50,6 +50,13 @@ sealed class SymbolData {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
data class TypeAliasData(val classId: ClassId) : SymbolData() {
|
||||||
|
override fun KtAnalysisSession.toSymbols(): List<KtSymbol> {
|
||||||
|
val symbol = getTypeAliasByClassId(classId) ?: error("Type alias $classId is not found")
|
||||||
|
return listOf(symbol)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
data class CallableData(val callableId: CallableId) : SymbolData() {
|
data class CallableData(val callableId: CallableId) : SymbolData() {
|
||||||
override fun KtAnalysisSession.toSymbols(): List<KtSymbol> {
|
override fun KtAnalysisSession.toSymbols(): List<KtSymbol> {
|
||||||
val classId = callableId.classId
|
val classId = callableId.classId
|
||||||
@@ -71,10 +78,11 @@ sealed class SymbolData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
val identifiers = arrayOf("callable:", "class:")
|
val identifiers = arrayOf("callable:", "class:", "typealias:")
|
||||||
|
|
||||||
fun create(data: String): SymbolData = when {
|
fun create(data: String): SymbolData = when {
|
||||||
data.startsWith("class:") -> ClassData(ClassId.fromString(data.removePrefix("class:").trim()))
|
data.startsWith("class:") -> ClassData(ClassId.fromString(data.removePrefix("class:").trim()))
|
||||||
|
data.startsWith("typealias:") -> TypeAliasData(ClassId.fromString(data.removePrefix("typealias:").trim()))
|
||||||
data.startsWith("callable:") -> {
|
data.startsWith("callable:") -> {
|
||||||
val fullName = data.removePrefix("callable:").trim()
|
val fullName = data.removePrefix("callable:").trim()
|
||||||
val name = if ('.' in fullName) fullName.substringAfterLast(".") else fullName.substringAfterLast('/')
|
val name = if ('.' in fullName) fullName.substringAfterLast(".") else fullName.substringAfterLast('/')
|
||||||
|
|||||||
+6
@@ -105,4 +105,10 @@ public class FirStandaloneNormalAnalysisSourceModuleSymbolByFqNameTestGenerated
|
|||||||
public void testNestedClass() throws Exception {
|
public void testNestedClass() throws Exception {
|
||||||
runTest("analysis/analysis-api/testData/symbols/symbolByFqName/nestedClass.kt");
|
runTest("analysis/analysis-api/testData/symbols/symbolByFqName/nestedClass.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("typealias.kt")
|
||||||
|
public void testTypealias() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/symbols/symbolByFqName/typealias.kt");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+11
@@ -0,0 +1,11 @@
|
|||||||
|
KtTypeAliasSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
classIdIfNonLocal: kotlin/DeepRecursiveFunctionBlock
|
||||||
|
expandedType: kotlin/coroutines/SuspendFunction2<kotlin/DeepRecursiveScope<*, *>, kotlin/Any?, kotlin/Any?>
|
||||||
|
name: DeepRecursiveFunctionBlock
|
||||||
|
origin: LIBRARY
|
||||||
|
symbolKind: TOP_LEVEL
|
||||||
|
typeParameters: []
|
||||||
|
visibility: Private
|
||||||
|
getContainingModule: KtLibraryModule "Library kotlin-stdlib"
|
||||||
|
deprecationStatus: null
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
// See: KTIJ-24156
|
||||||
|
// DO_NOT_CHECK_SYMBOL_RESTORE_K1
|
||||||
|
|
||||||
|
// typealias: kotlin/DeepRecursiveFunctionBlock
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
private typealias DeepRecursiveFunctionBlock = suspend kotlin.DeepRecursiveScope<*, *>.(kotlin.Any?) -> kotlin.Any?
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
KtTypeAliasSymbol:
|
||||||
|
annotationsList: []
|
||||||
|
classIdIfNonLocal: kotlin/DeepRecursiveFunctionBlock
|
||||||
|
expandedType: @ExtensionFunctionType kotlin/coroutines/SuspendFunction2<kotlin/DeepRecursiveScope<*, *>, kotlin/Any?, kotlin/Any?>
|
||||||
|
name: DeepRecursiveFunctionBlock
|
||||||
|
origin: LIBRARY
|
||||||
|
symbolKind: TOP_LEVEL
|
||||||
|
typeParameters: []
|
||||||
|
visibility: Private
|
||||||
|
getContainingModule: KtLibraryModule "Library kotlin-stdlib"
|
||||||
|
deprecationStatus: null
|
||||||
+11
-1
@@ -13,8 +13,18 @@ internal class FirThreadSafeCache<K : Any, V, CONTEXT>(
|
|||||||
private val createValue: (K, CONTEXT) -> V
|
private val createValue: (K, CONTEXT) -> V
|
||||||
) : FirCache<K, V, CONTEXT>() {
|
) : FirCache<K, V, CONTEXT>() {
|
||||||
|
|
||||||
|
private val updating: ThreadLocal<Boolean> = ThreadLocal.withInitial { false }
|
||||||
|
|
||||||
override fun getValue(key: K, context: CONTEXT): V =
|
override fun getValue(key: K, context: CONTEXT): V =
|
||||||
map.getOrPutWithNullableValue(key) { createValue(it, context) }
|
map.getOrPutWithNullableValue(key) {
|
||||||
|
if (updating.get()) error("Recursive update")
|
||||||
|
try {
|
||||||
|
updating.set(true)
|
||||||
|
createValue(it, context)
|
||||||
|
} finally {
|
||||||
|
updating.set(false)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
override fun getValueIfComputed(key: K): V? =
|
override fun getValueIfComputed(key: K): V? =
|
||||||
map[key]?.nullValueToNull()
|
map[key]?.nullValueToNull()
|
||||||
|
|||||||
Reference in New Issue
Block a user