Rename Visibility to DescriptorVisibility

This commit is contained in:
Dmitriy Novozhilov
2020-09-01 16:06:06 +03:00
parent 2bcd8ee07f
commit d1fd1da56f
379 changed files with 2240 additions and 2250 deletions
@@ -487,9 +487,9 @@ class ControlFlowInformationProvider private constructor(
val receiverValue = expression.getResolvedCall(trace.bindingContext)?.getDispatchReceiverWithSmartCast()
if (Visibilities.isVisible(receiverValue, variableDescriptor, descriptor)
if (DescriptorVisibilities.isVisible(receiverValue, variableDescriptor, descriptor)
&& setterDescriptor != null
&& !Visibilities.isVisible(receiverValue, setterDescriptor, descriptor)
&& !DescriptorVisibilities.isVisible(receiverValue, setterDescriptor, descriptor)
) {
report(
Errors.INVISIBLE_SETTER.on(
@@ -1315,4 +1315,4 @@ fun ParameterDescriptor.index(): Int =
is ReceiverParameterDescriptor -> -1
is ValueParameterDescriptor -> index
else -> error("expected either receiver or value parameter, but got: $this")
}
}
@@ -42,7 +42,7 @@ sealed class LocalVariableAccessorDescriptor(
val returnType =
if (isGetter) correspondingVariable.type else correspondingVariable.builtIns.unitType
@Suppress("LeakingThis")
initialize(null, null, emptyList(), valueParameters, returnType, Modality.FINAL, Visibilities.LOCAL)
initialize(null, null, emptyList(), valueParameters, returnType, Modality.FINAL, DescriptorVisibilities.LOCAL)
}
private fun createValueParameter(name: Name, type: KotlinType): ValueParameterDescriptorImpl {
@@ -92,8 +92,8 @@ public class LocalVariableDescriptor extends VariableDescriptorWithInitializerIm
@NotNull
@Override
public Visibility getVisibility() {
return Visibilities.LOCAL;
public DescriptorVisibility getVisibility() {
return DescriptorVisibilities.LOCAL;
}
@Nullable
@@ -123,9 +123,9 @@ public interface Errors {
//Elements with "INVISIBLE_REFERENCE" error are marked as unresolved, unlike elements with "INVISIBLE_MEMBER" error
//"INVISIBLE_REFERENCE" is used for invisible classes references and references in import
DiagnosticFactory3<KtSimpleNameExpression, DeclarationDescriptor, Visibility, DeclarationDescriptor> INVISIBLE_REFERENCE =
DiagnosticFactory3<KtSimpleNameExpression, DeclarationDescriptor, DescriptorVisibility, DeclarationDescriptor> INVISIBLE_REFERENCE =
DiagnosticFactory3.create(ERROR);
DiagnosticFactory3<PsiElement, DeclarationDescriptor, Visibility, DeclarationDescriptor> INVISIBLE_MEMBER = DiagnosticFactory3.create(ERROR, CALL_ELEMENT);
DiagnosticFactory3<PsiElement, DeclarationDescriptor, DescriptorVisibility, DeclarationDescriptor> INVISIBLE_MEMBER = DiagnosticFactory3.create(ERROR, CALL_ELEMENT);
DiagnosticFactory1<KtElement, DeclarationDescriptor> DEPRECATED_ACCESS_BY_SHORT_NAME = DiagnosticFactory1.create(WARNING);
DiagnosticFactory1<PsiElement, ConstructorDescriptor> PROTECTED_CONSTRUCTOR_NOT_IN_SUPER_CALL = DiagnosticFactory1.create(ERROR);
@@ -496,9 +496,9 @@ public interface Errors {
DiagnosticFactory2<KtNamedDeclaration, CallableMemberDescriptor, DeclarationDescriptor> OVERRIDING_FINAL_MEMBER =
DiagnosticFactory2.create(ERROR, OVERRIDE_MODIFIER);
DiagnosticFactory3<KtModifierListOwner, Visibility, CallableMemberDescriptor, DeclarationDescriptor> CANNOT_WEAKEN_ACCESS_PRIVILEGE =
DiagnosticFactory3<KtModifierListOwner, DescriptorVisibility, CallableMemberDescriptor, DeclarationDescriptor> CANNOT_WEAKEN_ACCESS_PRIVILEGE =
DiagnosticFactory3.create(ERROR, VISIBILITY_MODIFIER);
DiagnosticFactory3<KtModifierListOwner, Visibility, CallableMemberDescriptor, DeclarationDescriptor> CANNOT_CHANGE_ACCESS_PRIVILEGE =
DiagnosticFactory3<KtModifierListOwner, DescriptorVisibility, CallableMemberDescriptor, DeclarationDescriptor> CANNOT_CHANGE_ACCESS_PRIVILEGE =
DiagnosticFactory3.create(ERROR, VISIBILITY_MODIFIER);
DiagnosticFactory2<KtNamedDeclaration, CallableMemberDescriptor, DeclarationWithDiagnosticComponents> RETURN_TYPE_MISMATCH_ON_OVERRIDE =
DiagnosticFactory2.create(ERROR, DECLARATION_RETURN_TYPE);
@@ -1029,7 +1029,7 @@ public interface Errors {
DiagnosticFactory0<KtTypeParameterList> LOCAL_VARIABLE_WITH_TYPE_PARAMETERS_WARNING = DiagnosticFactory0.create(WARNING);
DiagnosticFactory0<KtTypeParameterList> LOCAL_VARIABLE_WITH_TYPE_PARAMETERS = DiagnosticFactory0.create(ERROR);
DiagnosticFactory3<KtExpression, DeclarationDescriptor, Visibility, DeclarationDescriptor> INVISIBLE_SETTER = DiagnosticFactory3.create(ERROR);
DiagnosticFactory3<KtExpression, DeclarationDescriptor, DescriptorVisibility, DeclarationDescriptor> INVISIBLE_SETTER = DiagnosticFactory3.create(ERROR);
DiagnosticFactory1<PsiElement, KtKeywordToken> VAL_OR_VAR_ON_LOOP_PARAMETER = DiagnosticFactory1.create(ERROR);
DiagnosticFactory1<PsiElement, KtKeywordToken> VAL_OR_VAR_ON_FUN_PARAMETER = DiagnosticFactory1.create(ERROR);
@@ -99,7 +99,7 @@ object Renderers {
}
@JvmField
val VISIBILITY = Renderer<Visibility> {
val VISIBILITY = Renderer<DescriptorVisibility> {
it.externalDisplayName
}
@@ -134,7 +134,7 @@ object Renderers {
@JvmField
val NAME_OF_CONTAINING_DECLARATION_OR_FILE = Renderer<DeclarationDescriptor> {
if (DescriptorUtils.isTopLevelDeclaration(it) && it is DeclarationDescriptorWithVisibility && it.visibility == Visibilities.PRIVATE) {
if (DescriptorUtils.isTopLevelDeclaration(it) && it is DeclarationDescriptorWithVisibility && it.visibility == DescriptorVisibilities.PRIVATE) {
"file"
} else {
val containingDeclaration = it.containingDeclaration
@@ -37,18 +37,18 @@ import org.jetbrains.kotlin.types.checker.KotlinTypeRefiner
* This class has its own synthetic declaration inside.
*/
class SyntheticClassOrObjectDescriptor(
c: LazyClassContext,
parentClassOrObject: KtPureClassOrObject,
containingDeclaration: DeclarationDescriptor,
name: Name,
source: SourceElement,
outerScope: LexicalScope,
private val modality: Modality,
private val visibility: Visibility,
override val annotations: Annotations,
constructorVisibility: Visibility,
private val kind: ClassKind,
private val isCompanionObject: Boolean
c: LazyClassContext,
parentClassOrObject: KtPureClassOrObject,
containingDeclaration: DeclarationDescriptor,
name: Name,
source: SourceElement,
outerScope: LexicalScope,
private val modality: Modality,
private val visibility: DescriptorVisibility,
override val annotations: Annotations,
constructorVisibility: DescriptorVisibility,
private val kind: ClassKind,
private val isCompanionObject: Boolean
) : ClassDescriptorBase(c.storageManager, containingDeclaration, name, source, false), ClassDescriptorWithResolutionScopes {
val syntheticDeclaration: KtPureClassOrObject = SyntheticDeclaration(parentClassOrObject, name.asString())
@@ -116,7 +116,7 @@ class SyntheticClassOrObjectDescriptor(
override fun toString(): String = "synthetic class " + name.toString() + " in " + containingDeclaration
private fun createUnsubstitutedPrimaryConstructor(constructorVisibility: Visibility): ClassConstructorDescriptor {
private fun createUnsubstitutedPrimaryConstructor(constructorVisibility: DescriptorVisibility): ClassConstructorDescriptor {
val constructor = DescriptorFactory.createPrimaryConstructorForObject(thisDescriptor, source)
constructor.visibility = constructorVisibility
constructor.returnType = getDefaultType()
@@ -114,7 +114,7 @@ object DataClassDescriptorResolver {
parameterDescriptors,
classDescriptor.defaultType,
Modality.FINAL,
Visibilities.PUBLIC
DescriptorVisibilities.PUBLIC
)
trace.record(BindingContext.DATA_CLASS_COPY_FUNCTION, classDescriptor, functionDescriptor)
@@ -601,7 +601,7 @@ class DeclarationsChecker(
}
private fun checkPrivateExpectedDeclaration(declaration: KtDeclaration, descriptor: MemberDescriptor) {
if (descriptor.isExpect && Visibilities.isPrivate(descriptor.visibility)) {
if (descriptor.isExpect && DescriptorVisibilities.isPrivate(descriptor.visibility)) {
trace.report(EXPECTED_PRIVATE_DECLARATION.on(declaration.modifierList?.getModifier(KtTokens.PRIVATE_KEYWORD) ?: declaration))
}
}
@@ -884,15 +884,15 @@ class DeclarationsChecker(
}
} else {
if (propertyDescriptor.isOverridable
&& accessorDescriptor.visibility == Visibilities.PRIVATE
&& propertyDescriptor.visibility != Visibilities.PRIVATE) {
&& accessorDescriptor.visibility == DescriptorVisibilities.PRIVATE
&& propertyDescriptor.visibility != DescriptorVisibilities.PRIVATE) {
if (propertyDescriptor.modality == Modality.ABSTRACT) {
reportVisibilityModifierDiagnostics(tokens.values, Errors.PRIVATE_SETTER_FOR_ABSTRACT_PROPERTY)
} else {
reportVisibilityModifierDiagnostics(tokens.values, Errors.PRIVATE_SETTER_FOR_OPEN_PROPERTY)
}
} else {
val compare = Visibilities.compare(accessorDescriptor.visibility, propertyDescriptor.visibility)
val compare = DescriptorVisibilities.compare(accessorDescriptor.visibility, propertyDescriptor.visibility)
if (compare == null || compare > 0) {
reportVisibilityModifierDiagnostics(tokens.values, Errors.SETTER_VISIBILITY_INCONSISTENT_WITH_PROPERTY_VISIBILITY)
}
@@ -78,7 +78,7 @@ class DelegationResolver<T : CallableMemberDescriptor> private constructor(
.setOwner(ownerDescriptor)
.setDispatchReceiverParameter(ownerDescriptor.thisAsReceiverParameter)
.setModality(newModality)
.setVisibility(Visibilities.INHERITED)
.setVisibility(DescriptorVisibilities.INHERITED)
.setKind(DELEGATION)
.setCopyOverrides(false)
.build() as T
@@ -263,29 +263,29 @@ public class DescriptorResolver {
}
}
public static Visibility getDefaultVisibility(KtModifierListOwner modifierListOwner, DeclarationDescriptor containingDescriptor) {
Visibility defaultVisibility;
public static DescriptorVisibility getDefaultVisibility(KtModifierListOwner modifierListOwner, DeclarationDescriptor containingDescriptor) {
DescriptorVisibility defaultVisibility;
if (containingDescriptor instanceof ClassDescriptor) {
KtModifierList modifierList = modifierListOwner.getModifierList();
defaultVisibility = modifierList != null && modifierList.hasModifier(OVERRIDE_KEYWORD)
? Visibilities.INHERITED
: Visibilities.DEFAULT_VISIBILITY;
? DescriptorVisibilities.INHERITED
: DescriptorVisibilities.DEFAULT_VISIBILITY;
}
else if (containingDescriptor instanceof FunctionDescriptor || containingDescriptor instanceof PropertyDescriptor) {
defaultVisibility = Visibilities.LOCAL;
defaultVisibility = DescriptorVisibilities.LOCAL;
}
else {
defaultVisibility = Visibilities.DEFAULT_VISIBILITY;
defaultVisibility = DescriptorVisibilities.DEFAULT_VISIBILITY;
}
return defaultVisibility;
}
public static Modality getDefaultModality(DeclarationDescriptor containingDescriptor, Visibility visibility, boolean isBodyPresent) {
public static Modality getDefaultModality(DeclarationDescriptor containingDescriptor, DescriptorVisibility visibility, boolean isBodyPresent) {
Modality defaultModality;
if (containingDescriptor instanceof ClassDescriptor) {
boolean isTrait = ((ClassDescriptor) containingDescriptor).getKind() == ClassKind.INTERFACE;
boolean isDefinitelyAbstract = isTrait && !isBodyPresent;
Modality basicModality = isTrait && !Visibilities.isPrivate(visibility) ? Modality.OPEN : Modality.FINAL;
Modality basicModality = isTrait && !DescriptorVisibilities.isPrivate(visibility) ? Modality.OPEN : Modality.FINAL;
defaultModality = isDefinitelyAbstract ? Modality.ABSTRACT : basicModality;
}
else {
@@ -720,7 +720,7 @@ public class DescriptorResolver {
}
KtModifierList modifierList = typeAlias.getModifierList();
Visibility visibility = resolveVisibilityFromModifiers(typeAlias, getDefaultVisibility(typeAlias, containingDeclaration));
DescriptorVisibility visibility = resolveVisibilityFromModifiers(typeAlias, getDefaultVisibility(typeAlias, containingDeclaration));
Annotations allAnnotations = annotationResolver.resolveAnnotationsWithArguments(scope, modifierList, trace);
Name name = KtPsiUtil.safeName(typeAlias.getName());
@@ -874,7 +874,7 @@ public class DescriptorResolver {
KtModifierList modifierList = variableDeclaration.getModifierList();
boolean isVar = variableDeclaration.isVar();
Visibility visibility = resolveVisibilityFromModifiers(variableDeclaration, getDefaultVisibility(variableDeclaration, container));
DescriptorVisibility visibility = resolveVisibilityFromModifiers(variableDeclaration, getDefaultVisibility(variableDeclaration, container));
Modality modality = container instanceof ClassDescriptor
? resolveMemberModalityFromModifiers(variableDeclaration,
getDefaultModality(container, visibility, propertyInfo.getHasBody()),
@@ -1032,7 +1032,7 @@ public class DescriptorResolver {
return type;
}
if (!Visibilities.isPrivate(descriptor.getVisibility())) {
if (!DescriptorVisibilities.isPrivate(descriptor.getVisibility())) {
if (type.getConstructor().getSupertypes().size() == 1) {
return type.getConstructor().getSupertypes().iterator().next();
}
@@ -50,7 +50,7 @@ class ExposedVisibilityChecker(private val trace: BindingTrace? = null) {
fun checkDeclarationWithVisibility(
modifierListOwner: KtModifierListOwner,
descriptor: DeclarationDescriptorWithVisibility,
visibility: Visibility
visibility: DescriptorVisibility
): Boolean {
return when {
modifierListOwner is KtFunction &&
@@ -78,7 +78,7 @@ class ExposedVisibilityChecker(private val trace: BindingTrace? = null) {
function: KtFunction,
functionDescriptor: FunctionDescriptor,
// for checking situation with modified basic visibility
visibility: Visibility = functionDescriptor.visibility
visibility: DescriptorVisibility = functionDescriptor.visibility
): Boolean {
val functionVisibility = functionDescriptor.effectiveVisibility(visibility)
var result = true
@@ -116,7 +116,7 @@ class ExposedVisibilityChecker(private val trace: BindingTrace? = null) {
property: KtProperty,
propertyDescriptor: PropertyDescriptor,
// for checking situation with modified basic visibility
visibility: Visibility = propertyDescriptor.visibility
visibility: DescriptorVisibility = propertyDescriptor.visibility
): Boolean {
val propertyVisibility = propertyDescriptor.effectiveVisibility(visibility)
val restricting = propertyDescriptor.type.leastPermissiveDescriptor(propertyVisibility)
@@ -83,7 +83,7 @@ object FunctionsFromAny {
functionFromAny.valueParameters.map { it.copy(functionDescriptor, it.name, it.index) },
functionFromAny.returnType,
Modality.OPEN,
Visibilities.PUBLIC
DescriptorVisibilities.PUBLIC
)
return functionDescriptor
@@ -98,4 +98,4 @@ object FunctionsFromAny {
return declaredFunctions.none(checkParameters) &&
fromSupertypes.none { checkParameters(it) && it.modality == Modality.FINAL }
}
}
}
@@ -75,7 +75,7 @@ object InlineClassDescriptorResolver {
createValueParametersForSpecializedEquals(functionDescriptor, inlinedValue),
owner.builtIns.booleanType,
Modality.FINAL,
Visibilities.PUBLIC
DescriptorVisibilities.PUBLIC
)
return functionDescriptor
@@ -102,7 +102,7 @@ object InlineClassDescriptorResolver {
if (isBoxMethod) listOf(createValueParameterForBoxing(functionDescriptor, inlinedValue)) else emptyList(),
if (isBoxMethod) owner.defaultType else inlinedValue.returnType,
Modality.FINAL,
Visibilities.PUBLIC
DescriptorVisibilities.PUBLIC
)
return functionDescriptor
@@ -141,4 +141,4 @@ object InlineClassDescriptorResolver {
false, false, false, null, SourceElement.NO_SOURCE
)
}
}
}
@@ -167,7 +167,7 @@ class LocalVariableResolver(
containingDeclaration,
annotationResolver.resolveAnnotationsWithArguments(scope, variable.modifierList, trace),
Modality.FINAL,
Visibilities.INTERNAL,
DescriptorVisibilities.INTERNAL,
variable.isVar,
KtPsiUtil.safeName(variable.name),
CallableMemberDescriptor.Kind.DECLARATION,
@@ -207,7 +207,7 @@ class LocalVariableResolver(
private fun initializeWithDefaultGetterSetter(propertyDescriptor: PropertyDescriptorImpl) {
var getter = propertyDescriptor.getter
if (getter == null && !Visibilities.isPrivate(propertyDescriptor.visibility)) {
if (getter == null && !DescriptorVisibilities.isPrivate(propertyDescriptor.visibility)) {
getter = DescriptorFactory.createDefaultGetter(propertyDescriptor, Annotations.EMPTY)
getter.initialize(propertyDescriptor.type)
}
@@ -32,7 +32,7 @@ class MissingSupertypesResolver(
* Type parameters are skipped here in favor to explicit checks for bounds, local declarations are ignored for optimization
*/
if (supertypeDeclaration !is ClassDescriptor || supertypeDeclaration.isExpect) continue
if (supertypeDeclaration.visibility == Visibilities.LOCAL) continue
if (supertypeDeclaration.visibility == DescriptorVisibilities.LOCAL) continue
val superTypeClassId = supertypeDeclaration.classId ?: continue
val dependency = moduleDescriptor.findClassAcrossModuleDependencies(superTypeClassId)
@@ -134,19 +134,19 @@ public class ModifiersChecker {
}
@NotNull
public static Visibility resolveVisibilityFromModifiers(
public static DescriptorVisibility resolveVisibilityFromModifiers(
@NotNull KtModifierListOwner modifierListOwner,
@NotNull Visibility defaultVisibility
@NotNull DescriptorVisibility defaultVisibility
) {
return resolveVisibilityFromModifiers(modifierListOwner.getModifierList(), defaultVisibility);
}
public static Visibility resolveVisibilityFromModifiers(@Nullable KtModifierList modifierList, @NotNull Visibility defaultVisibility) {
public static DescriptorVisibility resolveVisibilityFromModifiers(@Nullable KtModifierList modifierList, @NotNull DescriptorVisibility defaultVisibility) {
if (modifierList == null) return defaultVisibility;
if (modifierList.hasModifier(PRIVATE_KEYWORD)) return Visibilities.PRIVATE;
if (modifierList.hasModifier(PUBLIC_KEYWORD)) return Visibilities.PUBLIC;
if (modifierList.hasModifier(PROTECTED_KEYWORD)) return Visibilities.PROTECTED;
if (modifierList.hasModifier(INTERNAL_KEYWORD)) return Visibilities.INTERNAL;
if (modifierList.hasModifier(PRIVATE_KEYWORD)) return DescriptorVisibilities.PRIVATE;
if (modifierList.hasModifier(PUBLIC_KEYWORD)) return DescriptorVisibilities.PUBLIC;
if (modifierList.hasModifier(PROTECTED_KEYWORD)) return DescriptorVisibilities.PROTECTED;
if (modifierList.hasModifier(INTERNAL_KEYWORD)) return DescriptorVisibilities.INTERNAL;
return defaultVisibility;
}
@@ -232,7 +232,7 @@ class OverloadResolver(
private fun DeclarationDescriptor.isPrivate() =
this is DeclarationDescriptorWithVisibility &&
Visibilities.isPrivate(this.visibility)
DescriptorVisibilities.isPrivate(this.visibility)
private fun checkOverloadsInClass(members: Collection<CallableMemberDescriptor>) {
if (members.size == 1) return
@@ -504,7 +504,7 @@ class OverrideResolver(
private fun checkVisibilityForMember(declaration: KtDeclaration, memberDescriptor: CallableMemberDescriptor) {
val visibility = memberDescriptor.visibility
for (descriptor in memberDescriptor.overriddenDescriptors) {
val compare = Visibilities.compare(visibility, descriptor.visibility)
val compare = DescriptorVisibilities.compare(visibility, descriptor.visibility)
if (compare == null) {
trace.report(
CANNOT_CHANGE_ACCESS_PRIVILEGE.on(
@@ -601,7 +601,7 @@ class OverrideResolver(
val relevantDirectlyOverridden =
getRelevantDirectlyOverridden(overriddenDeclarationsByDirectParent, allFilteredOverriddenDeclarations)
if (descriptor.visibility === Visibilities.INVISIBLE_FAKE) {
if (descriptor.visibility === DescriptorVisibilities.INVISIBLE_FAKE) {
checkInvisibleFakeOverride(descriptor, relevantDirectlyOverridden, reportingStrategy)
return
}
@@ -811,10 +811,10 @@ internal fun isVisible(
val visibility = descriptor.visibility
if (position == QualifierPosition.IMPORT) {
if (Visibilities.isPrivate(visibility)) return Visibilities.inSameFile(descriptor, shouldBeVisibleFrom)
if (DescriptorVisibilities.isPrivate(visibility)) return DescriptorVisibilities.inSameFile(descriptor, shouldBeVisibleFrom)
if (!visibility.mustCheckInImports()) return true
}
return Visibilities.isVisibleIgnoringReceiver(descriptor, shouldBeVisibleFrom)
return DescriptorVisibilities.isVisibleIgnoringReceiver(descriptor, shouldBeVisibleFrom)
}
internal enum class QualifierPosition {
@@ -88,7 +88,7 @@ class ShadowedExtensionChecker(val typeSpecificityComparator: TypeSpecificityCom
}
private fun DeclarationDescriptorWithVisibility.isPublic() =
visibility.normalize() == Visibilities.PUBLIC
visibility.normalize() == DescriptorVisibilities.PUBLIC
private fun isExtensionFunctionShadowedByMemberFunction(extension: FunctionDescriptor, member: FunctionDescriptor): Boolean {
// Permissive check:
@@ -324,7 +324,7 @@ class TypeResolver(
type: KotlinType,
source: SourceElement
) : VariableDescriptorImpl(containingDeclaration, annotations, name, type, source) {
override fun getVisibility() = Visibilities.LOCAL
override fun getVisibility() = DescriptorVisibilities.LOCAL
override fun substitute(substitutor: TypeSubstitutor): VariableDescriptor? {
throw UnsupportedOperationException("Should not be called for descriptor of type ${this::class.java}")
@@ -87,13 +87,13 @@ class VarianceCheckerCore(
}
fun checkMember(member: KtCallableDeclaration, descriptor: CallableMemberDescriptor) =
Visibilities.isPrivate(descriptor.visibility) || checkCallableDeclaration(context, member, descriptor)
DescriptorVisibilities.isPrivate(descriptor.visibility) || checkCallableDeclaration(context, member, descriptor)
private fun TypeParameterDescriptor.varianceWithManual() =
if (manualVariance != null && this.original == manualVariance.descriptor) manualVariance.variance else variance
fun recordPrivateToThisIfNeeded(descriptor: CallableMemberDescriptor) {
if (isIrrelevant(descriptor) || descriptor.visibility != Visibilities.PRIVATE) return
if (isIrrelevant(descriptor) || descriptor.visibility != DescriptorVisibilities.PRIVATE) return
val psiElement = descriptor.source.getPsi() as? KtCallableDeclaration ?: return
@@ -185,11 +185,11 @@ class VarianceCheckerCore(
private fun recordPrivateToThis(descriptor: CallableMemberDescriptor) {
when (descriptor) {
is FunctionDescriptorImpl -> descriptor.visibility = Visibilities.PRIVATE_TO_THIS
is FunctionDescriptorImpl -> descriptor.visibility = DescriptorVisibilities.PRIVATE_TO_THIS
is PropertyDescriptorImpl -> {
descriptor.visibility = Visibilities.PRIVATE_TO_THIS
descriptor.visibility = DescriptorVisibilities.PRIVATE_TO_THIS
for (accessor in descriptor.accessors) {
(accessor as PropertyAccessorDescriptorImpl).visibility = Visibilities.PRIVATE_TO_THIS
(accessor as PropertyAccessorDescriptorImpl).visibility = DescriptorVisibilities.PRIVATE_TO_THIS
}
}
else -> throw IllegalStateException("Unexpected descriptor type: ${descriptor::class.java.name}")
@@ -177,14 +177,14 @@ class CandidateResolver(
}
private fun CallCandidateResolutionContext<*>.checkVisibilityWithoutReceiver() = checkAndReport {
checkVisibilityWithDispatchReceiver(Visibilities.ALWAYS_SUITABLE_RECEIVER, null)
checkVisibilityWithDispatchReceiver(DescriptorVisibilities.ALWAYS_SUITABLE_RECEIVER, null)
}
private fun CallCandidateResolutionContext<*>.checkVisibilityWithDispatchReceiver(
receiverArgument: ReceiverValue?,
smartCastType: KotlinType?
): ResolutionStatus {
val invisibleMember = Visibilities.findInvisibleMember(
val invisibleMember = DescriptorVisibilities.findInvisibleMember(
getReceiverValueWithSmartCast(receiverArgument, smartCastType), candidateDescriptor, scope.ownerDescriptor
)
return if (invisibleMember != null) {
@@ -204,7 +204,7 @@ class CandidateResolver(
private fun CallCandidateResolutionContext<*>.isCandidateVisible(
receiverArgument: ReceiverValue?,
smartCastType: KotlinType?
) = Visibilities.findInvisibleMember(
) = DescriptorVisibilities.findInvisibleMember(
getReceiverValueWithSmartCast(receiverArgument, smartCastType),
candidateDescriptor, scope.ownerDescriptor
) == null
@@ -474,7 +474,7 @@ class CandidateResolver(
if (!context.isDebuggerContext
&& candidateCall.dispatchReceiver != null
// Do not report error if it's already reported when checked without receiver
&& context.isCandidateVisible(receiverArgument = Visibilities.ALWAYS_SUITABLE_RECEIVER, smartCastType = null)) {
&& context.isCandidateVisible(receiverArgument = DescriptorVisibilities.ALWAYS_SUITABLE_RECEIVER, smartCastType = null)) {
resultStatus = resultStatus.combine(
context.checkVisibilityWithDispatchReceiver(
candidateCall.dispatchReceiver, candidateCall.smartCastDispatchReceiverType
@@ -259,7 +259,7 @@ internal class InlineChecker(private val descriptor: FunctionDescriptor) : CallC
val isInlineFunPublicOrPublishedApi = inlineFunEffectiveVisibility.publicApi
if (isInlineFunPublicOrPublishedApi &&
!isCalledFunPublicOrPublishedApi &&
calledDescriptor.visibility !== Visibilities.LOCAL) {
calledDescriptor.visibility !== DescriptorVisibilities.LOCAL) {
context.trace.report(NON_PUBLIC_CALL_FROM_PUBLIC_INLINE.on(expression, calledDescriptor, descriptor))
} else {
checkPrivateClassMemberAccess(calledDescriptor, expression, context)
@@ -267,8 +267,8 @@ internal class InlineChecker(private val descriptor: FunctionDescriptor) : CallC
if (calledDescriptor !is ConstructorDescriptor &&
isInlineFunPublicOrPublishedApi &&
inlineFunEffectiveVisibility.toVisibility() !== Visibilities.PROTECTED &&
calledFunEffectiveVisibility.toVisibility() === Visibilities.PROTECTED) {
inlineFunEffectiveVisibility.toVisibility() !== DescriptorVisibilities.PROTECTED &&
calledFunEffectiveVisibility.toVisibility() === DescriptorVisibilities.PROTECTED) {
if (prohibitProtectedCallFromInline) {
context.trace.report(PROTECTED_CALL_FROM_PUBLIC_INLINE_ERROR.on(expression, calledDescriptor))
} else {
@@ -18,7 +18,7 @@ package org.jetbrains.kotlin.resolve.calls.checkers
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.descriptors.ConstructorDescriptor
import org.jetbrains.kotlin.descriptors.Visibilities
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
import org.jetbrains.kotlin.descriptors.impl.TypeAliasConstructorDescriptor
import org.jetbrains.kotlin.diagnostics.Errors
import org.jetbrains.kotlin.psi.KtConstructorCalleeExpression
@@ -35,9 +35,9 @@ object ProtectedConstructorCallChecker : CallChecker {
val actualConstructor = (descriptor as? TypeAliasConstructorDescriptor)?.underlyingConstructorDescriptor ?: descriptor
if (actualConstructor.visibility.normalize() != Visibilities.PROTECTED) return
if (actualConstructor.visibility.normalize() != DescriptorVisibilities.PROTECTED) return
// Error already reported
if (!Visibilities.isVisibleWithAnyReceiver(descriptor, scopeOwner)) return
if (!DescriptorVisibilities.isVisibleWithAnyReceiver(descriptor, scopeOwner)) return
val calleeExpression = resolvedCall.call.calleeExpression
@@ -55,7 +55,7 @@ object ProtectedConstructorCallChecker : CallChecker {
// And without ProtectedConstructorCallChecker such calls would be allowed only because they are performed within subclass
// of constructor owner
@Suppress("DEPRECATION")
if (Visibilities.findInvisibleMember(Visibilities.FALSE_IF_PROTECTED, descriptor, scopeOwner) == actualConstructor.original) {
if (DescriptorVisibilities.findInvisibleMember(DescriptorVisibilities.FALSE_IF_PROTECTED, descriptor, scopeOwner) == actualConstructor.original) {
context.trace.report(Errors.PROTECTED_CONSTRUCTOR_NOT_IN_SUPER_CALL.on(reportOn, descriptor))
}
}
@@ -130,7 +130,7 @@ private fun isAccessedBeforeAllClosureWriters(
private fun DeclarationDescriptorWithVisibility.isInvisibleFromOtherModules(): Boolean {
if (Visibilities.INVISIBLE_FROM_OTHER_MODULES.contains(visibility)) return true
if (DescriptorVisibilities.INVISIBLE_FROM_OTHER_MODULES.contains(visibility)) return true
val containingDeclaration = containingDeclaration
return containingDeclaration is DeclarationDescriptorWithVisibility && containingDeclaration.isInvisibleFromOtherModules()
@@ -89,7 +89,7 @@ class DynamicCallableDescriptors(private val storageManager: StorageManager, bui
owner,
Annotations.EMPTY,
Modality.FINAL,
Visibilities.PUBLIC,
DescriptorVisibilities.PUBLIC,
true,
name,
CallableMemberDescriptor.Kind.DECLARATION,
@@ -132,7 +132,7 @@ class DynamicCallableDescriptors(private val storageManager: StorageManager, bui
createValueParameters(functionDescriptor, call),
dynamicType,
Modality.FINAL,
Visibilities.PUBLIC
DescriptorVisibilities.PUBLIC
)
functionDescriptor.setHasSynthesizedParameterNames(true)
functionDescriptor.isOperator = isConventionCall(call)
@@ -105,8 +105,8 @@ class ExplicitApiDeclarationChecker : DeclarationChecker {
val callableMemberDescriptor = descriptor as? CallableMemberDescriptor
val visibility = callableMemberDescriptor?.effectiveVisibility()?.toVisibility()
return (checkForPublicApi && visibility?.isPublicAPI == true) || (checkForInternal && visibility == Visibilities.INTERNAL) ||
(checkForPrivate && visibility == Visibilities.PRIVATE)
return (checkForPublicApi && visibility?.isPublicAPI == true) || (checkForInternal && visibility == DescriptorVisibilities.INTERNAL) ||
(checkForPrivate && visibility == DescriptorVisibilities.PRIVATE)
}
fun returnTypeCheckIsApplicable(element: KtCallableDeclaration): Boolean {
@@ -120,4 +120,4 @@ class ExplicitApiDeclarationChecker : DeclarationChecker {
return true
}
}
}
}
@@ -47,7 +47,7 @@ object InlineClassDeclarationChecker : DeclarationChecker {
}
val primaryConstructorVisibility = descriptor.unsubstitutedPrimaryConstructor?.visibility
if (primaryConstructorVisibility != null && primaryConstructorVisibility != Visibilities.PUBLIC) {
if (primaryConstructorVisibility != null && primaryConstructorVisibility != DescriptorVisibilities.PUBLIC) {
trace.report(Errors.NON_PUBLIC_PRIMARY_CONSTRUCTOR_OF_INLINE_CLASS.on(primaryConstructor.visibilityModifier() ?: inlineKeyword))
return
}
@@ -173,4 +173,4 @@ class ReservedMembersAndConstructsForInlineClass : DeclarationChecker {
}
}
}
}
}
@@ -28,7 +28,7 @@ import org.jetbrains.kotlin.types.typeUtil.isSubtypeOf
object KClassWithIncorrectTypeArgumentChecker : DeclarationChecker {
override fun check(declaration: KtDeclaration, descriptor: DeclarationDescriptor, context: DeclarationCheckerContext) {
if (descriptor !is CallableMemberDescriptor || descriptor.visibility == Visibilities.LOCAL) return
if (descriptor !is CallableMemberDescriptor || descriptor.visibility == DescriptorVisibilities.LOCAL) return
if (declaration !is KtCallableDeclaration || declaration.typeReference != null) return
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.builtins.StandardNames
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.DeclarationDescriptorWithVisibility
import org.jetbrains.kotlin.descriptors.PropertyAccessorDescriptor
import org.jetbrains.kotlin.descriptors.Visibilities
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
import org.jetbrains.kotlin.diagnostics.Errors
import org.jetbrains.kotlin.psi.KtDeclaration
import org.jetbrains.kotlin.resolve.BindingContext
@@ -32,7 +32,7 @@ object PublishedApiUsageChecker {
descriptor: DeclarationDescriptor,
trace: BindingTrace
) {
if (descriptor !is DeclarationDescriptorWithVisibility || descriptor.visibility == Visibilities.INTERNAL) return
if (descriptor !is DeclarationDescriptorWithVisibility || descriptor.visibility == DescriptorVisibilities.INTERNAL) return
// Don't report the diagnostic twice
if (descriptor is PropertyAccessorDescriptor) return
@@ -45,7 +45,7 @@ class ResultClassInReturnTypeChecker : DeclarationChecker {
}
val visibility = (declarationDescriptor as DeclarationDescriptorWithVisibility).visibility
return !Visibilities.isPrivate(visibility) && visibility != Visibilities.LOCAL
return !DescriptorVisibilities.isPrivate(visibility) && visibility != DescriptorVisibilities.LOCAL
}
return true
@@ -51,8 +51,8 @@ class FunctionImportedFromObject(
override fun getOriginal() = _original as FunctionDescriptor
override fun copy(
newOwner: DeclarationDescriptor?, modality: Modality?, visibility: Visibility?,
kind: CallableMemberDescriptor.Kind?, copyOverrides: Boolean
newOwner: DeclarationDescriptor?, modality: Modality?, visibility: DescriptorVisibility?,
kind: CallableMemberDescriptor.Kind?, copyOverrides: Boolean
): FunctionDescriptor {
throw UnsupportedOperationException("copy() should not be called on ${this::class.java.simpleName}, was called for $this")
}
@@ -71,8 +71,8 @@ class PropertyImportedFromObject(
override fun getOriginal() = _original as PropertyDescriptor
override fun copy(
newOwner: DeclarationDescriptor?, modality: Modality?, visibility: Visibility?,
kind: CallableMemberDescriptor.Kind?, copyOverrides: Boolean
newOwner: DeclarationDescriptor?, modality: Modality?, visibility: DescriptorVisibility?,
kind: CallableMemberDescriptor.Kind?, copyOverrides: Boolean
): FunctionDescriptor {
throw UnsupportedOperationException("copy() should not be called on ${this::class.java.simpleName}, was called for $this")
}
@@ -142,7 +142,7 @@ class InlineAnalyzerExtension(
return
}
if (Visibilities.isPrivate(callableDescriptor.visibility)) {
if (DescriptorVisibilities.isPrivate(callableDescriptor.visibility)) {
return
}
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.resolve.inline
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.descriptors.MemberDescriptor
import org.jetbrains.kotlin.descriptors.Visibilities
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.resolve.DescriptorUtils
@@ -31,7 +31,7 @@ fun MemberDescriptor.isInlineOnly(): Boolean =
(hasInlineOnlyAnnotation() || DescriptorUtils.getDirectMember(this).hasInlineOnlyAnnotation())
private fun MemberDescriptor.isPrivateInlineSuspend(): Boolean =
this is FunctionDescriptor && isSuspend && isInline && visibility == Visibilities.PRIVATE
this is FunctionDescriptor && isSuspend && isInline && visibility == DescriptorVisibilities.PRIVATE
fun MemberDescriptor.isInlineWithReified(): Boolean =
this is CallableMemberDescriptor && (hasReifiedParameters() || DescriptorUtils.getDirectMember(this).hasReifiedParameters())
@@ -269,7 +269,7 @@ class FileScopeFactory(
override fun getContributedClassifier(name: Name, location: LookupLocation): ClassifierDescriptor? {
if (name in excludedNames) return null
val classifier = scope.getContributedClassifier(name, location) ?: return null
val visible = Visibilities.isVisibleIgnoringReceiver(classifier as DeclarationDescriptorWithVisibility, fromDescriptor)
val visible = DescriptorVisibilities.isVisibleIgnoringReceiver(classifier as DeclarationDescriptorWithVisibility, fromDescriptor)
return classifier.takeIf { filteringKind == if (visible) FilteringKind.VISIBLE_CLASSES else FilteringKind.INVISIBLE_CLASSES }
}
@@ -240,7 +240,7 @@ class LazyImportScope(
val visibility = (descriptor as DeclarationDescriptorWithVisibility).visibility
val includeVisible = filteringKind == FilteringKind.VISIBLE_CLASSES
if (!visibility.mustCheckInImports()) return includeVisible
return Visibilities.isVisibleIgnoringReceiver(descriptor, components.moduleDescriptor) == includeVisible
return DescriptorVisibilities.isVisibleIgnoringReceiver(descriptor, components.moduleDescriptor) == includeVisible
}
override fun getContributedClassifier(name: Name, location: LookupLocation): ClassifierDescriptor? {
@@ -56,8 +56,8 @@ import java.util.Collections;
import java.util.List;
import static kotlin.collections.CollectionsKt.firstOrNull;
import static org.jetbrains.kotlin.descriptors.Visibilities.PRIVATE;
import static org.jetbrains.kotlin.descriptors.Visibilities.PUBLIC;
import static org.jetbrains.kotlin.descriptors.DescriptorVisibilities.PRIVATE;
import static org.jetbrains.kotlin.descriptors.DescriptorVisibilities.PUBLIC;
import static org.jetbrains.kotlin.diagnostics.Errors.*;
import static org.jetbrains.kotlin.lexer.KtTokens.INNER_KEYWORD;
import static org.jetbrains.kotlin.resolve.BindingContext.TYPE;
@@ -79,7 +79,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes
private final LazyClassTypeConstructor typeConstructor;
private final NotNullLazyValue<Modality> modality;
private final Visibility visibility;
private final DescriptorVisibility visibility;
private final ClassKind kind;
private final boolean isInner;
private final boolean isData;
@@ -149,7 +149,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes
}
boolean isLocal = classOrObject != null && KtPsiUtil.isLocal(classOrObject);
this.visibility = isLocal ? Visibilities.LOCAL : resolveVisibilityFromModifiers(modifierList, Visibilities.DEFAULT_VISIBILITY);
this.visibility = isLocal ? DescriptorVisibilities.LOCAL : resolveVisibilityFromModifiers(modifierList, DescriptorVisibilities.DEFAULT_VISIBILITY);
this.isInner = modifierList != null && modifierList.hasModifier(INNER_KEYWORD) && !isIllegalInner(this);
this.isData = modifierList != null && modifierList.hasModifier(KtTokens.DATA_KEYWORD);
@@ -292,7 +292,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes
) {
{
initialize(null, null, Collections.emptyList(), Collections.emptyList(),
null, Modality.FINAL, Visibilities.PRIVATE);
null, Modality.FINAL, DescriptorVisibilities.PRIVATE);
}
@NotNull
@@ -513,7 +513,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes
@NotNull
@Override
public Visibility getVisibility() {
public DescriptorVisibility getVisibility() {
return visibility;
}
@@ -38,7 +38,7 @@ class LazyTypeAliasDescriptor(
annotations: Annotations,
name: Name,
sourceElement: SourceElement,
visibility: Visibility
visibility: DescriptorVisibility
) : AbstractTypeAliasDescriptor(containingDeclaration, annotations, name, sourceElement, visibility),
TypeAliasDescriptor {
override val constructors: Collection<TypeAliasConstructorDescriptor> by storageManager.createLazyValue {
@@ -122,7 +122,7 @@ class LazyTypeAliasDescriptor(
annotations: Annotations,
name: Name,
sourceElement: SourceElement,
visibility: Visibility
visibility: DescriptorVisibility
): LazyTypeAliasDescriptor =
LazyTypeAliasDescriptor(
storageManager, trace,
@@ -230,7 +230,7 @@ public class ControlStructureTypingUtils {
valueParameters,
returnType,
Modality.FINAL,
Visibilities.PUBLIC
DescriptorVisibilities.PUBLIC
);
return function;
}
@@ -628,7 +628,7 @@ class DoubleColonExpressionResolver(
createValueParametersForInvokeInFunctionType(functionDescriptor, type.arguments.dropLast(1)),
type.arguments.last().type,
Modality.FINAL,
Visibilities.PUBLIC
DescriptorVisibilities.PUBLIC
)
context.trace.record(BindingContext.FUNCTION, expression, functionDescriptor)
@@ -826,7 +826,7 @@ class DoubleColonExpressionResolver(
): Boolean {
val receiver = receiverTypeFor(descriptor, lhs)?.let(::TransientReceiver)
val setter = descriptor.setter
return descriptor.isVar && (setter == null || Visibilities.isVisible(receiver, setter, scopeOwnerDescriptor))
return descriptor.isVar && (setter == null || DescriptorVisibilities.isVisible(receiver, setter, scopeOwnerDescriptor))
}
fun createKCallableTypeForReference(
@@ -239,7 +239,7 @@ public class ExpressionTypingUtils {
public static boolean isLocalFunction(@Nullable DeclarationDescriptor descriptor) {
if (descriptor != null && descriptor.getClass() == SimpleFunctionDescriptorImpl.class) {
return ((SimpleFunctionDescriptorImpl) descriptor).getVisibility() == Visibilities.LOCAL;
return ((SimpleFunctionDescriptorImpl) descriptor).getVisibility() == DescriptorVisibilities.LOCAL;
}
return false;
}
@@ -109,8 +109,8 @@ fun getNonPrivateTraitMembersForDelegation(
): CallableMemberDescriptor? {
val traitMember = findInterfaceImplementation(descriptor, returnImplNotDelegate)
if (traitMember == null ||
Visibilities.isPrivate(traitMember.visibility) ||
traitMember.visibility == Visibilities.INVISIBLE_FAKE
DescriptorVisibilities.isPrivate(traitMember.visibility) ||
traitMember.visibility == DescriptorVisibilities.INVISIBLE_FAKE
) return null
return traitMember
}
}