[FIR] Return symbols instead of FIR from FirPredicateBasedProvider
This commit is contained in:
committed by
TeamCityServer
parent
1cfe4deda9
commit
9a802e7cd7
+4
-3
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.fir.extensions.predicate.hasOrUnder
|
||||
import org.jetbrains.kotlin.fir.extensions.predicateBasedProvider
|
||||
import org.jetbrains.kotlin.fir.extensions.transform
|
||||
import org.jetbrains.kotlin.fir.references.FirNamedReference
|
||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||
import org.jetbrains.kotlin.fir.types.ConeClassLikeType
|
||||
import org.jetbrains.kotlin.fir.types.coneTypeSafe
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
@@ -48,15 +49,15 @@ class AllOpenVisibilityTransformer(session: FirSession) : FirStatusTransformerEx
|
||||
return status.transform(visibility = visibility)
|
||||
}
|
||||
|
||||
private fun findVisibility(declaration: FirDeclaration, owners: List<FirAnnotatedDeclaration>): Visibility? {
|
||||
(declaration as? FirAnnotatedDeclaration)?.visibilityFromAnnotation()?.let { return it }
|
||||
private fun findVisibility(declaration: FirDeclaration, owners: List<FirBasedSymbol<*>>): Visibility? {
|
||||
declaration.symbol.visibilityFromAnnotation()?.let { return it }
|
||||
for (owner in owners) {
|
||||
owner.visibilityFromAnnotation()?.let { return it }
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
private fun FirAnnotatedDeclaration.visibilityFromAnnotation(): Visibility? {
|
||||
private fun FirBasedSymbol<*>.visibilityFromAnnotation(): Visibility? {
|
||||
val annotation = annotations.firstOrNull {
|
||||
it.annotationTypeRef.coneTypeSafe<ConeClassLikeType>()?.lookupTag?.classId == AllPublicClassId
|
||||
} as? FirAnnotationCall ?: return null
|
||||
|
||||
+1
-1
@@ -55,7 +55,7 @@ class AllOpenClassGenerator(session: FirSession) : FirDeclarationGenerationExten
|
||||
|
||||
private val predicateBasedProvider = session.predicateBasedProvider
|
||||
private val matchedClasses by lazy {
|
||||
predicateBasedProvider.getSymbolsByPredicate(PREDICATE).map { it.symbol }.filterIsInstance<FirRegularClassSymbol>()
|
||||
predicateBasedProvider.getSymbolsByPredicate(PREDICATE).filterIsInstance<FirRegularClassSymbol>()
|
||||
}
|
||||
private val classIdsForMatchedClasses: Map<ClassId, FirRegularClassSymbol> by lazy {
|
||||
matchedClasses.associateBy {
|
||||
|
||||
+1
-1
@@ -42,7 +42,7 @@ class AllOpenMembersGenerator(session: FirSession) : FirDeclarationGenerationExt
|
||||
|
||||
private val predicateBasedProvider = session.predicateBasedProvider
|
||||
private val matchedClasses by lazy {
|
||||
predicateBasedProvider.getSymbolsByPredicate(PREDICATE).map { it.symbol }.filterIsInstance<FirRegularClassSymbol>()
|
||||
predicateBasedProvider.getSymbolsByPredicate(PREDICATE).filterIsInstance<FirRegularClassSymbol>()
|
||||
}
|
||||
|
||||
override fun generateFunctions(callableId: CallableId, owner: FirClassSymbol<*>?): List<FirNamedFunctionSymbol> {
|
||||
|
||||
+1
-1
@@ -38,7 +38,7 @@ class AllOpenTopLevelDeclarationsGenerator(session: FirSession) : FirDeclaration
|
||||
|
||||
private val predicateBasedProvider = session.predicateBasedProvider
|
||||
private val matchedClasses by lazy {
|
||||
predicateBasedProvider.getSymbolsByPredicate(PREDICATE).map { it.symbol }.filterIsInstance<FirRegularClassSymbol>()
|
||||
predicateBasedProvider.getSymbolsByPredicate(PREDICATE).filterIsInstance<FirRegularClassSymbol>()
|
||||
}
|
||||
|
||||
override fun generateFunctions(callableId: CallableId, owner: FirClassSymbol<*>?): List<FirNamedFunctionSymbol> {
|
||||
|
||||
Reference in New Issue
Block a user