Added a public function that allows to get the actual annotation target list
The logic to get the actual target is required on the IDE side, see KTIJ-26302
This commit is contained in:
committed by
Space Team
parent
42ebbb937c
commit
67d8346f5c
+8
@@ -10,6 +10,9 @@ import org.jetbrains.kotlin.analysis.api.symbols.*
|
|||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure.llFirModuleData
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure.llFirModuleData
|
||||||
import org.jetbrains.kotlin.analysis.project.structure.KtModule
|
import org.jetbrains.kotlin.analysis.project.structure.KtModule
|
||||||
|
import org.jetbrains.kotlin.descriptors.annotations.KotlinTarget
|
||||||
|
import org.jetbrains.kotlin.fir.FirAnnotationContainer
|
||||||
|
import org.jetbrains.kotlin.fir.analysis.checkers.getActualTargetList
|
||||||
import org.jetbrains.kotlin.fir.dispatchReceiverClassLookupTagOrNull
|
import org.jetbrains.kotlin.fir.dispatchReceiverClassLookupTagOrNull
|
||||||
import org.jetbrains.kotlin.fir.resolve.toFirRegularClassSymbol
|
import org.jetbrains.kotlin.fir.resolve.toFirRegularClassSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||||
@@ -49,3 +52,8 @@ fun KtSymbol.getContainingKtModule(firResolveSession: LLFirResolveSession): KtMo
|
|||||||
is KtReceiverParameterSymbol -> owningCallableSymbol.getContainingKtModule(firResolveSession)
|
is KtReceiverParameterSymbol -> owningCallableSymbol.getContainingKtModule(firResolveSession)
|
||||||
else -> TODO("${this::class}")
|
else -> TODO("${this::class}")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun KtSymbol.getActualAnnotationTargets(): List<KotlinTarget>? {
|
||||||
|
val firSymbol = this.firSymbol.fir as? FirAnnotationContainer ?: return null
|
||||||
|
return getActualTargetList(firSymbol).defaultTargets
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user