[AA] Unwrap type aliases in annotation arguments

^KT-55782 Fixed
This commit is contained in:
Dmitriy Novozhilov
2022-10-03 18:02:35 +03:00
committed by Space Team
parent 34af013913
commit 16b72d3e54
12 changed files with 72 additions and 30 deletions
@@ -11,7 +11,9 @@ import org.jetbrains.kotlin.analysis.api.components.KtConstantEvaluationMode
import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.analysis.checkers.getContainingClassSymbol
import org.jetbrains.kotlin.fir.analysis.checkers.toClassLikeSymbol
import org.jetbrains.kotlin.fir.declarations.FirClass
import org.jetbrains.kotlin.fir.declarations.fullyExpandedClass
import org.jetbrains.kotlin.fir.declarations.utils.isLocal
import org.jetbrains.kotlin.fir.expressions.*
import org.jetbrains.kotlin.fir.psi
@@ -22,6 +24,7 @@ import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeUnresolvedTypeQualifierE
import org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirEnumEntrySymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeAliasSymbol
import org.jetbrains.kotlin.fir.types.ConeErrorType
import org.jetbrains.kotlin.fir.types.coneType
import org.jetbrains.kotlin.name.Name
@@ -147,7 +150,10 @@ internal object FirAnnotationValueConverter {
}
is FirGetClassCall -> {
val symbol = (argument as? FirResolvedQualifier)?.symbol
var symbol = (argument as? FirResolvedQualifier)?.symbol
if (symbol is FirTypeAliasSymbol) {
symbol = symbol.fullyExpandedClass(session) ?: symbol
}
when {
symbol == null -> {
val qualifierParts = mutableListOf<String?>()
@@ -108,12 +108,6 @@ public class SymbolLightClassesByFqNameForLibraryTestGenerated extends AbstractS
runTest("compiler/testData/asJava/lightClasses/lightClassByFqName/DelegatedNested.kt");
}
@Test
@TestMetadata("delegatedProperty.kt")
public void testDelegatedProperty() throws Exception {
runTest("compiler/testData/asJava/lightClasses/delegatedProperty.kt");
}
@Test
@TestMetadata("Delegation.kt")
public void testDelegation() throws Exception {
@@ -264,6 +264,18 @@ public class SymbolLightClassesByPsiForLibraryTestGenerated extends AbstractSymb
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/typeAnnotations.kt");
}
@Test
@TestMetadata("typealiasInAnnotation.kt")
public void testTypealiasInAnnotation() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/typealiasInAnnotation.kt");
}
@Test
@TestMetadata("typealiasInTypeArguments.kt")
public void testTypealiasInTypeArguments() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/typealiasInTypeArguments.kt");
}
@Test
@TestMetadata("unresolvedWithAliasedImport.kt")
public void testUnresolvedWithAliasedImport() throws Exception {
@@ -108,12 +108,6 @@ public class SymbolLightClassesParentingForLibraryTestGenerated extends Abstract
runTest("compiler/testData/asJava/lightClasses/lightClassByFqName/DelegatedNested.kt");
}
@Test
@TestMetadata("delegatedProperty.kt")
public void testDelegatedProperty() throws Exception {
runTest("compiler/testData/asJava/lightClasses/delegatedProperty.kt");
}
@Test
@TestMetadata("Delegation.kt")
public void testDelegation() throws Exception {
@@ -108,12 +108,6 @@ public class SymbolLightClassesByFqNameForSourceTestGenerated extends AbstractSy
runTest("compiler/testData/asJava/lightClasses/lightClassByFqName/DelegatedNested.kt");
}
@Test
@TestMetadata("delegatedProperty.kt")
public void testDelegatedProperty() throws Exception {
runTest("compiler/testData/asJava/lightClasses/delegatedProperty.kt");
}
@Test
@TestMetadata("Delegation.kt")
public void testDelegation() throws Exception {
@@ -264,6 +264,18 @@ public class SymbolLightClassesByPsiForSourceTestGenerated extends AbstractSymbo
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/typeAnnotations.kt");
}
@Test
@TestMetadata("typealiasInAnnotation.kt")
public void testTypealiasInAnnotation() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/typealiasInAnnotation.kt");
}
@Test
@TestMetadata("typealiasInTypeArguments.kt")
public void testTypealiasInTypeArguments() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/typealiasInTypeArguments.kt");
}
@Test
@TestMetadata("unresolvedWithAliasedImport.kt")
public void testUnresolvedWithAliasedImport() throws Exception {
@@ -108,12 +108,6 @@ public class SymbolLightClassesParentingForSourceTestGenerated extends AbstractS
runTest("compiler/testData/asJava/lightClasses/lightClassByFqName/DelegatedNested.kt");
}
@Test
@TestMetadata("delegatedProperty.kt")
public void testDelegatedProperty() throws Exception {
runTest("compiler/testData/asJava/lightClasses/delegatedProperty.kt");
}
@Test
@TestMetadata("Delegation.kt")
public void testDelegation() throws Exception {