[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");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("typealias.kt")
|
||||
public void testTypealias() throws Exception {
|
||||
runTest("analysis/analysis-api/testData/symbols/symbolByFqName/typealias.kt");
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("analysis/analysis-api/testData/symbols/symbolByFqName/withTestCompilerPluginEnabled")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
|
||||
+6
@@ -106,6 +106,12 @@ public class FirIdeNormalAnalysisSourceModuleSymbolByFqNameTestGenerated extends
|
||||
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
|
||||
@TestMetadata("analysis/analysis-api/testData/symbols/symbolByFqName/withTestCompilerPluginEnabled")
|
||||
@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() {
|
||||
override fun KtAnalysisSession.toSymbols(): List<KtSymbol> {
|
||||
val classId = callableId.classId
|
||||
@@ -71,10 +78,11 @@ sealed class SymbolData {
|
||||
}
|
||||
|
||||
companion object {
|
||||
val identifiers = arrayOf("callable:", "class:")
|
||||
val identifiers = arrayOf("callable:", "class:", "typealias:")
|
||||
|
||||
fun create(data: String): SymbolData = when {
|
||||
data.startsWith("class:") -> ClassData(ClassId.fromString(data.removePrefix("class:").trim()))
|
||||
data.startsWith("typealias:") -> TypeAliasData(ClassId.fromString(data.removePrefix("typealias:").trim()))
|
||||
data.startsWith("callable:") -> {
|
||||
val fullName = data.removePrefix("callable:").trim()
|
||||
val name = if ('.' in fullName) fullName.substringAfterLast(".") else fullName.substringAfterLast('/')
|
||||
|
||||
+6
@@ -105,4 +105,10 @@ public class FirStandaloneNormalAnalysisSourceModuleSymbolByFqNameTestGenerated
|
||||
public void testNestedClass() throws Exception {
|
||||
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
|
||||
) : FirCache<K, V, CONTEXT>() {
|
||||
|
||||
private val updating: ThreadLocal<Boolean> = ThreadLocal.withInitial { false }
|
||||
|
||||
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? =
|
||||
map[key]?.nullValueToNull()
|
||||
|
||||
Reference in New Issue
Block a user