[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
@@ -23,7 +23,9 @@ import org.jetbrains.kotlin.psi.KtExpression
import org.jetbrains.kotlin.psi.KtPsiUtil
import org.jetbrains.kotlin.psi.psiUtil.parentsWithSelf
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.descriptorUtil.isEffectivelyPublicApi
import org.jetbrains.kotlin.resolve.descriptorUtil.isExtension
import org.jetbrains.kotlin.resolve.descriptorUtil.isPublishedApi
import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver
import org.jetbrains.kotlin.resolve.scopes.utils.getImplicitReceiversHierarchy
@@ -72,6 +74,11 @@ internal class KtFe10VisibilityChecker(
return false
}
override fun isPublicApi(symbol: KtSymbolWithVisibility): Boolean {
val descriptor = getSymbolDescriptor(symbol) as? DeclarationDescriptorWithVisibility ?: return false
return descriptor.isEffectivelyPublicApi || descriptor.isPublishedApi()
}
}
private fun findContainingNonLocalDeclaration(element: PsiElement): KtCallableDeclaration? {