Analysis API: add annotations to KtTypeAliasSymbol
This commit is contained in:
+9
-1
@@ -6,6 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.analysis.api.fir.symbols
|
package org.jetbrains.kotlin.analysis.api.fir.symbols
|
||||||
|
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
|
import org.jetbrains.kotlin.analysis.api.annotations.KtAnnotationsList
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility
|
import org.jetbrains.kotlin.descriptors.Visibility
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||||
@@ -15,6 +16,8 @@ import org.jetbrains.kotlin.fir.declarations.utils.isLocal
|
|||||||
import org.jetbrains.kotlin.analysis.api.fir.findPsi
|
import org.jetbrains.kotlin.analysis.api.fir.findPsi
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirModuleResolveState
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirModuleResolveState
|
||||||
import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder
|
import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder
|
||||||
|
import org.jetbrains.kotlin.analysis.api.fir.annotations.KtFirAnnotationListForDeclaration
|
||||||
|
import org.jetbrains.kotlin.analysis.api.fir.utils.cached
|
||||||
import org.jetbrains.kotlin.analysis.api.fir.utils.firRef
|
import org.jetbrains.kotlin.analysis.api.fir.utils.firRef
|
||||||
import org.jetbrains.kotlin.analysis.api.fir.utils.weakRef
|
import org.jetbrains.kotlin.analysis.api.fir.utils.weakRef
|
||||||
import org.jetbrains.kotlin.analysis.api.symbols.KtTypeAliasSymbol
|
import org.jetbrains.kotlin.analysis.api.symbols.KtTypeAliasSymbol
|
||||||
@@ -22,12 +25,13 @@ import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtPsiBasedSymbolPointe
|
|||||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||||
import org.jetbrains.kotlin.analysis.api.tokens.ValidityToken
|
import org.jetbrains.kotlin.analysis.api.tokens.ValidityToken
|
||||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||||
|
import org.jetbrains.kotlin.analysis.api.withValidityAssertion
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
internal class KtFirTypeAliasSymbol(
|
internal class KtFirTypeAliasSymbol(
|
||||||
fir: FirTypeAlias,
|
fir: FirTypeAlias,
|
||||||
resolveState: FirModuleResolveState,
|
private val resolveState: FirModuleResolveState,
|
||||||
override val token: ValidityToken,
|
override val token: ValidityToken,
|
||||||
private val builder: KtSymbolByFirBuilder,
|
private val builder: KtSymbolByFirBuilder,
|
||||||
) : KtTypeAliasSymbol(), KtFirSymbol<FirTypeAlias> {
|
) : KtTypeAliasSymbol(), KtFirSymbol<FirTypeAlias> {
|
||||||
@@ -53,6 +57,10 @@ internal class KtFirTypeAliasSymbol(
|
|||||||
builder.typeBuilder.buildKtType(fir.expandedTypeRef)
|
builder.typeBuilder.buildKtType(fir.expandedTypeRef)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override val annotationsList: KtAnnotationsList by cached {
|
||||||
|
KtFirAnnotationListForDeclaration.create(firRef, resolveState.rootModuleSession, token)
|
||||||
|
}
|
||||||
|
|
||||||
override fun createPointer(): KtSymbolPointer<KtTypeAliasSymbol> {
|
override fun createPointer(): KtSymbolPointer<KtTypeAliasSymbol> {
|
||||||
KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it }
|
KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it }
|
||||||
TODO("Creating symbols for library typealiases is not supported yet")
|
TODO("Creating symbols for library typealiases is not supported yet")
|
||||||
|
|||||||
+2
-1
@@ -35,7 +35,8 @@ public sealed class KtClassLikeSymbol : KtClassifierSymbol(), KtSymbolWithKind {
|
|||||||
public abstract class KtTypeAliasSymbol : KtClassLikeSymbol(),
|
public abstract class KtTypeAliasSymbol : KtClassLikeSymbol(),
|
||||||
KtSymbolWithTypeParameters,
|
KtSymbolWithTypeParameters,
|
||||||
KtSymbolWithVisibility,
|
KtSymbolWithVisibility,
|
||||||
KtNamedSymbol {
|
KtNamedSymbol,
|
||||||
|
KtAnnotatedSymbol {
|
||||||
final override val symbolKind: KtSymbolKind get() = KtSymbolKind.TOP_LEVEL
|
final override val symbolKind: KtSymbolKind get() = KtSymbolKind.TOP_LEVEL
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ KtTypeParameterSymbol:
|
|||||||
deprecationStatus: null
|
deprecationStatus: null
|
||||||
|
|
||||||
KtTypeAliasSymbol:
|
KtTypeAliasSymbol:
|
||||||
|
annotationsList: []
|
||||||
classIdIfNonLocal: Y
|
classIdIfNonLocal: Y
|
||||||
expandedType: X<Z>
|
expandedType: X<Z>
|
||||||
name: Y
|
name: Y
|
||||||
|
|||||||
Reference in New Issue
Block a user