mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-02-04 23:39:07 +07:00
[kotlin] Remove usages of deprecated 'KaSymbolWithVisibility'
^KT-68882 GitOrigin-RevId: ccbe4cef84dc721bf118baec8e06c93a10c5e879
This commit is contained in:
committed by
intellij-monorepo-bot
parent
b14d821380
commit
9725f7322e
@@ -10,7 +10,6 @@ import org.jetbrains.kotlin.analysis.api.resolution.*
|
||||
import org.jetbrains.kotlin.analysis.api.signatures.KaFunctionSignature
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.*
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KaAnnotatedSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KaSymbolWithVisibility
|
||||
import org.jetbrains.kotlin.analysis.api.types.KaType
|
||||
import org.jetbrains.kotlin.analysis.api.types.KaTypeNullability
|
||||
import org.jetbrains.kotlin.builtins.StandardNames
|
||||
@@ -92,7 +91,7 @@ fun filterCandidateByReceiverTypeAndVisibility(
|
||||
if (candidateReceiverType != null && receiverTypes.none { it.isSubTypeOf(candidateReceiverType, subtypingErrorTypePolicy) }) return false
|
||||
|
||||
// Filter out candidates not visible from call site
|
||||
if (candidateSymbol is KaSymbolWithVisibility && !isVisible(candidateSymbol, fileSymbol, explicitReceiver, callElement)) return false
|
||||
if (!isVisible(candidateSymbol, fileSymbol, explicitReceiver, callElement)) return false
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
@@ -4,9 +4,9 @@ package org.jetbrains.kotlin.idea.base.fir.codeInsight.tooling
|
||||
import org.jetbrains.kotlin.analysis.api.KaSession
|
||||
import org.jetbrains.kotlin.analysis.api.analyze
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KaClassSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KaDeclarationSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KaSymbolVisibility
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KaAnnotatedSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KaSymbolWithVisibility
|
||||
import org.jetbrains.kotlin.idea.base.codeInsight.KotlinTestAvailabilityChecker
|
||||
import org.jetbrains.kotlin.idea.base.codeInsight.tooling.AbstractGenericTestIconProvider
|
||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||
@@ -30,7 +30,7 @@ internal object SymbolBasedGenericTestIconProvider : AbstractGenericTestIconProv
|
||||
private fun isTestDeclaration(symbol: KaAnnotatedSymbol): Boolean {
|
||||
return when {
|
||||
isIgnored(symbol) -> false
|
||||
(symbol as? KaSymbolWithVisibility)?.visibility != KaSymbolVisibility.PUBLIC -> false
|
||||
(symbol as? KaDeclarationSymbol)?.visibility != KaSymbolVisibility.PUBLIC -> false
|
||||
KotlinTestAvailabilityChecker.TEST_FQ_NAME in symbol.annotations -> true
|
||||
symbol is KaClassSymbol -> symbol.declaredMemberScope.callables.any { isTestDeclaration(it) }
|
||||
else -> false
|
||||
|
||||
@@ -13,9 +13,6 @@ import org.jetbrains.kotlin.analysis.api.symbols.KaNamedClassSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KaSymbolModality
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KaSymbolVisibility
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KaNamedSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KaSymbolWithVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.idea.base.analysis.api.utils.getSymbolContainingMemberDeclarations
|
||||
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
import org.jetbrains.kotlin.idea.codeinsight.api.applicable.intentions.KotlinPsiUpdateModCommandAction
|
||||
@@ -102,7 +99,7 @@ private fun retainNonOverridableMembers(
|
||||
|
||||
private val KaCallableSymbol.isOverridable: Boolean
|
||||
get() = modality != KaSymbolModality.FINAL &&
|
||||
(this as? KaSymbolWithVisibility)?.visibility != KaSymbolVisibility.PRIVATE &&
|
||||
visibility != KaSymbolVisibility.PRIVATE &&
|
||||
(this.getSymbolContainingMemberDeclarations() as? KaNamedClassSymbol)?.isFinalClass != true
|
||||
|
||||
private val KaNamedClassSymbol.isFinalClass: Boolean
|
||||
|
||||
@@ -11,7 +11,6 @@ import org.jetbrains.kotlin.analysis.api.KaSession
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KaDeclarationSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KaFileSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KaSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KaSymbolWithVisibility
|
||||
import org.jetbrains.kotlin.idea.base.analysis.api.utils.KtSymbolFromIndexProvider
|
||||
import org.jetbrains.kotlin.idea.util.positionContext.KDocLinkNamePositionContext
|
||||
import org.jetbrains.kotlin.idea.util.positionContext.KotlinNameReferencePositionContext
|
||||
@@ -35,7 +34,7 @@ internal abstract class ImportCandidatesProvider(
|
||||
context(KaSession)
|
||||
@OptIn(KaExperimentalApi::class)
|
||||
protected fun KaSymbol.isVisible(fileSymbol: KaFileSymbol): Boolean =
|
||||
this is KaSymbolWithVisibility && isVisible(this, fileSymbol, receiverExpression = null, positionContext.position)
|
||||
this is KaDeclarationSymbol && isVisible(this, fileSymbol, receiverExpression = null, positionContext.position)
|
||||
|
||||
protected fun PsiMember.canBeImported(): Boolean {
|
||||
return when (this) {
|
||||
|
||||
@@ -12,11 +12,6 @@ import org.jetbrains.kotlin.analysis.api.scopes.KaScope
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KaClassSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KaFunctionSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KaSymbolVisibility
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KaSymbolWithVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities.Private
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities.Protected
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities.Public
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
import org.jetbrains.kotlin.idea.codeinsight.api.classic.inspections.AbstractKotlinInspection
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
@@ -71,8 +66,7 @@ private fun KtObjectDeclaration.doesImplementReadResolve(): Boolean = analyze(th
|
||||
fun KaScope.isAnyReadResolve(vararg visibilities: KaSymbolVisibility): Boolean =
|
||||
callables { it.asString() == JAVA_IO_SERIALIZATION_READ_RESOLVE }.any {
|
||||
val functionLikeSymbol = it as? KaFunctionSymbol ?: return@any false
|
||||
val visibility = (it as? KaSymbolWithVisibility)?.visibility
|
||||
visibility in visibilities && functionLikeSymbol.valueParameters.isEmpty() && it.returnType.isAny
|
||||
it.visibility in visibilities && functionLikeSymbol.valueParameters.isEmpty() && it.returnType.isAny
|
||||
}
|
||||
classSymbol.declaredMemberScope.isAnyReadResolve(KaSymbolVisibility.PUBLIC, KaSymbolVisibility.PRIVATE, KaSymbolVisibility.PROTECTED) ||
|
||||
classSymbol.memberScope.isAnyReadResolve(KaSymbolVisibility.PUBLIC, KaSymbolVisibility.PROTECTED)
|
||||
|
||||
@@ -9,7 +9,6 @@ import com.intellij.openapi.util.TextRange
|
||||
import org.jetbrains.kotlin.analysis.api.KaExperimentalApi
|
||||
import org.jetbrains.kotlin.analysis.api.KaSession
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KaCallableSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KaSymbolWithVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.idea.base.codeInsight.handlers.fixers.range
|
||||
import org.jetbrains.kotlin.idea.base.psi.relativeTo
|
||||
@@ -101,7 +100,7 @@ sealed class ChangeVisibilityModifierIntention(
|
||||
val callableDescriptor = symbol as? KaCallableSymbol ?: return null
|
||||
// cannot make visibility less than (or non-comparable with) any of the supers
|
||||
if (callableDescriptor.allOverriddenSymbols
|
||||
.map { (it as? KaSymbolWithVisibility)?.compilerVisibility?.compareTo(targetVisibility) }
|
||||
.map { it.compilerVisibility?.compareTo(targetVisibility) }
|
||||
.any { it == null || it > 0 }
|
||||
) return null
|
||||
}
|
||||
|
||||
@@ -6,7 +6,6 @@ import com.intellij.modcommand.ModPsiUpdater
|
||||
import com.intellij.openapi.util.TextRange
|
||||
import org.jetbrains.kotlin.analysis.api.KaExperimentalApi
|
||||
import org.jetbrains.kotlin.analysis.api.KaSession
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KaSymbolWithVisibility
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.receiverType
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.typeParameters
|
||||
import org.jetbrains.kotlin.analysis.api.types.KaErrorType
|
||||
@@ -80,8 +79,7 @@ internal class RemoveExplicitTypeIntention :
|
||||
if (declaration is KtFunction && declaration.isLocal) return false
|
||||
if (declaration is KtProperty && declaration.isLocal) return false
|
||||
|
||||
val symbolWithVisibility = declaration.symbol as? KaSymbolWithVisibility ?: return false
|
||||
return isPublicApi(symbolWithVisibility)
|
||||
return isPublicApi(declaration.symbol)
|
||||
}
|
||||
|
||||
context(KaSession)
|
||||
|
||||
@@ -39,7 +39,6 @@ import org.jetbrains.kotlin.analysis.api.renderer.types.KaTypeRenderer
|
||||
import org.jetbrains.kotlin.analysis.api.renderer.types.renderers.*
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.*
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KaNamedSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KaSymbolWithVisibility
|
||||
import org.jetbrains.kotlin.analysis.api.types.*
|
||||
import org.jetbrains.kotlin.analysis.utils.printer.PrettyPrinter
|
||||
import org.jetbrains.kotlin.analysis.utils.printer.prettyPrint
|
||||
@@ -455,7 +454,7 @@ internal class KotlinIdeDeclarationRenderer(
|
||||
}
|
||||
},
|
||||
{
|
||||
if (callableSymbol is KaSymbolWithVisibility && callableSymbol.visibility == KaSymbolVisibility.LOCAL) {
|
||||
if (callableSymbol.visibility == KaSymbolVisibility.LOCAL) {
|
||||
printer.append(highlight("local") { asKeyword })
|
||||
}
|
||||
},
|
||||
|
||||
@@ -13,9 +13,9 @@ import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.annotations.TestOnly
|
||||
import org.jetbrains.kotlin.analysis.api.KaSession
|
||||
import org.jetbrains.kotlin.analysis.api.analyze
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KaDeclarationSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KaSymbolVisibility
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KaSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KaSymbolWithVisibility
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KaSymbolPointer
|
||||
import org.jetbrains.kotlin.idea.projectView.getStructureDeclarations
|
||||
import org.jetbrains.kotlin.idea.structureView.AbstractKotlinStructureViewElement
|
||||
@@ -138,7 +138,7 @@ class KotlinFirStructureViewElement(
|
||||
}
|
||||
|
||||
class Visibility(symbol: KaSymbol?) {
|
||||
private val visibility: KaSymbolVisibility? = (symbol as? KaSymbolWithVisibility)?.visibility
|
||||
private val visibility: KaSymbolVisibility? = (symbol as? KaDeclarationSymbol)?.visibility
|
||||
|
||||
val isPublic: Boolean
|
||||
get() = visibility == KaSymbolVisibility.PUBLIC
|
||||
|
||||
@@ -10,9 +10,6 @@ import com.intellij.ui.RowIcon
|
||||
import com.intellij.util.PlatformIcons
|
||||
import org.jetbrains.kotlin.analysis.api.KaSession
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.*
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KaSymbolWithVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.psi.KtClass
|
||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||
import javax.swing.Icon
|
||||
@@ -101,7 +98,7 @@ object KtIconProvider {
|
||||
}
|
||||
|
||||
context(KaSession)
|
||||
private fun getVisibilityIcon(symbol: KaSymbol): Icon? = when ((symbol as? KaSymbolWithVisibility)?.visibility) {
|
||||
private fun getVisibilityIcon(symbol: KaSymbol): Icon? = when ((symbol as? KaDeclarationSymbol)?.visibility) {
|
||||
KaSymbolVisibility.PUBLIC -> PlatformIcons.PUBLIC_ICON
|
||||
KaSymbolVisibility.PROTECTED,
|
||||
KaSymbolVisibility.PACKAGE_PROTECTED,
|
||||
|
||||
@@ -5,7 +5,6 @@ import org.jetbrains.kotlin.analysis.api.KaExperimentalApi
|
||||
import org.jetbrains.kotlin.analysis.api.KaSession
|
||||
import org.jetbrains.kotlin.analysis.api.analyze
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.*
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KaSymbolWithVisibility
|
||||
import org.jetbrains.kotlin.config.AnalysisFlags
|
||||
import org.jetbrains.kotlin.config.ExplicitApiMode
|
||||
import org.jetbrains.kotlin.config.LanguageFeature
|
||||
@@ -45,7 +44,7 @@ fun KtModifierKeywordToken.toVisibility(): Visibility = when (this) {
|
||||
* Do we need something like @PublicApiFile to disable (or invert) this inspection per-file?
|
||||
*/
|
||||
context(KaSession)
|
||||
private fun explicitVisibilityRequired(symbol: KaSymbolWithVisibility): Boolean {
|
||||
private fun explicitVisibilityRequired(symbol: KaDeclarationSymbol): Boolean {
|
||||
if ((symbol as? KaConstructorSymbol)?.isPrimary == true) return false // 1
|
||||
if (symbol is KaPropertySymbol && (symbol.containingDeclaration as? KaNamedClassSymbol)?.isData == true) return false // 2
|
||||
if ((symbol as? KaCallableSymbol)?.allOverriddenSymbols?.any() == true) return false // 3
|
||||
@@ -103,7 +102,7 @@ fun KtDeclaration.implicitVisibility(): KtModifierKeywordToken? {
|
||||
analyze(this) {
|
||||
(symbol as KaCallableSymbol)
|
||||
.allOverriddenSymbols
|
||||
.mapNotNull { (it as? KaSymbolWithVisibility)?.compilerVisibility }
|
||||
.map { it.compilerVisibility }
|
||||
.maxWithOrNull { v1, v2 -> Visibilities.compare(v1, v2) ?: -1 }
|
||||
?.toKeywordToken()
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import org.jetbrains.kotlin.analysis.api.KaSession
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KaCallableSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KaClassLikeSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KaClassifierSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KaSymbolWithVisibility
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KaDeclarationSymbol
|
||||
import org.jetbrains.kotlin.idea.base.utils.fqname.isJavaClassNotToBeUsedInKotlin
|
||||
import org.jetbrains.kotlin.idea.completion.context.FirBasicCompletionContext
|
||||
import org.jetbrains.kotlin.idea.util.positionContext.KDocNameReferencePositionContext
|
||||
@@ -18,16 +18,16 @@ import org.jetbrains.kotlin.resolve.deprecation.DeprecationLevelValue
|
||||
|
||||
internal fun interface CompletionVisibilityChecker {
|
||||
context(KaSession)
|
||||
fun isVisible(symbol: KaSymbolWithVisibility): Boolean
|
||||
fun isVisible(symbol: KaDeclarationSymbol): Boolean
|
||||
|
||||
context(KaSession)
|
||||
fun isVisible(symbol: KaCallableSymbol): Boolean {
|
||||
return symbol !is KaSymbolWithVisibility || isVisible(symbol as KaSymbolWithVisibility)
|
||||
return isVisible(symbol as KaDeclarationSymbol)
|
||||
}
|
||||
|
||||
context(KaSession)
|
||||
fun isVisible(symbol: KaClassifierSymbol): Boolean {
|
||||
return symbol !is KaSymbolWithVisibility || isVisible(symbol as KaSymbolWithVisibility)
|
||||
return isVisible(symbol as KaDeclarationSymbol)
|
||||
}
|
||||
|
||||
companion object {
|
||||
@@ -37,7 +37,7 @@ internal fun interface CompletionVisibilityChecker {
|
||||
positionContext: KotlinRawPositionContext
|
||||
): CompletionVisibilityChecker = object : CompletionVisibilityChecker {
|
||||
context(KaSession)
|
||||
override fun isVisible(symbol: KaSymbolWithVisibility): Boolean {
|
||||
override fun isVisible(symbol: KaDeclarationSymbol): Boolean {
|
||||
if (positionContext is KDocNameReferencePositionContext) return true
|
||||
|
||||
// Don't offer any deprecated items that could lead to compile errors.
|
||||
|
||||
@@ -4,7 +4,6 @@ package org.jetbrains.kotlin.idea.completion.contributors.helpers
|
||||
|
||||
import org.jetbrains.kotlin.analysis.api.KaSession
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KaClassifierSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KaSymbolWithVisibility
|
||||
import org.jetbrains.kotlin.idea.base.analysis.api.utils.KtSymbolFromIndexProvider
|
||||
import org.jetbrains.kotlin.idea.completion.checkers.CompletionVisibilityChecker
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
@@ -39,6 +38,6 @@ internal object FirClassifierProvider {
|
||||
)
|
||||
val javaDeclarations = symbolProvider.getJavaClassesByNameFilter(scopeNameFilter)
|
||||
return (kotlinDeclarations + javaDeclarations)
|
||||
.filter { visibilityChecker.isVisible(it as KaSymbolWithVisibility) }
|
||||
.filter { visibilityChecker.isVisible(it) }
|
||||
}
|
||||
}
|
||||
@@ -21,7 +21,6 @@ import org.jetbrains.kotlin.analysis.api.KaSession
|
||||
import org.jetbrains.kotlin.analysis.api.resolution.singleFunctionCallOrNull
|
||||
import org.jetbrains.kotlin.analysis.api.resolution.symbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.*
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KaSymbolWithVisibility
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.isPrivateOrPrivateToThis
|
||||
import org.jetbrains.kotlin.asJava.LightClassUtil
|
||||
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
||||
@@ -126,7 +125,7 @@ object KotlinUnusedSymbolUtil {
|
||||
fun getPsiToReportProblem(declaration: KtNamedDeclaration, isJavaEntryPointInspection: UnusedDeclarationInspectionBase): PsiElement? {
|
||||
val symbol = declaration.symbol
|
||||
if (declaration.languageVersionSettings.getFlag(
|
||||
AnalysisFlags.explicitApiMode) != ExplicitApiMode.DISABLED && (symbol as? KaSymbolWithVisibility)?.compilerVisibility?.isPublicAPI == true) {
|
||||
AnalysisFlags.explicitApiMode) != ExplicitApiMode.DISABLED && symbol.compilerVisibility.isPublicAPI) {
|
||||
return null
|
||||
}
|
||||
if (symbol is KaNamedFunctionSymbol && symbol.isOperator) return null
|
||||
|
||||
@@ -13,7 +13,6 @@ import org.jetbrains.kotlin.analysis.api.analyze
|
||||
import org.jetbrains.kotlin.analysis.api.base.KaContextReceiver
|
||||
import org.jetbrains.kotlin.analysis.api.scopes.KaScope
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.*
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KaSymbolWithVisibility
|
||||
import org.jetbrains.kotlin.analysis.api.types.KaFunctionType
|
||||
import org.jetbrains.kotlin.analysis.api.types.KaType
|
||||
import org.jetbrains.kotlin.asJava.accessorNameByPropertyName
|
||||
@@ -56,7 +55,7 @@ fun KaScope.findSiblingsByName(
|
||||
}
|
||||
val callables = callables(newName).filter { callable ->
|
||||
symbol != callable &&
|
||||
((callable as? KaSymbolWithVisibility)?.visibility != KaSymbolVisibility.PRIVATE || callable.containingDeclaration == containingSymbol)
|
||||
(callable.visibility != KaSymbolVisibility.PRIVATE || callable.containingDeclaration == containingSymbol)
|
||||
}
|
||||
|
||||
val classifierSymbols = classifiers(newName)
|
||||
@@ -140,7 +139,7 @@ fun checkDeclarationNewNameConflicts(
|
||||
}
|
||||
|
||||
is KaPackageSymbol -> {
|
||||
fun KaDeclarationSymbol.isTopLevelPrivate(): Boolean = (this as? KaSymbolWithVisibility)?.visibility == KaSymbolVisibility.PRIVATE && this.location == KaSymbolLocation.TOP_LEVEL
|
||||
fun KaDeclarationSymbol.isTopLevelPrivate(): Boolean = this.visibility == KaSymbolVisibility.PRIVATE && this.location == KaSymbolLocation.TOP_LEVEL
|
||||
|
||||
fun isInSameFile(s1: KaDeclarationSymbol, s2: KaDeclarationSymbol): Boolean = s1.psi?.containingFile == s2.psi?.containingFile
|
||||
|
||||
|
||||
@@ -9,7 +9,6 @@ import org.jetbrains.kotlin.analysis.api.KaExperimentalApi
|
||||
import org.jetbrains.kotlin.analysis.api.analyze
|
||||
import org.jetbrains.kotlin.analysis.api.permissions.KaAllowAnalysisOnEdt
|
||||
import org.jetbrains.kotlin.analysis.api.permissions.allowAnalysisOnEdt
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KaSymbolWithVisibility
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.idea.base.codeInsight.KotlinDeclarationNameValidator
|
||||
@@ -116,7 +115,7 @@ class KotlinMethodDescriptor(c: KtNamedDeclaration) : KotlinModifiableMethodDesc
|
||||
@OptIn(KaAllowAnalysisOnEdt::class, KaExperimentalApi::class)
|
||||
private val _visibility = allowAnalysisOnEdt {
|
||||
analyze(callable) {
|
||||
(callable.symbol as? KaSymbolWithVisibility)?.compilerVisibility ?: Visibilities.Public
|
||||
callable.symbol.compilerVisibility
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,6 @@ import org.jetbrains.kotlin.analysis.api.analyze
|
||||
import org.jetbrains.kotlin.analysis.api.renderer.declarations.impl.KaDeclarationRendererForSource
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KaAnonymousObjectSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KaClassSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KaSymbolWithVisibility
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.typeParameters
|
||||
import org.jetbrains.kotlin.analysis.api.types.KaDefinitelyNotNullType
|
||||
import org.jetbrains.kotlin.analysis.api.types.KaErrorType
|
||||
@@ -153,12 +152,11 @@ fun isResolvableInScope(typeToCheck: KaType, scope: PsiElement, typeParameters:
|
||||
return false
|
||||
}
|
||||
|
||||
if (classSymbol is KaSymbolWithVisibility) {
|
||||
val fileSymbol = (scope.containingFile as KtFile).symbol
|
||||
if (!isVisible(classSymbol, fileSymbol, null, scope)) {
|
||||
return false
|
||||
}
|
||||
val fileSymbol = (scope.containingFile as KtFile).symbol
|
||||
if (!isVisible(classSymbol, fileSymbol, null, scope)) {
|
||||
return false
|
||||
}
|
||||
|
||||
typeToCheck.typeArguments.mapNotNull { it.type }.forEach {
|
||||
if (!isResolvableInScope(it, scope, typeParameters)) return false
|
||||
}
|
||||
|
||||
@@ -23,7 +23,6 @@ import org.jetbrains.kotlin.analysis.api.analyze
|
||||
import org.jetbrains.kotlin.analysis.api.analyzeCopy
|
||||
import org.jetbrains.kotlin.analysis.api.projectStructure.KaDanglingFileResolutionMode
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KaSymbolVisibility
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KaSymbolWithVisibility
|
||||
import org.jetbrains.kotlin.asJava.toLightElements
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
@@ -200,7 +199,6 @@ context(KaSession)
|
||||
private fun KtNamedDeclaration.isVisibleTo(usage: PsiElement): Boolean {
|
||||
val file = (usage.containingFile as? KtFile)?.symbol ?: return false
|
||||
val symbol = symbol
|
||||
if (symbol !is KaSymbolWithVisibility) return false
|
||||
return isVisible(symbol, file, position = usage)
|
||||
}
|
||||
|
||||
@@ -267,7 +265,6 @@ private fun checkVisibilityConflictForNonMovedUsages(
|
||||
fun KtNamedDeclaration.isMemberThatCanBeSkipped(): Boolean {
|
||||
if (containingClass() == null) return false
|
||||
analyze(this) {
|
||||
val symbol = symbol as? KaSymbolWithVisibility ?: return false
|
||||
val visibility = symbol.visibility
|
||||
if (visibility == KaSymbolVisibility.PUBLIC || visibility == KaSymbolVisibility.PROTECTED) return true
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user