[FIR] Change predicate providing API for FIR extensions

Predicate declaration was split into two parts:
- registering any number of predicates which are used in specific extension
- special checks for declaration applicability for each specific extension
This commit is contained in:
Dmitriy Novozhilov
2021-10-04 15:44:59 +03:00
committed by TeamCityServer
parent 20e35167c8
commit 6a14d91dbd
16 changed files with 125 additions and 32 deletions
@@ -34,9 +34,14 @@ abstract class FirExtension(val session: FirSession) {
}
abstract class FirPredicateBasedExtension(session: FirSession) : FirExtension(session) {
abstract val predicate: DeclarationPredicate
abstract fun FirDeclarationPredicateRegistrar.registerPredicates()
}
data class FirExtensionPointName(val name: Name) {
constructor(name: String) : this(Name.identifier(name))
}
abstract class FirDeclarationPredicateRegistrar {
abstract fun register(vararg predicates: DeclarationPredicate)
abstract fun register(predicates: Collection<DeclarationPredicate>)
}