[Analysis API FIR] add check for public api
This commit is contained in:
committed by
Space Team
parent
34d695cc72
commit
29502ba126
+11
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user