[Analysis API FIR] add check for public api

This commit is contained in:
aleksandrina-streltsova
2022-10-07 11:22:24 +03:00
committed by Space Team
parent 34d695cc72
commit 29502ba126
3 changed files with 32 additions and 0 deletions
@@ -18,6 +18,8 @@ public abstract class KtVisibilityChecker : KtAnalysisSessionComponent() {
position: PsiElement,
receiverExpression: KtExpression?
): Boolean
public abstract fun isPublicApi(symbol: KtSymbolWithVisibility): Boolean
}
public interface KtVisibilityCheckerMixIn : KtAnalysisSessionMixIn {
@@ -29,4 +31,13 @@ public interface KtVisibilityCheckerMixIn : KtAnalysisSessionMixIn {
): Boolean = withValidityAssertion {
analysisSession.visibilityChecker.isVisible(candidateSymbol, useSiteFile, position, receiverExpression)
}
/**
* Returns true for effectively public symbols, including internal declarations with @PublishedApi annotation.
* In 'Explicit API' mode explicit visibility modifier and explicit return types are required for such symbols.
* See FirExplicitApiDeclarationChecker.kt
*/
public fun isPublicApi(symbol: KtSymbolWithVisibility): Boolean = withValidityAssertion {
analysisSession.visibilityChecker.isPublicApi(symbol)
}
}