[AA FIR] fix nested type annotations lazy resolve

^KT-56046
This commit is contained in:
Dmitrii Gridin
2023-01-26 13:36:00 +01:00
committed by Space Team
parent 3b99a5bf34
commit d13ad454da
18 changed files with 830 additions and 12 deletions
@@ -17,6 +17,8 @@ import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.hasAnnotation
import org.jetbrains.kotlin.fir.declarations.toAnnotationClassId
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.symbols.resolvedAnnotationsWithArguments
import org.jetbrains.kotlin.fir.symbols.resolvedAnnotationsWithClassIds
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.custom
import org.jetbrains.kotlin.fir.types.customAnnotations
@@ -82,8 +84,8 @@ private fun ConeKotlinType.customAnnotationsWithLazyResolve(phase: FirResolvePha
for (containerSymbol in custom.containerSymbols) {
when (phase) {
FirResolvePhase.TYPES -> containerSymbol.resolvedAnnotationsWithClassIds
FirResolvePhase.ANNOTATIONS_ARGUMENTS_MAPPING -> containerSymbol.resolvedAnnotationsWithArguments
FirResolvePhase.TYPES -> annotations.resolvedAnnotationsWithClassIds(containerSymbol)
FirResolvePhase.ANNOTATIONS_ARGUMENTS_MAPPING -> annotations.resolvedAnnotationsWithArguments(containerSymbol)
else -> {}
}
}
@@ -76,6 +76,18 @@ public class FirIdeNormalAnalysisSourceModuleSingleSymbolByPsiGenerated extends
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/getterWithReceiverAndAnnotations.kt");
}
@Test
@TestMetadata("nestedTypeAnnotationWithTypeAlias.kt")
public void testNestedTypeAnnotationWithTypeAlias() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/nestedTypeAnnotationWithTypeAlias.kt");
}
@Test
@TestMetadata("nestedTypeAnnotationWithTypeAliasAsAnnotation.kt")
public void testNestedTypeAnnotationWithTypeAliasAsAnnotation() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/nestedTypeAnnotationWithTypeAliasAsAnnotation.kt");
}
@Test
@TestMetadata("propertyWithAnnotations.kt")
public void testPropertyWithAnnotations() throws Exception {