Rename Visibility to DescriptorVisibility
This commit is contained in:
@@ -17,7 +17,7 @@
|
|||||||
package org.jetbrains.kotlin.incremental
|
package org.jetbrains.kotlin.incremental
|
||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.load.java.JavaVisibilities
|
import org.jetbrains.kotlin.load.java.JavaDescriptorVisibilities
|
||||||
import org.jetbrains.kotlin.metadata.ProtoBuf
|
import org.jetbrains.kotlin.metadata.ProtoBuf
|
||||||
import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion
|
import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion
|
||||||
import org.jetbrains.kotlin.metadata.java.JavaClassProtoBuf
|
import org.jetbrains.kotlin.metadata.java.JavaClassProtoBuf
|
||||||
@@ -41,7 +41,7 @@ class JavaClassesSerializerExtension : KotlinSerializerExtensionBase(BuiltInSeri
|
|||||||
childSerializer: DescriptorSerializer
|
childSerializer: DescriptorSerializer
|
||||||
) {
|
) {
|
||||||
super.serializeClass(descriptor, proto, versionRequirementTable, childSerializer)
|
super.serializeClass(descriptor, proto, versionRequirementTable, childSerializer)
|
||||||
if (descriptor.visibility == JavaVisibilities.PACKAGE_VISIBILITY) {
|
if (descriptor.visibility == JavaDescriptorVisibilities.PACKAGE_VISIBILITY) {
|
||||||
proto.setExtension(JavaClassProtoBuf.isPackagePrivateClass, true)
|
proto.setExtension(JavaClassProtoBuf.isPackagePrivateClass, true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -50,7 +50,7 @@ class JavaClassesSerializerExtension : KotlinSerializerExtensionBase(BuiltInSeri
|
|||||||
proto: ProtoBuf.Constructor.Builder,
|
proto: ProtoBuf.Constructor.Builder,
|
||||||
childSerializer: DescriptorSerializer) {
|
childSerializer: DescriptorSerializer) {
|
||||||
super.serializeConstructor(descriptor, proto, childSerializer)
|
super.serializeConstructor(descriptor, proto, childSerializer)
|
||||||
if (descriptor.visibility == JavaVisibilities.PACKAGE_VISIBILITY) {
|
if (descriptor.visibility == JavaDescriptorVisibilities.PACKAGE_VISIBILITY) {
|
||||||
proto.setExtension(JavaClassProtoBuf.isPackagePrivateConstructor, true)
|
proto.setExtension(JavaClassProtoBuf.isPackagePrivateConstructor, true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -62,7 +62,7 @@ class JavaClassesSerializerExtension : KotlinSerializerExtensionBase(BuiltInSeri
|
|||||||
childSerializer: DescriptorSerializer
|
childSerializer: DescriptorSerializer
|
||||||
) {
|
) {
|
||||||
super.serializeFunction(descriptor, proto, versionRequirementTable, childSerializer)
|
super.serializeFunction(descriptor, proto, versionRequirementTable, childSerializer)
|
||||||
if (descriptor.visibility == JavaVisibilities.PACKAGE_VISIBILITY) {
|
if (descriptor.visibility == JavaDescriptorVisibilities.PACKAGE_VISIBILITY) {
|
||||||
proto.setExtension(JavaClassProtoBuf.isPackagePrivateMethod, true)
|
proto.setExtension(JavaClassProtoBuf.isPackagePrivateMethod, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -78,7 +78,7 @@ class JavaClassesSerializerExtension : KotlinSerializerExtensionBase(BuiltInSeri
|
|||||||
childSerializer: DescriptorSerializer
|
childSerializer: DescriptorSerializer
|
||||||
) {
|
) {
|
||||||
super.serializeProperty(descriptor, proto, versionRequirementTable, childSerializer)
|
super.serializeProperty(descriptor, proto, versionRequirementTable, childSerializer)
|
||||||
if (descriptor.visibility == JavaVisibilities.PACKAGE_VISIBILITY) {
|
if (descriptor.visibility == JavaDescriptorVisibilities.PACKAGE_VISIBILITY) {
|
||||||
proto.setExtension(JavaClassProtoBuf.isPackagePrivateField, true)
|
proto.setExtension(JavaClassProtoBuf.isPackagePrivateField, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.incremental
|
package org.jetbrains.kotlin.incremental
|
||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
|
||||||
import org.jetbrains.kotlin.incremental.ProtoCompareGenerated.ProtoBufClassKind
|
import org.jetbrains.kotlin.incremental.ProtoCompareGenerated.ProtoBufClassKind
|
||||||
import org.jetbrains.kotlin.incremental.ProtoCompareGenerated.ProtoBufPackageKind
|
import org.jetbrains.kotlin.incremental.ProtoCompareGenerated.ProtoBufPackageKind
|
||||||
import org.jetbrains.kotlin.incremental.storage.ProtoMapValue
|
import org.jetbrains.kotlin.incremental.storage.ProtoMapValue
|
||||||
@@ -49,7 +49,7 @@ fun ProtoMapValue.toProtoData(packageFqName: FqName): ProtoData =
|
|||||||
}
|
}
|
||||||
|
|
||||||
internal val MessageLite.isPrivate: Boolean
|
internal val MessageLite.isPrivate: Boolean
|
||||||
get() = Visibilities.isPrivate(
|
get() = DescriptorVisibilities.isPrivate(
|
||||||
ProtoEnumFlags.visibility(
|
ProtoEnumFlags.visibility(
|
||||||
when (this) {
|
when (this) {
|
||||||
is ProtoBuf.Constructor -> Flags.VISIBILITY.get(flags)
|
is ProtoBuf.Constructor -> Flags.VISIBILITY.get(flags)
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ object CodegenUtil {
|
|||||||
if (copy)
|
if (copy)
|
||||||
copyFunctions(
|
copyFunctions(
|
||||||
declaration, traitMember, declaration.containingDeclaration, traitMember.modality,
|
declaration, traitMember, declaration.containingDeclaration, traitMember.modality,
|
||||||
Visibilities.PUBLIC, CallableMemberDescriptor.Kind.DECLARATION, true
|
DescriptorVisibilities.PUBLIC, CallableMemberDescriptor.Kind.DECLARATION, true
|
||||||
)
|
)
|
||||||
else mapMembers(declaration, traitMember)
|
else mapMembers(declaration, traitMember)
|
||||||
)
|
)
|
||||||
@@ -74,13 +74,13 @@ object CodegenUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun copyFunctions(
|
fun copyFunctions(
|
||||||
inheritedMember: CallableMemberDescriptor,
|
inheritedMember: CallableMemberDescriptor,
|
||||||
traitMember: CallableMemberDescriptor,
|
traitMember: CallableMemberDescriptor,
|
||||||
newOwner: DeclarationDescriptor,
|
newOwner: DeclarationDescriptor,
|
||||||
modality: Modality,
|
modality: Modality,
|
||||||
visibility: Visibility,
|
visibility: DescriptorVisibility,
|
||||||
kind: CallableMemberDescriptor.Kind,
|
kind: CallableMemberDescriptor.Kind,
|
||||||
copyOverrides: Boolean
|
copyOverrides: Boolean
|
||||||
): Map<FunctionDescriptor, FunctionDescriptor> =
|
): Map<FunctionDescriptor, FunctionDescriptor> =
|
||||||
mapMembers(inheritedMember.copy(newOwner, modality, visibility, kind, copyOverrides), traitMember)
|
mapMembers(inheritedMember.copy(newOwner, modality, visibility, kind, copyOverrides), traitMember)
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -27,7 +27,7 @@ class AccessorForCompanionObjectInstanceFieldDescriptor(
|
|||||||
null, null, emptyList(), emptyList(),
|
null, null, emptyList(), emptyList(),
|
||||||
companionObjectDescriptor.defaultType,
|
companionObjectDescriptor.defaultType,
|
||||||
Modality.FINAL,
|
Modality.FINAL,
|
||||||
Visibilities.LOCAL
|
DescriptorVisibilities.LOCAL
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+6
-6
@@ -42,11 +42,11 @@ class AccessorForConstructorDescriptor(
|
|||||||
override fun substitute(substitutor: TypeSubstitutor) = super.substitute(substitutor) as ClassConstructorDescriptor
|
override fun substitute(substitutor: TypeSubstitutor) = super.substitute(substitutor) as ClassConstructorDescriptor
|
||||||
|
|
||||||
override fun copy(
|
override fun copy(
|
||||||
newOwner: DeclarationDescriptor,
|
newOwner: DeclarationDescriptor,
|
||||||
modality: Modality,
|
modality: Modality,
|
||||||
visibility: Visibility,
|
visibility: DescriptorVisibility,
|
||||||
kind: CallableMemberDescriptor.Kind,
|
kind: CallableMemberDescriptor.Kind,
|
||||||
copyOverrides: Boolean
|
copyOverrides: Boolean
|
||||||
): AccessorForConstructorDescriptor {
|
): AccessorForConstructorDescriptor {
|
||||||
throw UnsupportedOperationException()
|
throw UnsupportedOperationException()
|
||||||
}
|
}
|
||||||
@@ -61,7 +61,7 @@ class AccessorForConstructorDescriptor(
|
|||||||
copyValueParameters(calleeDescriptor),
|
copyValueParameters(calleeDescriptor),
|
||||||
calleeDescriptor.returnType,
|
calleeDescriptor.returnType,
|
||||||
Modality.FINAL,
|
Modality.FINAL,
|
||||||
Visibilities.LOCAL
|
DescriptorVisibilities.LOCAL
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ class AccessorForFunctionDescriptor(
|
|||||||
copyValueParameters(calleeDescriptor),
|
copyValueParameters(calleeDescriptor),
|
||||||
calleeDescriptor.returnType,
|
calleeDescriptor.returnType,
|
||||||
Modality.FINAL,
|
Modality.FINAL,
|
||||||
Visibilities.LOCAL
|
DescriptorVisibilities.LOCAL
|
||||||
)
|
)
|
||||||
|
|
||||||
isSuspend = calleeDescriptor.isSuspend
|
isSuspend = calleeDescriptor.isSuspend
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ open class AccessorForPropertyDescriptor private constructor(
|
|||||||
null,
|
null,
|
||||||
Annotations.EMPTY,
|
Annotations.EMPTY,
|
||||||
Modality.FINAL,
|
Modality.FINAL,
|
||||||
Visibilities.LOCAL,
|
DescriptorVisibilities.LOCAL,
|
||||||
calleeDescriptor.isVar,
|
calleeDescriptor.isVar,
|
||||||
Name.identifier("access$$accessorSuffix"),
|
Name.identifier("access$$accessorSuffix"),
|
||||||
CallableMemberDescriptor.Kind.DECLARATION,
|
CallableMemberDescriptor.Kind.DECLARATION,
|
||||||
@@ -111,7 +111,7 @@ open class AccessorForPropertyDescriptor private constructor(
|
|||||||
property,
|
property,
|
||||||
Annotations.EMPTY,
|
Annotations.EMPTY,
|
||||||
Modality.FINAL,
|
Modality.FINAL,
|
||||||
Visibilities.LOCAL,
|
DescriptorVisibilities.LOCAL,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
@@ -136,7 +136,7 @@ open class AccessorForPropertyDescriptor private constructor(
|
|||||||
property,
|
property,
|
||||||
Annotations.EMPTY,
|
Annotations.EMPTY,
|
||||||
Modality.FINAL,
|
Modality.FINAL,
|
||||||
Visibilities.LOCAL,
|
DescriptorVisibilities.LOCAL,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
|||||||
@@ -142,7 +142,7 @@ public abstract class AnnotationCodegen {
|
|||||||
&& !applicableTargets.contains(KotlinTarget.CLASS)
|
&& !applicableTargets.contains(KotlinTarget.CLASS)
|
||||||
&& !applicableTargets.contains(KotlinTarget.ANNOTATION_CLASS)) {
|
&& !applicableTargets.contains(KotlinTarget.ANNOTATION_CLASS)) {
|
||||||
ClassDescriptor classDescriptor = (ClassDescriptor) annotated;
|
ClassDescriptor classDescriptor = (ClassDescriptor) annotated;
|
||||||
if (classDescriptor.getVisibility() == Visibilities.LOCAL) {
|
if (classDescriptor.getVisibility() == DescriptorVisibilities.LOCAL) {
|
||||||
assert applicableTargets.contains(KotlinTarget.EXPRESSION) :
|
assert applicableTargets.contains(KotlinTarget.EXPRESSION) :
|
||||||
"Inconsistent target list for object literal annotation: " + applicableTargets + " on " + annotated;
|
"Inconsistent target list for object literal annotation: " + applicableTargets + " on " + annotated;
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.config.*;
|
|||||||
import org.jetbrains.kotlin.descriptors.*;
|
import org.jetbrains.kotlin.descriptors.*;
|
||||||
import org.jetbrains.kotlin.incremental.components.NoLookupLocation;
|
import org.jetbrains.kotlin.incremental.components.NoLookupLocation;
|
||||||
import org.jetbrains.kotlin.lexer.KtTokens;
|
import org.jetbrains.kotlin.lexer.KtTokens;
|
||||||
import org.jetbrains.kotlin.load.java.JavaVisibilities;
|
import org.jetbrains.kotlin.load.java.JavaDescriptorVisibilities;
|
||||||
import org.jetbrains.kotlin.load.java.JvmAnnotationNames;
|
import org.jetbrains.kotlin.load.java.JvmAnnotationNames;
|
||||||
import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmProtoBufUtil;
|
import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmProtoBufUtil;
|
||||||
import org.jetbrains.kotlin.metadata.jvm.serialization.JvmStringTable;
|
import org.jetbrains.kotlin.metadata.jvm.serialization.JvmStringTable;
|
||||||
@@ -82,16 +82,16 @@ public class AsmUtil {
|
|||||||
public static final int NO_FLAG_PACKAGE_PRIVATE = 0;
|
public static final int NO_FLAG_PACKAGE_PRIVATE = 0;
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private static final Map<Visibility, Integer> visibilityToAccessFlag = ImmutableMap.<Visibility, Integer>builder()
|
private static final Map<DescriptorVisibility, Integer> visibilityToAccessFlag = ImmutableMap.<DescriptorVisibility, Integer>builder()
|
||||||
.put(Visibilities.PRIVATE, ACC_PRIVATE)
|
.put(DescriptorVisibilities.PRIVATE, ACC_PRIVATE)
|
||||||
.put(Visibilities.PRIVATE_TO_THIS, ACC_PRIVATE)
|
.put(DescriptorVisibilities.PRIVATE_TO_THIS, ACC_PRIVATE)
|
||||||
.put(Visibilities.PROTECTED, ACC_PROTECTED)
|
.put(DescriptorVisibilities.PROTECTED, ACC_PROTECTED)
|
||||||
.put(JavaVisibilities.PROTECTED_STATIC_VISIBILITY, ACC_PROTECTED)
|
.put(JavaDescriptorVisibilities.PROTECTED_STATIC_VISIBILITY, ACC_PROTECTED)
|
||||||
.put(JavaVisibilities.PROTECTED_AND_PACKAGE, ACC_PROTECTED)
|
.put(JavaDescriptorVisibilities.PROTECTED_AND_PACKAGE, ACC_PROTECTED)
|
||||||
.put(Visibilities.PUBLIC, ACC_PUBLIC)
|
.put(DescriptorVisibilities.PUBLIC, ACC_PUBLIC)
|
||||||
.put(Visibilities.INTERNAL, ACC_PUBLIC)
|
.put(DescriptorVisibilities.INTERNAL, ACC_PUBLIC)
|
||||||
.put(Visibilities.LOCAL, NO_FLAG_LOCAL)
|
.put(DescriptorVisibilities.LOCAL, NO_FLAG_LOCAL)
|
||||||
.put(JavaVisibilities.PACKAGE_VISIBILITY, NO_FLAG_PACKAGE_PRIVATE)
|
.put(JavaDescriptorVisibilities.PACKAGE_VISIBILITY, NO_FLAG_PACKAGE_PRIVATE)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
public static final String CAPTURED_PREFIX = "$";
|
public static final String CAPTURED_PREFIX = "$";
|
||||||
@@ -395,7 +395,7 @@ public class AsmUtil {
|
|||||||
flags |= getDeprecatedAccessFlag(functionDescriptor);
|
flags |= getDeprecatedAccessFlag(functionDescriptor);
|
||||||
if (deprecationResolver.isDeprecatedHidden(functionDescriptor) ||
|
if (deprecationResolver.isDeprecatedHidden(functionDescriptor) ||
|
||||||
isInlineWithReified(functionDescriptor) ||
|
isInlineWithReified(functionDescriptor) ||
|
||||||
functionDescriptor.isSuspend() && functionDescriptor.getVisibility().equals(Visibilities.PRIVATE)) {
|
functionDescriptor.isSuspend() && functionDescriptor.getVisibility().equals(DescriptorVisibilities.PRIVATE)) {
|
||||||
flags |= ACC_SYNTHETIC;
|
flags |= ACC_SYNTHETIC;
|
||||||
}
|
}
|
||||||
return flags;
|
return flags;
|
||||||
@@ -410,7 +410,7 @@ public class AsmUtil {
|
|||||||
if (specialCase != null) {
|
if (specialCase != null) {
|
||||||
return specialCase;
|
return specialCase;
|
||||||
}
|
}
|
||||||
Visibility visibility = descriptor.getVisibility();
|
DescriptorVisibility visibility = descriptor.getVisibility();
|
||||||
Integer defaultMapping = getVisibilityAccessFlag(visibility);
|
Integer defaultMapping = getVisibilityAccessFlag(visibility);
|
||||||
if (defaultMapping == null) {
|
if (defaultMapping == null) {
|
||||||
throw new IllegalStateException(visibility + " is not a valid visibility in backend for " + DescriptorRenderer.DEBUG_TEXT.render(descriptor));
|
throw new IllegalStateException(visibility + " is not a valid visibility in backend for " + DescriptorRenderer.DEBUG_TEXT.render(descriptor));
|
||||||
@@ -419,7 +419,7 @@ public class AsmUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public static Integer getVisibilityAccessFlag(Visibility visibility) {
|
public static Integer getVisibilityAccessFlag(DescriptorVisibility visibility) {
|
||||||
return visibilityToAccessFlag.get(visibility);
|
return visibilityToAccessFlag.get(visibility);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -435,11 +435,11 @@ public class AsmUtil {
|
|||||||
if (descriptor.getKind() == ClassKind.ENUM_ENTRY) {
|
if (descriptor.getKind() == ClassKind.ENUM_ENTRY) {
|
||||||
return NO_FLAG_PACKAGE_PRIVATE;
|
return NO_FLAG_PACKAGE_PRIVATE;
|
||||||
}
|
}
|
||||||
if (descriptor.getVisibility() == Visibilities.PUBLIC ||
|
if (descriptor.getVisibility() == DescriptorVisibilities.PUBLIC ||
|
||||||
descriptor.getVisibility() == Visibilities.PROTECTED ||
|
descriptor.getVisibility() == DescriptorVisibilities.PROTECTED ||
|
||||||
// TODO: should be package private, but for now Kotlin's reflection can't access members of such classes
|
// TODO: should be package private, but for now Kotlin's reflection can't access members of such classes
|
||||||
descriptor.getVisibility() == Visibilities.LOCAL ||
|
descriptor.getVisibility() == DescriptorVisibilities.LOCAL ||
|
||||||
descriptor.getVisibility() == Visibilities.INTERNAL) {
|
descriptor.getVisibility() == DescriptorVisibilities.INTERNAL) {
|
||||||
return ACC_PUBLIC;
|
return ACC_PUBLIC;
|
||||||
}
|
}
|
||||||
return NO_FLAG_PACKAGE_PRIVATE;
|
return NO_FLAG_PACKAGE_PRIVATE;
|
||||||
@@ -458,7 +458,7 @@ public class AsmUtil {
|
|||||||
int visibility =
|
int visibility =
|
||||||
innerClass instanceof SyntheticClassDescriptorForLambda
|
innerClass instanceof SyntheticClassDescriptorForLambda
|
||||||
? getVisibilityAccessFlagForAnonymous(innerClass)
|
? getVisibilityAccessFlagForAnonymous(innerClass)
|
||||||
: innerClass.getVisibility() == Visibilities.LOCAL
|
: innerClass.getVisibility() == DescriptorVisibilities.LOCAL
|
||||||
? ACC_PUBLIC
|
? ACC_PUBLIC
|
||||||
: getVisibilityAccessFlag(innerClass);
|
: getVisibilityAccessFlag(innerClass);
|
||||||
return visibility |
|
return visibility |
|
||||||
@@ -511,7 +511,7 @@ public class AsmUtil {
|
|||||||
@Nullable
|
@Nullable
|
||||||
private static Integer specialCaseVisibility(@NotNull MemberDescriptor memberDescriptor, @Nullable OwnerKind kind) {
|
private static Integer specialCaseVisibility(@NotNull MemberDescriptor memberDescriptor, @Nullable OwnerKind kind) {
|
||||||
DeclarationDescriptor containingDeclaration = memberDescriptor.getContainingDeclaration();
|
DeclarationDescriptor containingDeclaration = memberDescriptor.getContainingDeclaration();
|
||||||
Visibility memberVisibility = memberDescriptor.getVisibility();
|
DescriptorVisibility memberVisibility = memberDescriptor.getVisibility();
|
||||||
|
|
||||||
if (JvmCodegenUtil.isNonIntrinsicPrivateCompanionObjectInInterface(memberDescriptor)) {
|
if (JvmCodegenUtil.isNonIntrinsicPrivateCompanionObjectInInterface(memberDescriptor)) {
|
||||||
return ACC_PUBLIC;
|
return ACC_PUBLIC;
|
||||||
@@ -534,7 +534,7 @@ public class AsmUtil {
|
|||||||
return ACC_PRIVATE;
|
return ACC_PRIVATE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (memberVisibility == Visibilities.LOCAL && memberDescriptor instanceof CallableMemberDescriptor) {
|
if (memberVisibility == DescriptorVisibilities.LOCAL && memberDescriptor instanceof CallableMemberDescriptor) {
|
||||||
return ACC_PUBLIC;
|
return ACC_PUBLIC;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -564,7 +564,7 @@ public class AsmUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (memberDescriptor instanceof CallableDescriptor && memberVisibility == Visibilities.PROTECTED) {
|
if (memberDescriptor instanceof CallableDescriptor && memberVisibility == DescriptorVisibilities.PROTECTED) {
|
||||||
for (CallableDescriptor overridden : DescriptorUtils.getAllOverriddenDescriptors((CallableDescriptor) memberDescriptor)) {
|
for (CallableDescriptor overridden : DescriptorUtils.getAllOverriddenDescriptors((CallableDescriptor) memberDescriptor)) {
|
||||||
if (isJvmInterface(overridden.getContainingDeclaration())) {
|
if (isJvmInterface(overridden.getContainingDeclaration())) {
|
||||||
return ACC_PUBLIC;
|
return ACC_PUBLIC;
|
||||||
@@ -572,7 +572,7 @@ public class AsmUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Visibilities.isPrivate(memberVisibility)) {
|
if (!DescriptorVisibilities.isPrivate(memberVisibility)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -321,7 +321,7 @@ class CollectionStubMethodGenerator(
|
|||||||
)
|
)
|
||||||
|
|
||||||
child.modality = Modality.FINAL
|
child.modality = Modality.FINAL
|
||||||
child.visibility = Visibilities.PUBLIC
|
child.visibility = DescriptorVisibilities.PUBLIC
|
||||||
val typeParameters = descriptor.typeConstructor.parameters
|
val typeParameters = descriptor.typeConstructor.parameters
|
||||||
val newTypeParameters = ArrayList<TypeParameterDescriptor>(typeParameters.size)
|
val newTypeParameters = ArrayList<TypeParameterDescriptor>(typeParameters.size)
|
||||||
DescriptorSubstitutor.substituteTypeParameters(typeParameters, TypeSubstitution.EMPTY, child, newTypeParameters)
|
DescriptorSubstitutor.substituteTypeParameters(typeParameters, TypeSubstitution.EMPTY, child, newTypeParameters)
|
||||||
|
|||||||
+1
-1
@@ -268,7 +268,7 @@ class DefaultParameterValueSubstitutor(val state: GenerationState) {
|
|||||||
|
|
||||||
if (CodegenBinding.canHaveOuter(state.bindingContext, classDescriptor)) return false
|
if (CodegenBinding.canHaveOuter(state.bindingContext, classDescriptor)) return false
|
||||||
|
|
||||||
if (Visibilities.isPrivate(constructorDescriptor.visibility)) return false
|
if (DescriptorVisibilities.isPrivate(constructorDescriptor.visibility)) return false
|
||||||
|
|
||||||
if (constructorDescriptor.valueParameters.isEmpty()) return false
|
if (constructorDescriptor.valueParameters.isEmpty()) return false
|
||||||
if (classOrObject is KtClass && hasSecondaryConstructorsWithNoParameters(classOrObject)) return false
|
if (classOrObject is KtClass && hasSecondaryConstructorsWithNoParameters(classOrObject)) return false
|
||||||
|
|||||||
@@ -2181,7 +2181,7 @@ public class ExpressionCodegen extends KtVisitor<StackValue, StackValue> impleme
|
|||||||
}
|
}
|
||||||
else if (isBackingFieldMovedFromCompanion &&
|
else if (isBackingFieldMovedFromCompanion &&
|
||||||
(forceField ||
|
(forceField ||
|
||||||
(Visibilities.isPrivate(propertyDescriptor.getVisibility()) &&
|
(DescriptorVisibilities.isPrivate(propertyDescriptor.getVisibility()) &&
|
||||||
isDefaultAccessor(propertyDescriptor.getGetter()) && isDefaultAccessor(propertyDescriptor.getSetter())))) {
|
isDefaultAccessor(propertyDescriptor.getGetter()) && isDefaultAccessor(propertyDescriptor.getSetter())))) {
|
||||||
fieldAccessorKind = JvmCodegenUtil.isDebuggerContext(context) ? AccessorKind.NORMAL : AccessorKind.IN_CLASS_COMPANION;
|
fieldAccessorKind = JvmCodegenUtil.isDebuggerContext(context) ? AccessorKind.NORMAL : AccessorKind.IN_CLASS_COMPANION;
|
||||||
}
|
}
|
||||||
@@ -2254,7 +2254,7 @@ public class ExpressionCodegen extends KtVisitor<StackValue, StackValue> impleme
|
|||||||
skipPropertyAccessors = forceField;
|
skipPropertyAccessors = forceField;
|
||||||
|
|
||||||
if (JvmCodegenUtil.isDebuggerContext(context)
|
if (JvmCodegenUtil.isDebuggerContext(context)
|
||||||
&& Visibilities.isPrivate(propertyDescriptor.getVisibility())
|
&& DescriptorVisibilities.isPrivate(propertyDescriptor.getVisibility())
|
||||||
&& bindingContext.get(BACKING_FIELD_REQUIRED, propertyDescriptor) == Boolean.TRUE
|
&& bindingContext.get(BACKING_FIELD_REQUIRED, propertyDescriptor) == Boolean.TRUE
|
||||||
) {
|
) {
|
||||||
skipPropertyAccessors = true;
|
skipPropertyAccessors = true;
|
||||||
|
|||||||
@@ -1152,7 +1152,7 @@ public class FunctionCodegen {
|
|||||||
// $default methods are never private to be accessible from other class files (e.g. inner) without the need of synthetic accessors
|
// $default methods are never private to be accessible from other class files (e.g. inner) without the need of synthetic accessors
|
||||||
// $default methods are never protected to be accessible from subclass nested classes
|
// $default methods are never protected to be accessible from subclass nested classes
|
||||||
int visibilityFlag =
|
int visibilityFlag =
|
||||||
Visibilities.isPrivate(functionDescriptor.getVisibility()) || isInlineOnlyPrivateInBytecode(functionDescriptor)
|
DescriptorVisibilities.isPrivate(functionDescriptor.getVisibility()) || isInlineOnlyPrivateInBytecode(functionDescriptor)
|
||||||
? AsmUtil.NO_FLAG_PACKAGE_PRIVATE : Opcodes.ACC_PUBLIC;
|
? AsmUtil.NO_FLAG_PACKAGE_PRIVATE : Opcodes.ACC_PUBLIC;
|
||||||
int flags = visibilityFlag | getDeprecatedAccessFlag(functionDescriptor) | ACC_SYNTHETIC;
|
int flags = visibilityFlag | getDeprecatedAccessFlag(functionDescriptor) | ACC_SYNTHETIC;
|
||||||
if (!(functionDescriptor instanceof ConstructorDescriptor &&
|
if (!(functionDescriptor instanceof ConstructorDescriptor &&
|
||||||
@@ -1685,7 +1685,7 @@ public class FunctionCodegen {
|
|||||||
} else {
|
} else {
|
||||||
switch (kind) {
|
switch (kind) {
|
||||||
case DEFAULT_IMPLS: return true;
|
case DEFAULT_IMPLS: return true;
|
||||||
case IMPLEMENTATION: return !Visibilities.isPrivate(memberDescriptor.getVisibility()) && !isDefault && !isSynthetic;
|
case IMPLEMENTATION: return !DescriptorVisibilities.isPrivate(memberDescriptor.getVisibility()) && !isDefault && !isSynthetic;
|
||||||
default: return false;
|
default: return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -817,7 +817,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
|
|||||||
}
|
}
|
||||||
if (properVisibilityForCompanionObjectInstanceField &&
|
if (properVisibilityForCompanionObjectInstanceField &&
|
||||||
JvmCodegenUtil.isCompanionObjectInInterfaceNotIntrinsic(companionObjectDescriptor) &&
|
JvmCodegenUtil.isCompanionObjectInInterfaceNotIntrinsic(companionObjectDescriptor) &&
|
||||||
Visibilities.isPrivate(companionObjectDescriptor.getVisibility())) {
|
DescriptorVisibilities.isPrivate(companionObjectDescriptor.getVisibility())) {
|
||||||
fieldAccessFlags |= ACC_SYNTHETIC;
|
fieldAccessFlags |= ACC_SYNTHETIC;
|
||||||
}
|
}
|
||||||
StackValue.Field field = StackValue.singleton(companionObjectDescriptor, typeMapper);
|
StackValue.Field field = StackValue.singleton(companionObjectDescriptor, typeMapper);
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ class InterfaceImplBodyCodegen(
|
|||||||
if (memberDescriptor !is CallableMemberDescriptor) continue
|
if (memberDescriptor !is CallableMemberDescriptor) continue
|
||||||
|
|
||||||
if (memberDescriptor.kind.isReal) continue
|
if (memberDescriptor.kind.isReal) continue
|
||||||
if (memberDescriptor.visibility == Visibilities.INVISIBLE_FAKE) continue
|
if (memberDescriptor.visibility == DescriptorVisibilities.INVISIBLE_FAKE) continue
|
||||||
if (memberDescriptor.modality == Modality.ABSTRACT) continue
|
if (memberDescriptor.modality == Modality.ABSTRACT) continue
|
||||||
|
|
||||||
val implementation = findImplementationFromInterface(memberDescriptor) ?: continue
|
val implementation = findImplementationFromInterface(memberDescriptor) ?: continue
|
||||||
|
|||||||
@@ -221,7 +221,7 @@ public class JvmCodegenUtil {
|
|||||||
if (DescriptorPsiUtilsKt.hasBody(accessor)) return false;
|
if (DescriptorPsiUtilsKt.hasBody(accessor)) return false;
|
||||||
|
|
||||||
// If the accessor is private or final, it can't be overridden in the subclass and thus we can use direct access
|
// If the accessor is private or final, it can't be overridden in the subclass and thus we can use direct access
|
||||||
return Visibilities.isPrivate(accessor.getVisibility()) || accessor.getModality() == FINAL;
|
return DescriptorVisibilities.isPrivate(accessor.getVisibility()) || accessor.getModality() == FINAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isDebuggerContext(@NotNull CodegenContext context) {
|
public static boolean isDebuggerContext(@NotNull CodegenContext context) {
|
||||||
@@ -345,7 +345,7 @@ public class JvmCodegenUtil {
|
|||||||
|
|
||||||
public static boolean isNonIntrinsicPrivateCompanionObjectInInterface(@NotNull DeclarationDescriptorWithVisibility companionObject) {
|
public static boolean isNonIntrinsicPrivateCompanionObjectInInterface(@NotNull DeclarationDescriptorWithVisibility companionObject) {
|
||||||
return isCompanionObjectInInterfaceNotIntrinsic(companionObject) &&
|
return isCompanionObjectInInterfaceNotIntrinsic(companionObject) &&
|
||||||
Visibilities.isPrivate(companionObject.getVisibility());
|
DescriptorVisibilities.isPrivate(companionObject.getVisibility());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isDeclarationOfBigArityFunctionInvoke(@Nullable DeclarationDescriptor descriptor) {
|
public static boolean isDeclarationOfBigArityFunctionInvoke(@Nullable DeclarationDescriptor descriptor) {
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ class JvmRuntimeTypes(
|
|||||||
packageFragment, classKind, false, false, Name.identifier(name), SourceElement.NO_SOURCE, LockBasedStorageManager.NO_LOCKS
|
packageFragment, classKind, false, false, Name.identifier(name), SourceElement.NO_SOURCE, LockBasedStorageManager.NO_LOCKS
|
||||||
).apply {
|
).apply {
|
||||||
modality = Modality.FINAL
|
modality = Modality.FINAL
|
||||||
visibility = Visibilities.PUBLIC
|
visibility = DescriptorVisibilities.PUBLIC
|
||||||
setTypeParameterDescriptors(emptyList())
|
setTypeParameterDescriptors(emptyList())
|
||||||
createTypeConstructor()
|
createTypeConstructor()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.descriptors.annotations.Annotations;
|
|||||||
import org.jetbrains.kotlin.descriptors.impl.SimpleFunctionDescriptorImpl;
|
import org.jetbrains.kotlin.descriptors.impl.SimpleFunctionDescriptorImpl;
|
||||||
import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil;
|
import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil;
|
||||||
import org.jetbrains.kotlin.load.java.DescriptorsJvmAbiUtil;
|
import org.jetbrains.kotlin.load.java.DescriptorsJvmAbiUtil;
|
||||||
import org.jetbrains.kotlin.load.java.JavaVisibilities;
|
import org.jetbrains.kotlin.load.java.JavaDescriptorVisibilities;
|
||||||
import org.jetbrains.kotlin.load.java.JvmAbi;
|
import org.jetbrains.kotlin.load.java.JvmAbi;
|
||||||
import org.jetbrains.kotlin.name.Name;
|
import org.jetbrains.kotlin.name.Name;
|
||||||
import org.jetbrains.kotlin.name.SpecialNames;
|
import org.jetbrains.kotlin.name.SpecialNames;
|
||||||
@@ -469,7 +469,7 @@ public abstract class MemberCodegen<T extends KtPureElement/* TODO: & KtDeclarat
|
|||||||
Name.special("<clinit>"), SYNTHESIZED, KotlinSourceElementKt.toSourceElement(element));
|
Name.special("<clinit>"), SYNTHESIZED, KotlinSourceElementKt.toSourceElement(element));
|
||||||
clInit.initialize(null, null, Collections.emptyList(), Collections.emptyList(),
|
clInit.initialize(null, null, Collections.emptyList(), Collections.emptyList(),
|
||||||
DescriptorUtilsKt.getModule(descriptor).getBuiltIns().getUnitType(),
|
DescriptorUtilsKt.getModule(descriptor).getBuiltIns().getUnitType(),
|
||||||
Modality.FINAL, Visibilities.PRIVATE);
|
Modality.FINAL, DescriptorVisibilities.PRIVATE);
|
||||||
return clInit;
|
return clInit;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -882,7 +882,7 @@ public abstract class MemberCodegen<T extends KtPureElement/* TODO: & KtDeclarat
|
|||||||
!isCompanionObject(accessor.getContainingDeclaration());
|
!isCompanionObject(accessor.getContainingDeclaration());
|
||||||
boolean forceField = forceFieldForCompanionProperty ||
|
boolean forceField = forceFieldForCompanionProperty ||
|
||||||
syntheticBackingField ||
|
syntheticBackingField ||
|
||||||
original.getVisibility() == JavaVisibilities.PROTECTED_STATIC_VISIBILITY;
|
original.getVisibility() == JavaDescriptorVisibilities.PROTECTED_STATIC_VISIBILITY;
|
||||||
StackValue property = codegen.intermediateValueForProperty(
|
StackValue property = codegen.intermediateValueForProperty(
|
||||||
original, forceField, syntheticBackingField, accessor.getSuperCallTarget(),
|
original, forceField, syntheticBackingField, accessor.getSuperCallTarget(),
|
||||||
forceFieldForCompanionProperty, StackValue.none(), null,
|
forceFieldForCompanionProperty, StackValue.none(), null,
|
||||||
|
|||||||
@@ -224,7 +224,7 @@ class MultifileClassCodegenImpl(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun shouldGenerateInFacade(descriptor: MemberDescriptor): Boolean {
|
private fun shouldGenerateInFacade(descriptor: MemberDescriptor): Boolean {
|
||||||
if (Visibilities.isPrivate(descriptor.visibility)) return false
|
if (DescriptorVisibilities.isPrivate(descriptor.visibility)) return false
|
||||||
if (AsmUtil.getVisibilityAccessFlag(descriptor) == Opcodes.ACC_PRIVATE) return false
|
if (AsmUtil.getVisibilityAccessFlag(descriptor) == Opcodes.ACC_PRIVATE) return false
|
||||||
|
|
||||||
if (!state.classBuilderMode.generateBodies) return true
|
if (!state.classBuilderMode.generateBodies) return true
|
||||||
|
|||||||
@@ -160,7 +160,7 @@ public class PropertyCodegen {
|
|||||||
|
|
||||||
private void genBackingFieldAndAnnotations(@NotNull PropertyDescriptor descriptor) {
|
private void genBackingFieldAndAnnotations(@NotNull PropertyDescriptor descriptor) {
|
||||||
// Fields and '$annotations' methods for non-private const properties are generated in the multi-file facade
|
// Fields and '$annotations' methods for non-private const properties are generated in the multi-file facade
|
||||||
boolean isBackingFieldOwner = descriptor.isConst() && !Visibilities.isPrivate(descriptor.getVisibility())
|
boolean isBackingFieldOwner = descriptor.isConst() && !DescriptorVisibilities.isPrivate(descriptor.getVisibility())
|
||||||
? !(context instanceof MultifileClassPartContext)
|
? !(context instanceof MultifileClassPartContext)
|
||||||
: CodegenContextUtil.isImplementationOwner(context, descriptor);
|
: CodegenContextUtil.isImplementationOwner(context, descriptor);
|
||||||
|
|
||||||
@@ -218,7 +218,7 @@ public class PropertyCodegen {
|
|||||||
// and setter, in this case, the property can always be accessed through the accessor 'access<property name>$cp' and avoid some
|
// and setter, in this case, the property can always be accessed through the accessor 'access<property name>$cp' and avoid some
|
||||||
// useless indirection by using others accessors.
|
// useless indirection by using others accessors.
|
||||||
if (isCompanionObject(descriptor.getContainingDeclaration())) {
|
if (isCompanionObject(descriptor.getContainingDeclaration())) {
|
||||||
if (Visibilities.isPrivate(descriptor.getVisibility()) && isDefaultGetterAndSetter) {
|
if (DescriptorVisibilities.isPrivate(descriptor.getVisibility()) && isDefaultGetterAndSetter) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@@ -228,14 +228,14 @@ public class PropertyCodegen {
|
|||||||
if (isTopLevelInJvmMultifileClass(descriptor)) return true;
|
if (isTopLevelInJvmMultifileClass(descriptor)) return true;
|
||||||
|
|
||||||
// Private class properties have accessors only in cases when those accessors are non-trivial
|
// Private class properties have accessors only in cases when those accessors are non-trivial
|
||||||
if (Visibilities.isPrivate(descriptor.getVisibility())) {
|
if (DescriptorVisibilities.isPrivate(descriptor.getVisibility())) {
|
||||||
return !isDefaultAccessor;
|
return !isDefaultAccessor;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Non-private properties with private setter should not be generated for trivial properties
|
// Non-private properties with private setter should not be generated for trivial properties
|
||||||
// as the class will use direct field access instead
|
// as the class will use direct field access instead
|
||||||
//noinspection ConstantConditions
|
//noinspection ConstantConditions
|
||||||
if (accessor != null && accessor.isSetter() && Visibilities.isPrivate(descriptor.getSetter().getVisibility())) {
|
if (accessor != null && accessor.isSetter() && DescriptorVisibilities.isPrivate(descriptor.getSetter().getVisibility())) {
|
||||||
return !isDefaultAccessor;
|
return !isDefaultAccessor;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -254,12 +254,12 @@ public class PropertyCodegen {
|
|||||||
if (hasJvmFieldAnnotation(descriptor)) return false;
|
if (hasJvmFieldAnnotation(descriptor)) return false;
|
||||||
if (kind == OwnerKind.ERASED_INLINE_CLASS) return false;
|
if (kind == OwnerKind.ERASED_INLINE_CLASS) return false;
|
||||||
|
|
||||||
Visibility visibility = descriptor.getVisibility();
|
DescriptorVisibility visibility = descriptor.getVisibility();
|
||||||
if (InlineClassesUtilsKt.isInlineClass(descriptor.getContainingDeclaration())) {
|
if (InlineClassesUtilsKt.isInlineClass(descriptor.getContainingDeclaration())) {
|
||||||
return visibility.isPublicAPI();
|
return visibility.isPublicAPI();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return !Visibilities.isPrivate(visibility);
|
return !DescriptorVisibilities.isPrivate(visibility);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -512,7 +512,7 @@ public class PropertyCodegen {
|
|||||||
|
|
||||||
private void generateAccessor(@Nullable KtPropertyAccessor accessor, @NotNull PropertyAccessorDescriptor descriptor) {
|
private void generateAccessor(@Nullable KtPropertyAccessor accessor, @NotNull PropertyAccessorDescriptor descriptor) {
|
||||||
if (context instanceof MultifileClassFacadeContext &&
|
if (context instanceof MultifileClassFacadeContext &&
|
||||||
(Visibilities.isPrivate(descriptor.getVisibility()) ||
|
(DescriptorVisibilities.isPrivate(descriptor.getVisibility()) ||
|
||||||
AsmUtil.getVisibilityAccessFlag(descriptor) == Opcodes.ACC_PRIVATE)) {
|
AsmUtil.getVisibilityAccessFlag(descriptor) == Opcodes.ACC_PRIVATE)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ public class SamWrapperCodegen {
|
|||||||
SimpleFunctionDescriptor erasedInterfaceFunction = samType.getOriginalAbstractMethod().copy(
|
SimpleFunctionDescriptor erasedInterfaceFunction = samType.getOriginalAbstractMethod().copy(
|
||||||
classDescriptor,
|
classDescriptor,
|
||||||
Modality.FINAL,
|
Modality.FINAL,
|
||||||
Visibilities.PUBLIC,
|
DescriptorVisibilities.PUBLIC,
|
||||||
CallableMemberDescriptor.Kind.SYNTHESIZED,
|
CallableMemberDescriptor.Kind.SYNTHESIZED,
|
||||||
/*copyOverrides=*/ false
|
/*copyOverrides=*/ false
|
||||||
);
|
);
|
||||||
@@ -268,12 +268,12 @@ public class SamWrapperCodegen {
|
|||||||
if (!(descriptor instanceof CallableMemberDescriptor)) continue;
|
if (!(descriptor instanceof CallableMemberDescriptor)) continue;
|
||||||
CallableMemberDescriptor member = (CallableMemberDescriptor) descriptor;
|
CallableMemberDescriptor member = (CallableMemberDescriptor) descriptor;
|
||||||
if (member.getModality() == Modality.ABSTRACT ||
|
if (member.getModality() == Modality.ABSTRACT ||
|
||||||
Visibilities.isPrivate(member.getVisibility()) ||
|
DescriptorVisibilities.isPrivate(member.getVisibility()) ||
|
||||||
member.getVisibility() == Visibilities.INVISIBLE_FAKE ||
|
member.getVisibility() == DescriptorVisibilities.INVISIBLE_FAKE ||
|
||||||
DescriptorUtils.isMethodOfAny(member)) continue;
|
DescriptorUtils.isMethodOfAny(member)) continue;
|
||||||
|
|
||||||
for (Map.Entry<FunctionDescriptor, FunctionDescriptor> entry : CodegenUtil.INSTANCE.copyFunctions(
|
for (Map.Entry<FunctionDescriptor, FunctionDescriptor> entry : CodegenUtil.INSTANCE.copyFunctions(
|
||||||
member, member, classDescriptor, Modality.OPEN, Visibilities.PUBLIC, CallableMemberDescriptor.Kind.DECLARATION, false
|
member, member, classDescriptor, Modality.OPEN, DescriptorVisibilities.PUBLIC, CallableMemberDescriptor.Kind.DECLARATION, false
|
||||||
).entrySet()) {
|
).entrySet()) {
|
||||||
ClassBodyCodegen.generateDelegationToDefaultImpl(entry.getKey(), entry.getValue(), receiverType, functionCodegen, state, false);
|
ClassBodyCodegen.generateDelegationToDefaultImpl(entry.getKey(), entry.getValue(), receiverType, functionCodegen, state, false);
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -616,7 +616,7 @@ class CodegenAnnotatingVisitor extends KtVisitorVoid {
|
|||||||
String nameForClassOrPackageMember = getNameForClassOrPackageMember(functionDescriptor);
|
String nameForClassOrPackageMember = getNameForClassOrPackageMember(functionDescriptor);
|
||||||
|
|
||||||
if (functionDescriptor instanceof SimpleFunctionDescriptor && functionDescriptor.isSuspend() &&
|
if (functionDescriptor instanceof SimpleFunctionDescriptor && functionDescriptor.isSuspend() &&
|
||||||
!functionDescriptor.getVisibility().equals(Visibilities.LOCAL)) {
|
!functionDescriptor.getVisibility().equals(DescriptorVisibilities.LOCAL)) {
|
||||||
|
|
||||||
if (nameForClassOrPackageMember != null) {
|
if (nameForClassOrPackageMember != null) {
|
||||||
nameStack.push(nameForClassOrPackageMember);
|
nameStack.push(nameForClassOrPackageMember);
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.codegen.state.GenerationState;
|
|||||||
import org.jetbrains.kotlin.codegen.state.KotlinTypeMapper;
|
import org.jetbrains.kotlin.codegen.state.KotlinTypeMapper;
|
||||||
import org.jetbrains.kotlin.config.JvmDefaultMode;
|
import org.jetbrains.kotlin.config.JvmDefaultMode;
|
||||||
import org.jetbrains.kotlin.descriptors.*;
|
import org.jetbrains.kotlin.descriptors.*;
|
||||||
import org.jetbrains.kotlin.load.java.JavaVisibilities;
|
import org.jetbrains.kotlin.load.java.JavaDescriptorVisibilities;
|
||||||
import org.jetbrains.kotlin.resolve.sam.SamConstructorDescriptor;
|
import org.jetbrains.kotlin.resolve.sam.SamConstructorDescriptor;
|
||||||
import org.jetbrains.kotlin.name.Name;
|
import org.jetbrains.kotlin.name.Name;
|
||||||
import org.jetbrains.kotlin.psi.KtFile;
|
import org.jetbrains.kotlin.psi.KtFile;
|
||||||
@@ -625,7 +625,7 @@ public abstract class CodegenContext<T extends DeclarationDescriptor> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (descriptorContext == null &&
|
if (descriptorContext == null &&
|
||||||
JavaVisibilities.PROTECTED_STATIC_VISIBILITY == descriptor.getVisibility() &&
|
JavaDescriptorVisibilities.PROTECTED_STATIC_VISIBILITY == descriptor.getVisibility() &&
|
||||||
(!(descriptor.getOriginal() instanceof SamConstructorDescriptor))) {
|
(!(descriptor.getOriginal() instanceof SamConstructorDescriptor))) {
|
||||||
//seems we need static receiver in resolved call
|
//seems we need static receiver in resolved call
|
||||||
descriptorContext = ExpressionCodegen.getParentContextSubclassOf((ClassDescriptor) enclosed, this);
|
descriptorContext = ExpressionCodegen.getParentContextSubclassOf((ClassDescriptor) enclosed, this);
|
||||||
@@ -672,7 +672,7 @@ public abstract class CodegenContext<T extends DeclarationDescriptor> {
|
|||||||
PropertySetterDescriptor setter = propertyDescriptor.getSetter();
|
PropertySetterDescriptor setter = propertyDescriptor.getSetter();
|
||||||
|
|
||||||
int setterAccessFlag = propertyAccessFlag;
|
int setterAccessFlag = propertyAccessFlag;
|
||||||
if (setter != null && setter.getVisibility().normalize() != Visibilities.INVISIBLE_FAKE) {
|
if (setter != null && setter.getVisibility().normalize() != DescriptorVisibilities.INVISIBLE_FAKE) {
|
||||||
setterAccessFlag = propertyAccessFlag | getVisibilityAccessFlag(setter);
|
setterAccessFlag = propertyAccessFlag | getVisibilityAccessFlag(setter);
|
||||||
}
|
}
|
||||||
boolean setterAccessorRequired = isAccessorRequired(setterAccessFlag, unwrappedDescriptor, descriptorContext,
|
boolean setterAccessorRequired = isAccessorRequired(setterAccessFlag, unwrappedDescriptor, descriptorContext,
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ abstract class AbstractCoroutineCodegen(
|
|||||||
},
|
},
|
||||||
builtIns.nullableAnyType,
|
builtIns.nullableAnyType,
|
||||||
Modality.FINAL,
|
Modality.FINAL,
|
||||||
Visibilities.PUBLIC,
|
DescriptorVisibilities.PUBLIC,
|
||||||
userDataForDoResume
|
userDataForDoResume
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -220,7 +220,7 @@ class CoroutineCodegenForLambda private constructor(
|
|||||||
state.languageVersionSettings.supportsFeature(LanguageFeature.ReleaseCoroutines)
|
state.languageVersionSettings.supportsFeature(LanguageFeature.ReleaseCoroutines)
|
||||||
),
|
),
|
||||||
funDescriptor.modality,
|
funDescriptor.modality,
|
||||||
Visibilities.PUBLIC
|
DescriptorVisibilities.PUBLIC
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -494,7 +494,7 @@ fun Method.getImplForOpenMethod(ownerInternalName: String) =
|
|||||||
|
|
||||||
fun FunctionDescriptor.isSuspendLambdaOrLocalFunction() = this.isSuspend && when (this) {
|
fun FunctionDescriptor.isSuspendLambdaOrLocalFunction() = this.isSuspend && when (this) {
|
||||||
is AnonymousFunctionDescriptor -> this.isSuspendLambda
|
is AnonymousFunctionDescriptor -> this.isSuspendLambda
|
||||||
is SimpleFunctionDescriptor -> this.visibility == Visibilities.LOCAL
|
is SimpleFunctionDescriptor -> this.visibility == DescriptorVisibilities.LOCAL
|
||||||
else -> false
|
else -> false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -31,7 +31,7 @@ internal class FictitiousArrayConstructor(arrayClass: ClassDescriptor) : SimpleF
|
|||||||
return FictitiousArrayConstructor(arrayClass).apply {
|
return FictitiousArrayConstructor(arrayClass).apply {
|
||||||
this.initialize(
|
this.initialize(
|
||||||
null, null, arrayConstructor.typeParameters, arrayConstructor.valueParameters, arrayClass.defaultType,
|
null, null, arrayConstructor.typeParameters, arrayConstructor.valueParameters, arrayClass.defaultType,
|
||||||
Modality.FINAL, Visibilities.PUBLIC
|
Modality.FINAL, DescriptorVisibilities.PUBLIC
|
||||||
)
|
)
|
||||||
this.isInline = true
|
this.isInline = true
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -63,15 +63,15 @@ class JvmSerializerExtension @JvmOverloads constructor(
|
|||||||
|
|
||||||
override fun shouldUseTypeTable(): Boolean = useTypeTable
|
override fun shouldUseTypeTable(): Boolean = useTypeTable
|
||||||
override fun shouldSerializeFunction(descriptor: FunctionDescriptor): Boolean {
|
override fun shouldSerializeFunction(descriptor: FunctionDescriptor): Boolean {
|
||||||
return classBuilderMode != ClassBuilderMode.ABI || descriptor.visibility != Visibilities.PRIVATE
|
return classBuilderMode != ClassBuilderMode.ABI || descriptor.visibility != DescriptorVisibilities.PRIVATE
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun shouldSerializeProperty(descriptor: PropertyDescriptor): Boolean {
|
override fun shouldSerializeProperty(descriptor: PropertyDescriptor): Boolean {
|
||||||
return classBuilderMode != ClassBuilderMode.ABI || descriptor.visibility != Visibilities.PRIVATE
|
return classBuilderMode != ClassBuilderMode.ABI || descriptor.visibility != DescriptorVisibilities.PRIVATE
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun shouldSerializeTypeAlias(descriptor: TypeAliasDescriptor): Boolean {
|
override fun shouldSerializeTypeAlias(descriptor: TypeAliasDescriptor): Boolean {
|
||||||
return classBuilderMode != ClassBuilderMode.ABI || descriptor.visibility != Visibilities.PRIVATE
|
return classBuilderMode != ClassBuilderMode.ABI || descriptor.visibility != DescriptorVisibilities.PRIVATE
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun shouldSerializeNestedClass(descriptor: ClassDescriptor): Boolean {
|
override fun shouldSerializeNestedClass(descriptor: ClassDescriptor): Boolean {
|
||||||
@@ -233,7 +233,7 @@ class JvmSerializerExtension @JvmOverloads constructor(
|
|||||||
|
|
||||||
private fun FunctionDescriptor.needsInlineParameterNullCheckRequirement(): Boolean =
|
private fun FunctionDescriptor.needsInlineParameterNullCheckRequirement(): Boolean =
|
||||||
isInline && !isSuspend && !isParamAssertionsDisabled &&
|
isInline && !isSuspend && !isParamAssertionsDisabled &&
|
||||||
!Visibilities.isPrivate(visibility) &&
|
!DescriptorVisibilities.isPrivate(visibility) &&
|
||||||
(valueParameters.any { it.type.isFunctionType } || extensionReceiverParameter?.type?.isFunctionType == true)
|
(valueParameters.any { it.type.isFunctionType } || extensionReceiverParameter?.type?.isFunctionType == true)
|
||||||
|
|
||||||
override fun serializeProperty(
|
override fun serializeProperty(
|
||||||
|
|||||||
+2
-2
@@ -202,7 +202,7 @@ class BuilderFactoryForDuplicateSignatureDiagnostics(
|
|||||||
fun processMember(member: DeclarationDescriptor?) {
|
fun processMember(member: DeclarationDescriptor?) {
|
||||||
if (member !is CallableMemberDescriptor) return
|
if (member !is CallableMemberDescriptor) return
|
||||||
// a member of super is not visible: no override
|
// a member of super is not visible: no override
|
||||||
if (member.visibility == Visibilities.INVISIBLE_FAKE) return
|
if (member.visibility == DescriptorVisibilities.INVISIBLE_FAKE) return
|
||||||
// if a signature clashes with a SAM-adapter or something like that, there's no harm
|
// if a signature clashes with a SAM-adapter or something like that, there's no harm
|
||||||
if (isOrOverridesSamAdapter(member)) return
|
if (isOrOverridesSamAdapter(member)) return
|
||||||
|
|
||||||
@@ -231,7 +231,7 @@ class BuilderFactoryForDuplicateSignatureDiagnostics(
|
|||||||
descriptor.getParentJavaStaticClassScope()?.run {
|
descriptor.getParentJavaStaticClassScope()?.run {
|
||||||
getContributedDescriptors(DescriptorKindFilter.FUNCTIONS)
|
getContributedDescriptors(DescriptorKindFilter.FUNCTIONS)
|
||||||
.filter {
|
.filter {
|
||||||
it is FunctionDescriptor && Visibilities.isVisibleIgnoringReceiver(it, descriptor)
|
it is FunctionDescriptor && DescriptorVisibilities.isVisibleIgnoringReceiver(it, descriptor)
|
||||||
}
|
}
|
||||||
.forEach(::processMember)
|
.forEach(::processMember)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -449,7 +449,7 @@ class KotlinTypeMapper @JvmOverloads constructor(
|
|||||||
else
|
else
|
||||||
mapClass(ownerForDefault)
|
mapClass(ownerForDefault)
|
||||||
|
|
||||||
if (isInterface && (superCall || descriptor.visibility == Visibilities.PRIVATE || isAccessor(descriptor))) {
|
if (isInterface && (superCall || descriptor.visibility == DescriptorVisibilities.PRIVATE || isAccessor(descriptor))) {
|
||||||
thisClass = mapClass(functionParent)
|
thisClass = mapClass(functionParent)
|
||||||
dispatchReceiverKotlinType = functionParent.defaultType
|
dispatchReceiverKotlinType = functionParent.defaultType
|
||||||
if (declarationOwner is JavaClassDescriptor ||
|
if (declarationOwner is JavaClassDescriptor ||
|
||||||
@@ -495,7 +495,7 @@ class KotlinTypeMapper @JvmOverloads constructor(
|
|||||||
isInterfaceMember = true
|
isInterfaceMember = true
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
val isPrivateFunInvocation = Visibilities.isPrivate(functionDescriptor.visibility) && !functionDescriptor.isSuspend
|
val isPrivateFunInvocation = DescriptorVisibilities.isPrivate(functionDescriptor.visibility) && !functionDescriptor.isSuspend
|
||||||
invokeOpcode = if (superCall || isPrivateFunInvocation) INVOKESPECIAL else INVOKEVIRTUAL
|
invokeOpcode = if (superCall || isPrivateFunInvocation) INVOKESPECIAL else INVOKEVIRTUAL
|
||||||
isInterfaceMember = false
|
isInterfaceMember = false
|
||||||
}
|
}
|
||||||
@@ -677,7 +677,7 @@ class KotlinTypeMapper @JvmOverloads constructor(
|
|||||||
newName = sanitizeNameIfNeeded(newName, languageVersionSettings)
|
newName = sanitizeNameIfNeeded(newName, languageVersionSettings)
|
||||||
|
|
||||||
if (isTopLevelDeclaration(descriptor)) {
|
if (isTopLevelDeclaration(descriptor)) {
|
||||||
if (Visibilities.isPrivate(descriptor.visibility) && descriptor !is ConstructorDescriptor && "<clinit>" != newName) {
|
if (DescriptorVisibilities.isPrivate(descriptor.visibility) && descriptor !is ConstructorDescriptor && "<clinit>" != newName) {
|
||||||
val partName = getPartSimpleNameForMangling(descriptor)
|
val partName = getPartSimpleNameForMangling(descriptor)
|
||||||
if (partName != null) return "$newName$$partName"
|
if (partName != null) return "$newName$$partName"
|
||||||
}
|
}
|
||||||
@@ -685,7 +685,7 @@ class KotlinTypeMapper @JvmOverloads constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
return if (descriptor !is ConstructorDescriptor &&
|
return if (descriptor !is ConstructorDescriptor &&
|
||||||
descriptor.visibility === Visibilities.INTERNAL &&
|
descriptor.visibility === DescriptorVisibilities.INTERNAL &&
|
||||||
!descriptor.isPublishedApi()
|
!descriptor.isPublishedApi()
|
||||||
) {
|
) {
|
||||||
InternalNameMapper.mangleInternalName(newName, getModuleName(descriptor))
|
InternalNameMapper.mangleInternalName(newName, getModuleName(descriptor))
|
||||||
@@ -1297,7 +1297,7 @@ class KotlinTypeMapper @JvmOverloads constructor(
|
|||||||
val visibility = descriptor.visibility
|
val visibility = descriptor.visibility
|
||||||
return if (!publicFacade ||
|
return if (!publicFacade ||
|
||||||
isNonConstProperty(descriptor) ||
|
isNonConstProperty(descriptor) ||
|
||||||
Visibilities.isPrivate(visibility) ||
|
DescriptorVisibilities.isPrivate(visibility) ||
|
||||||
isAccessor/*Cause of KT-9603*/) {
|
isAccessor/*Cause of KT-9603*/) {
|
||||||
JvmFileClassUtil.getFileClassInternalName(file)
|
JvmFileClassUtil.getFileClassInternalName(file)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
+4
-5
@@ -8,16 +8,15 @@ package org.jetbrains.kotlin.fir.backend.jvm
|
|||||||
import org.jetbrains.kotlin.fir.JavaVisibilities
|
import org.jetbrains.kotlin.fir.JavaVisibilities
|
||||||
import org.jetbrains.kotlin.fir.Visibility
|
import org.jetbrains.kotlin.fir.Visibility
|
||||||
import org.jetbrains.kotlin.fir.backend.Fir2IrVisibilityConverter
|
import org.jetbrains.kotlin.fir.backend.Fir2IrVisibilityConverter
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility as OldVisibility
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibility as OldVisibility
|
||||||
import org.jetbrains.kotlin.load.java.JavaVisibilities as OldJavaVisibilities
|
|
||||||
|
|
||||||
|
|
||||||
object FirJvmVisibilityConverter : Fir2IrVisibilityConverter() {
|
object FirJvmVisibilityConverter : Fir2IrVisibilityConverter() {
|
||||||
override fun convertPlatformVisibility(visibility: Visibility): OldVisibility {
|
override fun convertPlatformVisibility(visibility: Visibility): OldVisibility {
|
||||||
return when (visibility) {
|
return when (visibility) {
|
||||||
JavaVisibilities.PackageVisibility -> OldJavaVisibilities.PACKAGE_VISIBILITY
|
JavaVisibilities.PackageVisibility -> org.jetbrains.kotlin.load.java.JavaDescriptorVisibilities.PACKAGE_VISIBILITY
|
||||||
JavaVisibilities.ProtectedStaticVisibility -> OldJavaVisibilities.PROTECTED_STATIC_VISIBILITY
|
JavaVisibilities.ProtectedStaticVisibility -> org.jetbrains.kotlin.load.java.JavaDescriptorVisibilities.PROTECTED_STATIC_VISIBILITY
|
||||||
JavaVisibilities.ProtectedAndPackage -> OldJavaVisibilities.PROTECTED_AND_PACKAGE
|
JavaVisibilities.ProtectedAndPackage -> org.jetbrains.kotlin.load.java.JavaDescriptorVisibilities.PROTECTED_AND_PACKAGE
|
||||||
else -> error("Unknown visibility: $this")
|
else -> error("Unknown visibility: $this")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -56,7 +56,7 @@ import org.jetbrains.kotlin.name.ClassId
|
|||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
|
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility as OldVisibility
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibility as OldVisibility
|
||||||
|
|
||||||
@OptIn(ObsoleteDescriptorBasedAPI::class)
|
@OptIn(ObsoleteDescriptorBasedAPI::class)
|
||||||
class Fir2IrDeclarationStorage(
|
class Fir2IrDeclarationStorage(
|
||||||
|
|||||||
+10
-10
@@ -7,8 +7,8 @@ package org.jetbrains.kotlin.fir.backend
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.fir.Visibilities
|
import org.jetbrains.kotlin.fir.Visibilities
|
||||||
import org.jetbrains.kotlin.fir.Visibility
|
import org.jetbrains.kotlin.fir.Visibility
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility as OldVisibility
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibility as OldVisibility
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities as OldVisibilities
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities as OldVisibilities
|
||||||
|
|
||||||
abstract class Fir2IrVisibilityConverter {
|
abstract class Fir2IrVisibilityConverter {
|
||||||
object Default : Fir2IrVisibilityConverter() {
|
object Default : Fir2IrVisibilityConverter() {
|
||||||
@@ -19,14 +19,14 @@ abstract class Fir2IrVisibilityConverter {
|
|||||||
|
|
||||||
fun convertToOldVisibility(visibility: Visibility): OldVisibility {
|
fun convertToOldVisibility(visibility: Visibility): OldVisibility {
|
||||||
return when (visibility) {
|
return when (visibility) {
|
||||||
Visibilities.Private -> OldVisibilities.PRIVATE
|
Visibilities.Private -> org.jetbrains.kotlin.descriptors.DescriptorVisibilities.PRIVATE
|
||||||
Visibilities.PrivateToThis -> OldVisibilities.PRIVATE_TO_THIS
|
Visibilities.PrivateToThis -> org.jetbrains.kotlin.descriptors.DescriptorVisibilities.PRIVATE_TO_THIS
|
||||||
Visibilities.Protected -> OldVisibilities.PROTECTED
|
Visibilities.Protected -> org.jetbrains.kotlin.descriptors.DescriptorVisibilities.PROTECTED
|
||||||
Visibilities.Internal -> OldVisibilities.INTERNAL
|
Visibilities.Internal -> org.jetbrains.kotlin.descriptors.DescriptorVisibilities.INTERNAL
|
||||||
Visibilities.Public -> OldVisibilities.PUBLIC
|
Visibilities.Public -> org.jetbrains.kotlin.descriptors.DescriptorVisibilities.PUBLIC
|
||||||
Visibilities.Local -> OldVisibilities.LOCAL
|
Visibilities.Local -> org.jetbrains.kotlin.descriptors.DescriptorVisibilities.LOCAL
|
||||||
Visibilities.InvisibleFake -> OldVisibilities.INVISIBLE_FAKE
|
Visibilities.InvisibleFake -> org.jetbrains.kotlin.descriptors.DescriptorVisibilities.INVISIBLE_FAKE
|
||||||
Visibilities.Unknown -> OldVisibilities.UNKNOWN
|
Visibilities.Unknown -> org.jetbrains.kotlin.descriptors.DescriptorVisibilities.UNKNOWN
|
||||||
else -> convertPlatformVisibility(visibility)
|
else -> convertPlatformVisibility(visibility)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -39,7 +39,7 @@ import org.jetbrains.kotlin.name.Name
|
|||||||
import org.jetbrains.kotlin.psi.KtPropertyDelegate
|
import org.jetbrains.kotlin.psi.KtPropertyDelegate
|
||||||
import org.jetbrains.kotlin.psi2ir.generators.hasNoSideEffects
|
import org.jetbrains.kotlin.psi2ir.generators.hasNoSideEffects
|
||||||
import org.jetbrains.kotlin.utils.SmartList
|
import org.jetbrains.kotlin.utils.SmartList
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities as OldVisibilities
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities as OldVisibilities
|
||||||
|
|
||||||
class CallAndReferenceGenerator(
|
class CallAndReferenceGenerator(
|
||||||
private val components: Fir2IrComponents,
|
private val components: Fir2IrComponents,
|
||||||
@@ -254,7 +254,7 @@ class CallAndReferenceGenerator(
|
|||||||
IrDeclarationOrigin.ADAPTER_FOR_CALLABLE_REFERENCE,
|
IrDeclarationOrigin.ADAPTER_FOR_CALLABLE_REFERENCE,
|
||||||
irAdapterSymbol,
|
irAdapterSymbol,
|
||||||
adaptee.name,
|
adaptee.name,
|
||||||
OldVisibilities.LOCAL,
|
org.jetbrains.kotlin.descriptors.DescriptorVisibilities.LOCAL,
|
||||||
Modality.FINAL,
|
Modality.FINAL,
|
||||||
returnType,
|
returnType,
|
||||||
isInline = firAdaptee.isInline,
|
isInline = firAdaptee.isInline,
|
||||||
|
|||||||
+1
-1
@@ -31,7 +31,7 @@ import org.jetbrains.kotlin.ir.util.*
|
|||||||
import org.jetbrains.kotlin.ir.util.DataClassMembersGenerator
|
import org.jetbrains.kotlin.ir.util.DataClassMembersGenerator
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities as OldVisibilities
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities as OldVisibilities
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A generator that generates synthetic members of data class as well as part of inline class.
|
* A generator that generates synthetic members of data class as well as part of inline class.
|
||||||
|
|||||||
+2
-2
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.fir.backend.generators
|
|||||||
import org.jetbrains.kotlin.backend.common.ir.isFinalClass
|
import org.jetbrains.kotlin.backend.common.ir.isFinalClass
|
||||||
import org.jetbrains.kotlin.backend.common.ir.isOverridable
|
import org.jetbrains.kotlin.backend.common.ir.isOverridable
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities as OldVisibilities
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities as OldVisibilities
|
||||||
import org.jetbrains.kotlin.fir.Visibilities
|
import org.jetbrains.kotlin.fir.Visibilities
|
||||||
import org.jetbrains.kotlin.fir.backend.*
|
import org.jetbrains.kotlin.fir.backend.*
|
||||||
import org.jetbrains.kotlin.fir.backend.declareThisReceiverParameter
|
import org.jetbrains.kotlin.fir.backend.declareThisReceiverParameter
|
||||||
@@ -142,7 +142,7 @@ internal class DelegatedMemberGenerator(
|
|||||||
private fun IrDeclaration.isOverridable(): Boolean {
|
private fun IrDeclaration.isOverridable(): Boolean {
|
||||||
return when (this) {
|
return when (this) {
|
||||||
is IrSimpleFunction -> this.isOverridable
|
is IrSimpleFunction -> this.isOverridable
|
||||||
is IrProperty -> visibility != OldVisibilities.PRIVATE && modality != Modality.FINAL && (parent as? IrClass)?.isFinalClass != true
|
is IrProperty -> visibility != org.jetbrains.kotlin.descriptors.DescriptorVisibilities.PRIVATE && modality != Modality.FINAL && (parent as? IrClass)?.isFinalClass != true
|
||||||
else -> false
|
else -> false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.ir.types.IrErrorType
|
|||||||
import org.jetbrains.kotlin.ir.types.IrSimpleType
|
import org.jetbrains.kotlin.ir.types.IrSimpleType
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
import org.jetbrains.kotlin.ir.types.IrTypeProjection
|
import org.jetbrains.kotlin.ir.types.IrTypeProjection
|
||||||
import org.jetbrains.kotlin.load.java.JavaVisibilities
|
import org.jetbrains.kotlin.load.java.JavaDescriptorVisibilities
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
class FakeOverrideGenerator(
|
class FakeOverrideGenerator(
|
||||||
@@ -46,7 +46,7 @@ class FakeOverrideGenerator(
|
|||||||
|
|
||||||
private fun FirCallableMemberDeclaration<*>.allowsToHaveFakeOverrideIn(klass: FirClass<*>): Boolean {
|
private fun FirCallableMemberDeclaration<*>.allowsToHaveFakeOverrideIn(klass: FirClass<*>): Boolean {
|
||||||
if (!allowsToHaveFakeOverride) return false
|
if (!allowsToHaveFakeOverride) return false
|
||||||
if (this.visibility != JavaVisibilities.PACKAGE_VISIBILITY) return true
|
if (this.visibility != JavaDescriptorVisibilities.PACKAGE_VISIBILITY) return true
|
||||||
return this.symbol.callableId.packageName == klass.symbol.classId.packageFqName
|
return this.symbol.callableId.packageName == klass.symbol.classId.packageFqName
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
|||||||
import org.jetbrains.kotlin.ir.types.IrType
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl
|
import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility as OldVisibility
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibility as OldVisibility
|
||||||
|
|
||||||
class Fir2IrLazyClass(
|
class Fir2IrLazyClass(
|
||||||
components: Fir2IrComponents,
|
components: Fir2IrComponents,
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.ir.util.parentClassOrNull
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
|
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility as OldVisibility
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibility as OldVisibility
|
||||||
|
|
||||||
class Fir2IrLazyConstructor(
|
class Fir2IrLazyConstructor(
|
||||||
components: Fir2IrComponents,
|
components: Fir2IrComponents,
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.ir.types.IrType
|
|||||||
import org.jetbrains.kotlin.ir.util.isInterface
|
import org.jetbrains.kotlin.ir.util.isInterface
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
|
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility as OldVisibility
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibility as OldVisibility
|
||||||
|
|
||||||
class Fir2IrLazyProperty(
|
class Fir2IrLazyProperty(
|
||||||
components: Fir2IrComponents,
|
components: Fir2IrComponents,
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol
|
|||||||
import org.jetbrains.kotlin.ir.types.IrType
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
|
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility as OldVisibility
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibility as OldVisibility
|
||||||
|
|
||||||
class Fir2IrLazySimpleFunction(
|
class Fir2IrLazySimpleFunction(
|
||||||
components: Fir2IrComponents,
|
components: Fir2IrComponents,
|
||||||
|
|||||||
@@ -40,9 +40,7 @@ import org.jetbrains.kotlin.load.java.typeEnhancement.TypeComponentPosition
|
|||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.types.Variance.*
|
import org.jetbrains.kotlin.types.Variance.*
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities as OldVisibilities
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibility as OldVisibility
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility as OldVisibility
|
|
||||||
import org.jetbrains.kotlin.load.java.JavaVisibilities as OldJavaVisibilities
|
|
||||||
|
|
||||||
internal val JavaModifierListOwner.modality: Modality
|
internal val JavaModifierListOwner.modality: Modality
|
||||||
get() = when {
|
get() = when {
|
||||||
@@ -527,16 +525,16 @@ private fun JavaType.toFirResolvedTypeRef(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun OldVisibility.toFirVisibility(): Visibility = when (this) {
|
fun OldVisibility.toFirVisibility(): Visibility = when (this) {
|
||||||
OldVisibilities.PRIVATE -> Visibilities.Private
|
org.jetbrains.kotlin.descriptors.DescriptorVisibilities.PRIVATE -> Visibilities.Private
|
||||||
OldVisibilities.PRIVATE_TO_THIS -> Visibilities.PrivateToThis
|
org.jetbrains.kotlin.descriptors.DescriptorVisibilities.PRIVATE_TO_THIS -> Visibilities.PrivateToThis
|
||||||
OldVisibilities.PROTECTED -> Visibilities.Protected
|
org.jetbrains.kotlin.descriptors.DescriptorVisibilities.PROTECTED -> Visibilities.Protected
|
||||||
OldVisibilities.INTERNAL -> Visibilities.Internal
|
org.jetbrains.kotlin.descriptors.DescriptorVisibilities.INTERNAL -> Visibilities.Internal
|
||||||
OldVisibilities.PUBLIC -> Visibilities.Public
|
org.jetbrains.kotlin.descriptors.DescriptorVisibilities.PUBLIC -> Visibilities.Public
|
||||||
OldVisibilities.LOCAL -> Visibilities.Local
|
org.jetbrains.kotlin.descriptors.DescriptorVisibilities.LOCAL -> Visibilities.Local
|
||||||
OldVisibilities.INVISIBLE_FAKE -> Visibilities.InvisibleFake
|
org.jetbrains.kotlin.descriptors.DescriptorVisibilities.INVISIBLE_FAKE -> Visibilities.InvisibleFake
|
||||||
OldVisibilities.UNKNOWN -> Visibilities.Unknown
|
org.jetbrains.kotlin.descriptors.DescriptorVisibilities.UNKNOWN -> Visibilities.Unknown
|
||||||
OldJavaVisibilities.PACKAGE_VISIBILITY -> JavaVisibilities.PackageVisibility
|
org.jetbrains.kotlin.load.java.JavaDescriptorVisibilities.PACKAGE_VISIBILITY -> JavaVisibilities.PackageVisibility
|
||||||
OldJavaVisibilities.PROTECTED_AND_PACKAGE -> JavaVisibilities.ProtectedAndPackage
|
org.jetbrains.kotlin.load.java.JavaDescriptorVisibilities.PROTECTED_AND_PACKAGE -> JavaVisibilities.ProtectedAndPackage
|
||||||
OldJavaVisibilities.PROTECTED_STATIC_VISIBILITY -> JavaVisibilities.ProtectedStaticVisibility
|
org.jetbrains.kotlin.load.java.JavaDescriptorVisibilities.PROTECTED_STATIC_VISIBILITY -> JavaVisibilities.ProtectedStaticVisibility
|
||||||
else -> error("Unknown visiblity: $this")
|
else -> error("Unknown visiblity: $this")
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -23,7 +23,7 @@ import com.intellij.psi.PsiTypeParameter
|
|||||||
import com.intellij.psi.search.SearchScope
|
import com.intellij.psi.search.SearchScope
|
||||||
import org.jetbrains.kotlin.asJava.KtLightClassMarker
|
import org.jetbrains.kotlin.asJava.KtLightClassMarker
|
||||||
import org.jetbrains.kotlin.asJava.isSyntheticValuesOrValueOfMethod
|
import org.jetbrains.kotlin.asJava.isSyntheticValuesOrValueOfMethod
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||||
import org.jetbrains.kotlin.load.java.structure.*
|
import org.jetbrains.kotlin.load.java.structure.*
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
@@ -111,7 +111,7 @@ class JavaClassImpl(psiClass: PsiClass) : JavaClassifierImpl<PsiClass>(psiClass)
|
|||||||
override val isFinal: Boolean
|
override val isFinal: Boolean
|
||||||
get() = JavaElementUtil.isFinal(this)
|
get() = JavaElementUtil.isFinal(this)
|
||||||
|
|
||||||
override val visibility: Visibility
|
override val visibility: DescriptorVisibility
|
||||||
get() = JavaElementUtil.getVisibility(this)
|
get() = JavaElementUtil.getVisibility(this)
|
||||||
|
|
||||||
override val lightClassOriginKind: LightClassOriginKind?
|
override val lightClassOriginKind: LightClassOriginKind?
|
||||||
|
|||||||
+8
-8
@@ -20,9 +20,9 @@ import com.intellij.codeInsight.ExternalAnnotationsManager;
|
|||||||
import com.intellij.psi.*;
|
import com.intellij.psi.*;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities;
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities;
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility;
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibility;
|
||||||
import org.jetbrains.kotlin.load.java.JavaVisibilities;
|
import org.jetbrains.kotlin.load.java.JavaDescriptorVisibilities;
|
||||||
import org.jetbrains.kotlin.load.java.structure.JavaAnnotation;
|
import org.jetbrains.kotlin.load.java.structure.JavaAnnotation;
|
||||||
import org.jetbrains.kotlin.name.FqName;
|
import org.jetbrains.kotlin.name.FqName;
|
||||||
|
|
||||||
@@ -50,18 +50,18 @@ import static org.jetbrains.kotlin.load.java.structure.impl.JavaElementCollectio
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static Visibility getVisibility(@NotNull JavaModifierListOwnerImpl owner) {
|
public static DescriptorVisibility getVisibility(@NotNull JavaModifierListOwnerImpl owner) {
|
||||||
PsiModifierListOwner psiOwner = owner.getPsi();
|
PsiModifierListOwner psiOwner = owner.getPsi();
|
||||||
if (psiOwner.hasModifierProperty(PsiModifier.PUBLIC)) {
|
if (psiOwner.hasModifierProperty(PsiModifier.PUBLIC)) {
|
||||||
return Visibilities.PUBLIC;
|
return DescriptorVisibilities.PUBLIC;
|
||||||
}
|
}
|
||||||
if (psiOwner.hasModifierProperty(PsiModifier.PRIVATE)) {
|
if (psiOwner.hasModifierProperty(PsiModifier.PRIVATE)) {
|
||||||
return Visibilities.PRIVATE;
|
return DescriptorVisibilities.PRIVATE;
|
||||||
}
|
}
|
||||||
if (psiOwner.hasModifierProperty(PsiModifier.PROTECTED)) {
|
if (psiOwner.hasModifierProperty(PsiModifier.PROTECTED)) {
|
||||||
return owner.isStatic() ? JavaVisibilities.PROTECTED_STATIC_VISIBILITY : JavaVisibilities.PROTECTED_AND_PACKAGE;
|
return owner.isStatic() ? JavaDescriptorVisibilities.PROTECTED_STATIC_VISIBILITY : JavaDescriptorVisibilities.PROTECTED_AND_PACKAGE;
|
||||||
}
|
}
|
||||||
return JavaVisibilities.PACKAGE_VISIBILITY;
|
return JavaDescriptorVisibilities.PACKAGE_VISIBILITY;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
+2
-2
@@ -22,7 +22,7 @@ import com.intellij.psi.PsiDocCommentOwner;
|
|||||||
import com.intellij.psi.PsiMember;
|
import com.intellij.psi.PsiMember;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility;
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibility;
|
||||||
import org.jetbrains.kotlin.load.java.structure.JavaAnnotation;
|
import org.jetbrains.kotlin.load.java.structure.JavaAnnotation;
|
||||||
import org.jetbrains.kotlin.load.java.structure.JavaClass;
|
import org.jetbrains.kotlin.load.java.structure.JavaClass;
|
||||||
import org.jetbrains.kotlin.load.java.structure.JavaMember;
|
import org.jetbrains.kotlin.load.java.structure.JavaMember;
|
||||||
@@ -76,7 +76,7 @@ public abstract class JavaMemberImpl<Psi extends PsiMember> extends JavaElementI
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public Visibility getVisibility() {
|
public DescriptorVisibility getVisibility() {
|
||||||
return JavaElementUtil.getVisibility(this);
|
return JavaElementUtil.getVisibility(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+4
-4
@@ -21,8 +21,8 @@ import com.intellij.psi.PsiParameter;
|
|||||||
import com.intellij.psi.impl.compiled.ClsParameterImpl;
|
import com.intellij.psi.impl.compiled.ClsParameterImpl;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities;
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities;
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility;
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibility;
|
||||||
import org.jetbrains.kotlin.load.java.structure.JavaAnnotation;
|
import org.jetbrains.kotlin.load.java.structure.JavaAnnotation;
|
||||||
import org.jetbrains.kotlin.load.java.structure.JavaType;
|
import org.jetbrains.kotlin.load.java.structure.JavaType;
|
||||||
import org.jetbrains.kotlin.load.java.structure.JavaValueParameter;
|
import org.jetbrains.kotlin.load.java.structure.JavaValueParameter;
|
||||||
@@ -60,8 +60,8 @@ public class JavaValueParameterImpl extends JavaElementImpl<PsiParameter>
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public Visibility getVisibility() {
|
public DescriptorVisibility getVisibility() {
|
||||||
return Visibilities.LOCAL;
|
return DescriptorVisibilities.LOCAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
+8
-8
@@ -16,9 +16,9 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.load.java.structure.impl.classFiles
|
package org.jetbrains.kotlin.load.java.structure.impl.classFiles
|
||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||||
import org.jetbrains.kotlin.load.java.JavaVisibilities
|
import org.jetbrains.kotlin.load.java.JavaDescriptorVisibilities
|
||||||
import org.jetbrains.kotlin.load.java.structure.JavaModifierListOwner
|
import org.jetbrains.kotlin.load.java.structure.JavaModifierListOwner
|
||||||
import org.jetbrains.kotlin.load.java.structure.MapBasedJavaAnnotationOwner
|
import org.jetbrains.kotlin.load.java.structure.MapBasedJavaAnnotationOwner
|
||||||
import org.jetbrains.org.objectweb.asm.Opcodes
|
import org.jetbrains.org.objectweb.asm.Opcodes
|
||||||
@@ -33,13 +33,13 @@ internal interface BinaryJavaModifierListOwner : JavaModifierListOwner, MapBased
|
|||||||
override val isAbstract get() = isSet(Opcodes.ACC_ABSTRACT)
|
override val isAbstract get() = isSet(Opcodes.ACC_ABSTRACT)
|
||||||
override val isStatic get() = isSet(Opcodes.ACC_STATIC)
|
override val isStatic get() = isSet(Opcodes.ACC_STATIC)
|
||||||
override val isFinal get() = isSet(Opcodes.ACC_FINAL)
|
override val isFinal get() = isSet(Opcodes.ACC_FINAL)
|
||||||
override val visibility: Visibility
|
override val visibility: DescriptorVisibility
|
||||||
get() = when {
|
get() = when {
|
||||||
isSet(Opcodes.ACC_PRIVATE) -> Visibilities.PRIVATE
|
isSet(Opcodes.ACC_PRIVATE) -> DescriptorVisibilities.PRIVATE
|
||||||
isSet(Opcodes.ACC_PROTECTED) ->
|
isSet(Opcodes.ACC_PROTECTED) ->
|
||||||
if (isStatic) JavaVisibilities.PROTECTED_STATIC_VISIBILITY else JavaVisibilities.PROTECTED_AND_PACKAGE
|
if (isStatic) JavaDescriptorVisibilities.PROTECTED_STATIC_VISIBILITY else JavaDescriptorVisibilities.PROTECTED_AND_PACKAGE
|
||||||
isSet(Opcodes.ACC_PUBLIC) -> Visibilities.PUBLIC
|
isSet(Opcodes.ACC_PUBLIC) -> DescriptorVisibilities.PUBLIC
|
||||||
else -> JavaVisibilities.PACKAGE_VISIBILITY
|
else -> JavaDescriptorVisibilities.PACKAGE_VISIBILITY
|
||||||
}
|
}
|
||||||
|
|
||||||
override val isDeprecatedInJavaDoc get() = isSet(Opcodes.ACC_DEPRECATED)
|
override val isDeprecatedInJavaDoc get() = isSet(Opcodes.ACC_DEPRECATED)
|
||||||
|
|||||||
+2
-2
@@ -18,7 +18,7 @@ package org.jetbrains.kotlin.resolve.jvm.checkers
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
|
||||||
import org.jetbrains.kotlin.diagnostics.Errors
|
import org.jetbrains.kotlin.diagnostics.Errors
|
||||||
import org.jetbrains.kotlin.load.java.descriptors.JavaClassDescriptor
|
import org.jetbrains.kotlin.load.java.descriptors.JavaClassDescriptor
|
||||||
import org.jetbrains.kotlin.psi.KtExpression
|
import org.jetbrains.kotlin.psi.KtExpression
|
||||||
@@ -70,7 +70,7 @@ class JavaTypeAccessibilityChecker : AdditionalTypeChecker {
|
|||||||
val declarationDescriptor = type.constructor.declarationDescriptor
|
val declarationDescriptor = type.constructor.declarationDescriptor
|
||||||
|
|
||||||
if (declarationDescriptor is JavaClassDescriptor) {
|
if (declarationDescriptor is JavaClassDescriptor) {
|
||||||
if (!Visibilities.isVisibleIgnoringReceiver(declarationDescriptor, scopeOwner)) {
|
if (!DescriptorVisibilities.isVisibleIgnoringReceiver(declarationDescriptor, scopeOwner)) {
|
||||||
inaccessibleClasses.add(declarationDescriptor)
|
inaccessibleClasses.add(declarationDescriptor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.resolve.jvm.checkers
|
|||||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.MemberDescriptor
|
import org.jetbrains.kotlin.descriptors.MemberDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.VariableDescriptor
|
import org.jetbrains.kotlin.descriptors.VariableDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget.*
|
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget.*
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.KotlinRetention
|
import org.jetbrains.kotlin.descriptors.annotations.KotlinRetention
|
||||||
import org.jetbrains.kotlin.diagnostics.reportDiagnosticOnce
|
import org.jetbrains.kotlin.diagnostics.reportDiagnosticOnce
|
||||||
@@ -34,7 +34,7 @@ class JvmAnnotationsTargetNonExistentAccessorChecker : DeclarationChecker {
|
|||||||
if (descriptor !is MemberDescriptor) return
|
if (descriptor !is MemberDescriptor) return
|
||||||
if (declaration !is KtParameter && declaration !is KtProperty) return
|
if (declaration !is KtParameter && declaration !is KtProperty) return
|
||||||
|
|
||||||
if (!Visibilities.isPrivate(descriptor.visibility) && !isSpecialStaticProperty(descriptor)) return
|
if (!DescriptorVisibilities.isPrivate(descriptor.visibility) && !isSpecialStaticProperty(descriptor)) return
|
||||||
|
|
||||||
val hasGetterWithBody = declaration is KtProperty && declaration.getter?.hasBody() == true
|
val hasGetterWithBody = declaration is KtProperty && declaration.getter?.hasBody() == true
|
||||||
val hasSetterWithBody = declaration is KtProperty && declaration.setter?.hasBody() == true
|
val hasSetterWithBody = declaration is KtProperty && declaration.setter?.hasBody() == true
|
||||||
|
|||||||
+2
-2
@@ -63,7 +63,7 @@ class JvmFieldApplicabilityChecker : DeclarationChecker {
|
|||||||
declaration.hasDelegate() -> DELEGATE
|
declaration.hasDelegate() -> DELEGATE
|
||||||
!descriptor.hasBackingField(context.trace.bindingContext) -> return
|
!descriptor.hasBackingField(context.trace.bindingContext) -> return
|
||||||
descriptor.isOverridable -> NOT_FINAL
|
descriptor.isOverridable -> NOT_FINAL
|
||||||
Visibilities.isPrivate(descriptor.visibility) -> PRIVATE
|
DescriptorVisibilities.isPrivate(descriptor.visibility) -> PRIVATE
|
||||||
declaration.hasCustomAccessor() -> CUSTOM_ACCESSOR
|
declaration.hasCustomAccessor() -> CUSTOM_ACCESSOR
|
||||||
descriptor.overriddenDescriptors.isNotEmpty() -> OVERRIDES
|
descriptor.overriddenDescriptors.isNotEmpty() -> OVERRIDES
|
||||||
descriptor.isLateInit -> LATEINIT
|
descriptor.isLateInit -> LATEINIT
|
||||||
@@ -92,7 +92,7 @@ class JvmFieldApplicabilityChecker : DeclarationChecker {
|
|||||||
)) {
|
)) {
|
||||||
if (next !is PropertyDescriptor) continue
|
if (next !is PropertyDescriptor) continue
|
||||||
|
|
||||||
if (next.visibility != Visibilities.PUBLIC || next.isVar || next.modality != Modality.FINAL) return false
|
if (next.visibility != DescriptorVisibilities.PUBLIC || next.isVar || next.modality != Modality.FINAL) return false
|
||||||
|
|
||||||
if (!DescriptorsJvmAbiUtil.hasJvmFieldAnnotation(next)) return false
|
if (!DescriptorsJvmAbiUtil.hasJvmFieldAnnotation(next)) return false
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -18,7 +18,7 @@ package org.jetbrains.kotlin.resolve.jvm.checkers
|
|||||||
|
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
|
||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||||
import org.jetbrains.kotlin.resolve.annotations.hasJvmStaticAnnotation
|
import org.jetbrains.kotlin.resolve.annotations.hasJvmStaticAnnotation
|
||||||
import org.jetbrains.kotlin.resolve.calls.checkers.CallChecker
|
import org.jetbrains.kotlin.resolve.calls.checkers.CallChecker
|
||||||
@@ -32,7 +32,7 @@ class ProtectedInSuperClassCompanionCallChecker : CallChecker {
|
|||||||
val targetDescriptor = resolvedCall.resultingDescriptor.original
|
val targetDescriptor = resolvedCall.resultingDescriptor.original
|
||||||
|
|
||||||
// Protected non-JVM static
|
// Protected non-JVM static
|
||||||
if (targetDescriptor.visibility != Visibilities.PROTECTED) return
|
if (targetDescriptor.visibility != DescriptorVisibilities.PROTECTED) return
|
||||||
if (targetDescriptor.hasJvmStaticAnnotation()) return
|
if (targetDescriptor.hasJvmStaticAnnotation()) return
|
||||||
val containerDescriptor = targetDescriptor.containingDeclaration
|
val containerDescriptor = targetDescriptor.containingDeclaration
|
||||||
// Declared in companion object
|
// Declared in companion object
|
||||||
|
|||||||
+3
-3
@@ -17,7 +17,7 @@
|
|||||||
package org.jetbrains.kotlin.resolve.jvm.checkers
|
package org.jetbrains.kotlin.resolve.jvm.checkers
|
||||||
|
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
|
||||||
import org.jetbrains.kotlin.diagnostics.Errors
|
import org.jetbrains.kotlin.diagnostics.Errors
|
||||||
import org.jetbrains.kotlin.resolve.calls.checkers.CallChecker
|
import org.jetbrains.kotlin.resolve.calls.checkers.CallChecker
|
||||||
import org.jetbrains.kotlin.resolve.calls.checkers.CallCheckerContext
|
import org.jetbrains.kotlin.resolve.calls.checkers.CallCheckerContext
|
||||||
@@ -43,7 +43,7 @@ object ProtectedSyntheticExtensionCallChecker : CallChecker {
|
|||||||
val from = context.scope.ownerDescriptor
|
val from = context.scope.ownerDescriptor
|
||||||
|
|
||||||
// Already reported
|
// Already reported
|
||||||
if (!Visibilities.isVisibleIgnoringReceiver(descriptor, from)) return
|
if (!DescriptorVisibilities.isVisibleIgnoringReceiver(descriptor, from)) return
|
||||||
|
|
||||||
if (resolvedCall.dispatchReceiver != null && resolvedCall.extensionReceiver !is ReceiverValue) return
|
if (resolvedCall.dispatchReceiver != null && resolvedCall.extensionReceiver !is ReceiverValue) return
|
||||||
|
|
||||||
@@ -53,7 +53,7 @@ object ProtectedSyntheticExtensionCallChecker : CallChecker {
|
|||||||
context.languageVersionSettings
|
context.languageVersionSettings
|
||||||
)
|
)
|
||||||
|
|
||||||
if (receiverTypes.none { Visibilities.isVisible(getReceiverValueWithSmartCast(null, it), sourceFunction, from) }) {
|
if (receiverTypes.none { DescriptorVisibilities.isVisible(getReceiverValueWithSmartCast(null, it), sourceFunction, from) }) {
|
||||||
context.trace.report(Errors.INVISIBLE_MEMBER.on(reportOn, descriptor, descriptor.visibility, from))
|
context.trace.report(Errors.INVISIBLE_MEMBER.on(reportOn, descriptor, descriptor.visibility, from))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -50,7 +50,7 @@ class LocalFunInlineChecker : DeclarationChecker {
|
|||||||
if (InlineUtil.isInline(descriptor) &&
|
if (InlineUtil.isInline(descriptor) &&
|
||||||
declaration is KtNamedFunction &&
|
declaration is KtNamedFunction &&
|
||||||
descriptor is FunctionDescriptor &&
|
descriptor is FunctionDescriptor &&
|
||||||
descriptor.visibility == Visibilities.LOCAL) {
|
descriptor.visibility == DescriptorVisibilities.LOCAL) {
|
||||||
context.trace.report(Errors.NOT_YET_SUPPORTED_IN_INLINE.on(declaration, "Local inline functions"))
|
context.trace.report(Errors.NOT_YET_SUPPORTED_IN_INLINE.on(declaration, "Local inline functions"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -117,7 +117,7 @@ class JvmStaticChecker(jvmTarget: JvmTarget, languageVersionSettings: LanguageVe
|
|||||||
diagnosticHolder: DiagnosticSink,
|
diagnosticHolder: DiagnosticSink,
|
||||||
declaration: KtDeclaration
|
declaration: KtDeclaration
|
||||||
) {
|
) {
|
||||||
if (descriptor.visibility != Visibilities.PUBLIC) {
|
if (descriptor.visibility != DescriptorVisibilities.PUBLIC) {
|
||||||
diagnosticHolder.report(ErrorsJvm.JVM_STATIC_ON_NON_PUBLIC_MEMBER.on(declaration))
|
diagnosticHolder.report(ErrorsJvm.JVM_STATIC_ON_NON_PUBLIC_MEMBER.on(declaration))
|
||||||
} else if (descriptor is PropertyDescriptor) {
|
} else if (descriptor is PropertyDescriptor) {
|
||||||
descriptor.setter?.let { checkVisibility(it, diagnosticHolder, declaration) }
|
descriptor.setter?.let { checkVisibility(it, diagnosticHolder, declaration) }
|
||||||
@@ -234,7 +234,7 @@ class OverloadsAnnotationChecker: DeclarationChecker {
|
|||||||
ErrorsJvm.OVERLOADS_ANNOTATION_CLASS_CONSTRUCTOR_WARNING
|
ErrorsJvm.OVERLOADS_ANNOTATION_CLASS_CONSTRUCTOR_WARNING
|
||||||
|
|
||||||
diagnosticHolder.report(diagnostic.on(annotationEntry))
|
diagnosticHolder.report(diagnostic.on(annotationEntry))
|
||||||
} else if (!descriptor.visibility.isPublicAPI && descriptor.visibility != Visibilities.INTERNAL) {
|
} else if (!descriptor.visibility.isPublicAPI && descriptor.visibility != DescriptorVisibilities.INTERNAL) {
|
||||||
diagnosticHolder.report(ErrorsJvm.OVERLOADS_PRIVATE.on(annotationEntry))
|
diagnosticHolder.report(ErrorsJvm.OVERLOADS_PRIVATE.on(annotationEntry))
|
||||||
} else if (descriptor.valueParameters.none { it.declaresDefaultValue() || it.isActualParameterWithCorrespondingExpectedDefault }) {
|
} else if (descriptor.valueParameters.none { it.declaresDefaultValue() || it.isActualParameterWithCorrespondingExpectedDefault }) {
|
||||||
diagnosticHolder.report(ErrorsJvm.OVERLOADS_WITHOUT_DEFAULT_ARGUMENTS.on(annotationEntry))
|
diagnosticHolder.report(ErrorsJvm.OVERLOADS_WITHOUT_DEFAULT_ARGUMENTS.on(annotationEntry))
|
||||||
|
|||||||
+1
-1
@@ -97,7 +97,7 @@ public class SignaturesPropagationData {
|
|||||||
autoValueParameters,
|
autoValueParameters,
|
||||||
autoReturnType,
|
autoReturnType,
|
||||||
Modality.OPEN,
|
Modality.OPEN,
|
||||||
Visibilities.PUBLIC
|
DescriptorVisibilities.PUBLIC
|
||||||
);
|
);
|
||||||
return autoMethodDescriptor;
|
return autoMethodDescriptor;
|
||||||
}
|
}
|
||||||
|
|||||||
+16
-16
@@ -278,15 +278,15 @@ class JavaSyntheticPropertiesScope(storageManager: StorageManager, private val l
|
|||||||
}
|
}
|
||||||
|
|
||||||
private class MyPropertyDescriptor(
|
private class MyPropertyDescriptor(
|
||||||
containingDeclaration: DeclarationDescriptor,
|
containingDeclaration: DeclarationDescriptor,
|
||||||
original: PropertyDescriptor?,
|
original: PropertyDescriptor?,
|
||||||
annotations: Annotations,
|
annotations: Annotations,
|
||||||
modality: Modality,
|
modality: Modality,
|
||||||
visibility: Visibility,
|
visibility: DescriptorVisibility,
|
||||||
isVar: Boolean,
|
isVar: Boolean,
|
||||||
name: Name,
|
name: Name,
|
||||||
kind: CallableMemberDescriptor.Kind,
|
kind: CallableMemberDescriptor.Kind,
|
||||||
source: SourceElement
|
source: SourceElement
|
||||||
) : SyntheticJavaPropertyDescriptor, PropertyDescriptorImpl(
|
) : SyntheticJavaPropertyDescriptor, PropertyDescriptorImpl(
|
||||||
containingDeclaration, original, annotations, modality, visibility, isVar, name, kind, source,
|
containingDeclaration, original, annotations, modality, visibility, isVar, name, kind, source,
|
||||||
/* lateInit = */ false, /* isConst = */ false, /* isExpect = */ false, /* isActual = */ false, /* isExternal = */ false,
|
/* lateInit = */ false, /* isConst = */ false, /* isExpect = */ false, /* isActual = */ false, /* isExternal = */ false,
|
||||||
@@ -372,13 +372,13 @@ class JavaSyntheticPropertiesScope(storageManager: StorageManager, private val l
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun createSubstitutedCopy(
|
override fun createSubstitutedCopy(
|
||||||
newOwner: DeclarationDescriptor,
|
newOwner: DeclarationDescriptor,
|
||||||
newModality: Modality,
|
newModality: Modality,
|
||||||
newVisibility: Visibility,
|
newVisibility: DescriptorVisibility,
|
||||||
original: PropertyDescriptor?,
|
original: PropertyDescriptor?,
|
||||||
kind: CallableMemberDescriptor.Kind,
|
kind: CallableMemberDescriptor.Kind,
|
||||||
newName: Name,
|
newName: Name,
|
||||||
source: SourceElement
|
source: SourceElement
|
||||||
): PropertyDescriptorImpl {
|
): PropertyDescriptorImpl {
|
||||||
return MyPropertyDescriptor(newOwner, this, annotations, newModality, newVisibility, isVar, newName, kind, this.source).apply {
|
return MyPropertyDescriptor(newOwner, this, annotations, newModality, newVisibility, isVar, newName, kind, this.source).apply {
|
||||||
getMethod = this@MyPropertyDescriptor.getMethod
|
getMethod = this@MyPropertyDescriptor.getMethod
|
||||||
|
|||||||
+5
-5
@@ -32,20 +32,20 @@ fun FunctionDescriptor.hasJavaOriginInHierarchy(): Boolean {
|
|||||||
original.overriddenDescriptors.any { it.hasJavaOriginInHierarchy() }
|
original.overriddenDescriptors.any { it.hasJavaOriginInHierarchy() }
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Visibility.isVisibleOutside() = this != Visibilities.PRIVATE && this != Visibilities.PRIVATE_TO_THIS && this != Visibilities.INVISIBLE_FAKE
|
fun DescriptorVisibility.isVisibleOutside() = this != DescriptorVisibilities.PRIVATE && this != DescriptorVisibilities.PRIVATE_TO_THIS && this != DescriptorVisibilities.INVISIBLE_FAKE
|
||||||
|
|
||||||
fun syntheticVisibility(originalDescriptor: DeclarationDescriptorWithVisibility, isUsedForExtension: Boolean): Visibility {
|
fun syntheticVisibility(originalDescriptor: DeclarationDescriptorWithVisibility, isUsedForExtension: Boolean): DescriptorVisibility {
|
||||||
val originalVisibility = originalDescriptor.visibility
|
val originalVisibility = originalDescriptor.visibility
|
||||||
return when (originalVisibility) {
|
return when (originalVisibility) {
|
||||||
Visibilities.PUBLIC -> Visibilities.PUBLIC
|
DescriptorVisibilities.PUBLIC -> DescriptorVisibilities.PUBLIC
|
||||||
|
|
||||||
else -> object : Visibility(originalVisibility.name, originalVisibility.isPublicAPI) {
|
else -> object : DescriptorVisibility(originalVisibility.name, originalVisibility.isPublicAPI) {
|
||||||
override fun isVisible(
|
override fun isVisible(
|
||||||
receiver: ReceiverValue?,
|
receiver: ReceiverValue?,
|
||||||
what: DeclarationDescriptorWithVisibility,
|
what: DeclarationDescriptorWithVisibility,
|
||||||
from: DeclarationDescriptor
|
from: DeclarationDescriptor
|
||||||
) = originalVisibility.isVisible(
|
) = originalVisibility.isVisible(
|
||||||
if (isUsedForExtension) Visibilities.ALWAYS_SUITABLE_RECEIVER else receiver, originalDescriptor, from)
|
if (isUsedForExtension) DescriptorVisibilities.ALWAYS_SUITABLE_RECEIVER else receiver, originalDescriptor, from)
|
||||||
|
|
||||||
override fun mustCheckInImports()
|
override fun mustCheckInImports()
|
||||||
= throw UnsupportedOperationException("Should never be called for this visibility")
|
= throw UnsupportedOperationException("Should never be called for this visibility")
|
||||||
|
|||||||
@@ -487,9 +487,9 @@ class ControlFlowInformationProvider private constructor(
|
|||||||
|
|
||||||
val receiverValue = expression.getResolvedCall(trace.bindingContext)?.getDispatchReceiverWithSmartCast()
|
val receiverValue = expression.getResolvedCall(trace.bindingContext)?.getDispatchReceiverWithSmartCast()
|
||||||
|
|
||||||
if (Visibilities.isVisible(receiverValue, variableDescriptor, descriptor)
|
if (DescriptorVisibilities.isVisible(receiverValue, variableDescriptor, descriptor)
|
||||||
&& setterDescriptor != null
|
&& setterDescriptor != null
|
||||||
&& !Visibilities.isVisible(receiverValue, setterDescriptor, descriptor)
|
&& !DescriptorVisibilities.isVisible(receiverValue, setterDescriptor, descriptor)
|
||||||
) {
|
) {
|
||||||
report(
|
report(
|
||||||
Errors.INVISIBLE_SETTER.on(
|
Errors.INVISIBLE_SETTER.on(
|
||||||
|
|||||||
+1
-1
@@ -42,7 +42,7 @@ sealed class LocalVariableAccessorDescriptor(
|
|||||||
val returnType =
|
val returnType =
|
||||||
if (isGetter) correspondingVariable.type else correspondingVariable.builtIns.unitType
|
if (isGetter) correspondingVariable.type else correspondingVariable.builtIns.unitType
|
||||||
@Suppress("LeakingThis")
|
@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 {
|
private fun createValueParameter(name: Name, type: KotlinType): ValueParameterDescriptorImpl {
|
||||||
|
|||||||
+2
-2
@@ -92,8 +92,8 @@ public class LocalVariableDescriptor extends VariableDescriptorWithInitializerIm
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public Visibility getVisibility() {
|
public DescriptorVisibility getVisibility() {
|
||||||
return Visibilities.LOCAL;
|
return DescriptorVisibilities.LOCAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|||||||
@@ -123,9 +123,9 @@ public interface Errors {
|
|||||||
|
|
||||||
//Elements with "INVISIBLE_REFERENCE" error are marked as unresolved, unlike elements with "INVISIBLE_MEMBER" error
|
//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
|
//"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.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<KtElement, DeclarationDescriptor> DEPRECATED_ACCESS_BY_SHORT_NAME = DiagnosticFactory1.create(WARNING);
|
||||||
|
|
||||||
DiagnosticFactory1<PsiElement, ConstructorDescriptor> PROTECTED_CONSTRUCTOR_NOT_IN_SUPER_CALL = DiagnosticFactory1.create(ERROR);
|
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<KtNamedDeclaration, CallableMemberDescriptor, DeclarationDescriptor> OVERRIDING_FINAL_MEMBER =
|
||||||
DiagnosticFactory2.create(ERROR, OVERRIDE_MODIFIER);
|
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.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);
|
DiagnosticFactory3.create(ERROR, VISIBILITY_MODIFIER);
|
||||||
DiagnosticFactory2<KtNamedDeclaration, CallableMemberDescriptor, DeclarationWithDiagnosticComponents> RETURN_TYPE_MISMATCH_ON_OVERRIDE =
|
DiagnosticFactory2<KtNamedDeclaration, CallableMemberDescriptor, DeclarationWithDiagnosticComponents> RETURN_TYPE_MISMATCH_ON_OVERRIDE =
|
||||||
DiagnosticFactory2.create(ERROR, DECLARATION_RETURN_TYPE);
|
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_WARNING = DiagnosticFactory0.create(WARNING);
|
||||||
DiagnosticFactory0<KtTypeParameterList> LOCAL_VARIABLE_WITH_TYPE_PARAMETERS = DiagnosticFactory0.create(ERROR);
|
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_LOOP_PARAMETER = DiagnosticFactory1.create(ERROR);
|
||||||
DiagnosticFactory1<PsiElement, KtKeywordToken> VAL_OR_VAR_ON_FUN_PARAMETER = DiagnosticFactory1.create(ERROR);
|
DiagnosticFactory1<PsiElement, KtKeywordToken> VAL_OR_VAR_ON_FUN_PARAMETER = DiagnosticFactory1.create(ERROR);
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ object Renderers {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@JvmField
|
@JvmField
|
||||||
val VISIBILITY = Renderer<Visibility> {
|
val VISIBILITY = Renderer<DescriptorVisibility> {
|
||||||
it.externalDisplayName
|
it.externalDisplayName
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -134,7 +134,7 @@ object Renderers {
|
|||||||
|
|
||||||
@JvmField
|
@JvmField
|
||||||
val NAME_OF_CONTAINING_DECLARATION_OR_FILE = Renderer<DeclarationDescriptor> {
|
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"
|
"file"
|
||||||
} else {
|
} else {
|
||||||
val containingDeclaration = it.containingDeclaration
|
val containingDeclaration = it.containingDeclaration
|
||||||
|
|||||||
+13
-13
@@ -37,18 +37,18 @@ import org.jetbrains.kotlin.types.checker.KotlinTypeRefiner
|
|||||||
* This class has its own synthetic declaration inside.
|
* This class has its own synthetic declaration inside.
|
||||||
*/
|
*/
|
||||||
class SyntheticClassOrObjectDescriptor(
|
class SyntheticClassOrObjectDescriptor(
|
||||||
c: LazyClassContext,
|
c: LazyClassContext,
|
||||||
parentClassOrObject: KtPureClassOrObject,
|
parentClassOrObject: KtPureClassOrObject,
|
||||||
containingDeclaration: DeclarationDescriptor,
|
containingDeclaration: DeclarationDescriptor,
|
||||||
name: Name,
|
name: Name,
|
||||||
source: SourceElement,
|
source: SourceElement,
|
||||||
outerScope: LexicalScope,
|
outerScope: LexicalScope,
|
||||||
private val modality: Modality,
|
private val modality: Modality,
|
||||||
private val visibility: Visibility,
|
private val visibility: DescriptorVisibility,
|
||||||
override val annotations: Annotations,
|
override val annotations: Annotations,
|
||||||
constructorVisibility: Visibility,
|
constructorVisibility: DescriptorVisibility,
|
||||||
private val kind: ClassKind,
|
private val kind: ClassKind,
|
||||||
private val isCompanionObject: Boolean
|
private val isCompanionObject: Boolean
|
||||||
) : ClassDescriptorBase(c.storageManager, containingDeclaration, name, source, false), ClassDescriptorWithResolutionScopes {
|
) : ClassDescriptorBase(c.storageManager, containingDeclaration, name, source, false), ClassDescriptorWithResolutionScopes {
|
||||||
val syntheticDeclaration: KtPureClassOrObject = SyntheticDeclaration(parentClassOrObject, name.asString())
|
val syntheticDeclaration: KtPureClassOrObject = SyntheticDeclaration(parentClassOrObject, name.asString())
|
||||||
|
|
||||||
@@ -116,7 +116,7 @@ class SyntheticClassOrObjectDescriptor(
|
|||||||
|
|
||||||
override fun toString(): String = "synthetic class " + name.toString() + " in " + containingDeclaration
|
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)
|
val constructor = DescriptorFactory.createPrimaryConstructorForObject(thisDescriptor, source)
|
||||||
constructor.visibility = constructorVisibility
|
constructor.visibility = constructorVisibility
|
||||||
constructor.returnType = getDefaultType()
|
constructor.returnType = getDefaultType()
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ object DataClassDescriptorResolver {
|
|||||||
parameterDescriptors,
|
parameterDescriptors,
|
||||||
classDescriptor.defaultType,
|
classDescriptor.defaultType,
|
||||||
Modality.FINAL,
|
Modality.FINAL,
|
||||||
Visibilities.PUBLIC
|
DescriptorVisibilities.PUBLIC
|
||||||
)
|
)
|
||||||
|
|
||||||
trace.record(BindingContext.DATA_CLASS_COPY_FUNCTION, classDescriptor, functionDescriptor)
|
trace.record(BindingContext.DATA_CLASS_COPY_FUNCTION, classDescriptor, functionDescriptor)
|
||||||
|
|||||||
@@ -601,7 +601,7 @@ class DeclarationsChecker(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun checkPrivateExpectedDeclaration(declaration: KtDeclaration, descriptor: MemberDescriptor) {
|
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))
|
trace.report(EXPECTED_PRIVATE_DECLARATION.on(declaration.modifierList?.getModifier(KtTokens.PRIVATE_KEYWORD) ?: declaration))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -884,15 +884,15 @@ class DeclarationsChecker(
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (propertyDescriptor.isOverridable
|
if (propertyDescriptor.isOverridable
|
||||||
&& accessorDescriptor.visibility == Visibilities.PRIVATE
|
&& accessorDescriptor.visibility == DescriptorVisibilities.PRIVATE
|
||||||
&& propertyDescriptor.visibility != Visibilities.PRIVATE) {
|
&& propertyDescriptor.visibility != DescriptorVisibilities.PRIVATE) {
|
||||||
if (propertyDescriptor.modality == Modality.ABSTRACT) {
|
if (propertyDescriptor.modality == Modality.ABSTRACT) {
|
||||||
reportVisibilityModifierDiagnostics(tokens.values, Errors.PRIVATE_SETTER_FOR_ABSTRACT_PROPERTY)
|
reportVisibilityModifierDiagnostics(tokens.values, Errors.PRIVATE_SETTER_FOR_ABSTRACT_PROPERTY)
|
||||||
} else {
|
} else {
|
||||||
reportVisibilityModifierDiagnostics(tokens.values, Errors.PRIVATE_SETTER_FOR_OPEN_PROPERTY)
|
reportVisibilityModifierDiagnostics(tokens.values, Errors.PRIVATE_SETTER_FOR_OPEN_PROPERTY)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
val compare = Visibilities.compare(accessorDescriptor.visibility, propertyDescriptor.visibility)
|
val compare = DescriptorVisibilities.compare(accessorDescriptor.visibility, propertyDescriptor.visibility)
|
||||||
if (compare == null || compare > 0) {
|
if (compare == null || compare > 0) {
|
||||||
reportVisibilityModifierDiagnostics(tokens.values, Errors.SETTER_VISIBILITY_INCONSISTENT_WITH_PROPERTY_VISIBILITY)
|
reportVisibilityModifierDiagnostics(tokens.values, Errors.SETTER_VISIBILITY_INCONSISTENT_WITH_PROPERTY_VISIBILITY)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ class DelegationResolver<T : CallableMemberDescriptor> private constructor(
|
|||||||
.setOwner(ownerDescriptor)
|
.setOwner(ownerDescriptor)
|
||||||
.setDispatchReceiverParameter(ownerDescriptor.thisAsReceiverParameter)
|
.setDispatchReceiverParameter(ownerDescriptor.thisAsReceiverParameter)
|
||||||
.setModality(newModality)
|
.setModality(newModality)
|
||||||
.setVisibility(Visibilities.INHERITED)
|
.setVisibility(DescriptorVisibilities.INHERITED)
|
||||||
.setKind(DELEGATION)
|
.setKind(DELEGATION)
|
||||||
.setCopyOverrides(false)
|
.setCopyOverrides(false)
|
||||||
.build() as T
|
.build() as T
|
||||||
|
|||||||
@@ -263,29 +263,29 @@ public class DescriptorResolver {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Visibility getDefaultVisibility(KtModifierListOwner modifierListOwner, DeclarationDescriptor containingDescriptor) {
|
public static DescriptorVisibility getDefaultVisibility(KtModifierListOwner modifierListOwner, DeclarationDescriptor containingDescriptor) {
|
||||||
Visibility defaultVisibility;
|
DescriptorVisibility defaultVisibility;
|
||||||
if (containingDescriptor instanceof ClassDescriptor) {
|
if (containingDescriptor instanceof ClassDescriptor) {
|
||||||
KtModifierList modifierList = modifierListOwner.getModifierList();
|
KtModifierList modifierList = modifierListOwner.getModifierList();
|
||||||
defaultVisibility = modifierList != null && modifierList.hasModifier(OVERRIDE_KEYWORD)
|
defaultVisibility = modifierList != null && modifierList.hasModifier(OVERRIDE_KEYWORD)
|
||||||
? Visibilities.INHERITED
|
? DescriptorVisibilities.INHERITED
|
||||||
: Visibilities.DEFAULT_VISIBILITY;
|
: DescriptorVisibilities.DEFAULT_VISIBILITY;
|
||||||
}
|
}
|
||||||
else if (containingDescriptor instanceof FunctionDescriptor || containingDescriptor instanceof PropertyDescriptor) {
|
else if (containingDescriptor instanceof FunctionDescriptor || containingDescriptor instanceof PropertyDescriptor) {
|
||||||
defaultVisibility = Visibilities.LOCAL;
|
defaultVisibility = DescriptorVisibilities.LOCAL;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
defaultVisibility = Visibilities.DEFAULT_VISIBILITY;
|
defaultVisibility = DescriptorVisibilities.DEFAULT_VISIBILITY;
|
||||||
}
|
}
|
||||||
return defaultVisibility;
|
return defaultVisibility;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Modality getDefaultModality(DeclarationDescriptor containingDescriptor, Visibility visibility, boolean isBodyPresent) {
|
public static Modality getDefaultModality(DeclarationDescriptor containingDescriptor, DescriptorVisibility visibility, boolean isBodyPresent) {
|
||||||
Modality defaultModality;
|
Modality defaultModality;
|
||||||
if (containingDescriptor instanceof ClassDescriptor) {
|
if (containingDescriptor instanceof ClassDescriptor) {
|
||||||
boolean isTrait = ((ClassDescriptor) containingDescriptor).getKind() == ClassKind.INTERFACE;
|
boolean isTrait = ((ClassDescriptor) containingDescriptor).getKind() == ClassKind.INTERFACE;
|
||||||
boolean isDefinitelyAbstract = isTrait && !isBodyPresent;
|
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;
|
defaultModality = isDefinitelyAbstract ? Modality.ABSTRACT : basicModality;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -720,7 +720,7 @@ public class DescriptorResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
KtModifierList modifierList = typeAlias.getModifierList();
|
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);
|
Annotations allAnnotations = annotationResolver.resolveAnnotationsWithArguments(scope, modifierList, trace);
|
||||||
Name name = KtPsiUtil.safeName(typeAlias.getName());
|
Name name = KtPsiUtil.safeName(typeAlias.getName());
|
||||||
@@ -874,7 +874,7 @@ public class DescriptorResolver {
|
|||||||
KtModifierList modifierList = variableDeclaration.getModifierList();
|
KtModifierList modifierList = variableDeclaration.getModifierList();
|
||||||
boolean isVar = variableDeclaration.isVar();
|
boolean isVar = variableDeclaration.isVar();
|
||||||
|
|
||||||
Visibility visibility = resolveVisibilityFromModifiers(variableDeclaration, getDefaultVisibility(variableDeclaration, container));
|
DescriptorVisibility visibility = resolveVisibilityFromModifiers(variableDeclaration, getDefaultVisibility(variableDeclaration, container));
|
||||||
Modality modality = container instanceof ClassDescriptor
|
Modality modality = container instanceof ClassDescriptor
|
||||||
? resolveMemberModalityFromModifiers(variableDeclaration,
|
? resolveMemberModalityFromModifiers(variableDeclaration,
|
||||||
getDefaultModality(container, visibility, propertyInfo.getHasBody()),
|
getDefaultModality(container, visibility, propertyInfo.getHasBody()),
|
||||||
@@ -1032,7 +1032,7 @@ public class DescriptorResolver {
|
|||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Visibilities.isPrivate(descriptor.getVisibility())) {
|
if (!DescriptorVisibilities.isPrivate(descriptor.getVisibility())) {
|
||||||
if (type.getConstructor().getSupertypes().size() == 1) {
|
if (type.getConstructor().getSupertypes().size() == 1) {
|
||||||
return type.getConstructor().getSupertypes().iterator().next();
|
return type.getConstructor().getSupertypes().iterator().next();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ class ExposedVisibilityChecker(private val trace: BindingTrace? = null) {
|
|||||||
fun checkDeclarationWithVisibility(
|
fun checkDeclarationWithVisibility(
|
||||||
modifierListOwner: KtModifierListOwner,
|
modifierListOwner: KtModifierListOwner,
|
||||||
descriptor: DeclarationDescriptorWithVisibility,
|
descriptor: DeclarationDescriptorWithVisibility,
|
||||||
visibility: Visibility
|
visibility: DescriptorVisibility
|
||||||
): Boolean {
|
): Boolean {
|
||||||
return when {
|
return when {
|
||||||
modifierListOwner is KtFunction &&
|
modifierListOwner is KtFunction &&
|
||||||
@@ -78,7 +78,7 @@ class ExposedVisibilityChecker(private val trace: BindingTrace? = null) {
|
|||||||
function: KtFunction,
|
function: KtFunction,
|
||||||
functionDescriptor: FunctionDescriptor,
|
functionDescriptor: FunctionDescriptor,
|
||||||
// for checking situation with modified basic visibility
|
// for checking situation with modified basic visibility
|
||||||
visibility: Visibility = functionDescriptor.visibility
|
visibility: DescriptorVisibility = functionDescriptor.visibility
|
||||||
): Boolean {
|
): Boolean {
|
||||||
val functionVisibility = functionDescriptor.effectiveVisibility(visibility)
|
val functionVisibility = functionDescriptor.effectiveVisibility(visibility)
|
||||||
var result = true
|
var result = true
|
||||||
@@ -116,7 +116,7 @@ class ExposedVisibilityChecker(private val trace: BindingTrace? = null) {
|
|||||||
property: KtProperty,
|
property: KtProperty,
|
||||||
propertyDescriptor: PropertyDescriptor,
|
propertyDescriptor: PropertyDescriptor,
|
||||||
// for checking situation with modified basic visibility
|
// for checking situation with modified basic visibility
|
||||||
visibility: Visibility = propertyDescriptor.visibility
|
visibility: DescriptorVisibility = propertyDescriptor.visibility
|
||||||
): Boolean {
|
): Boolean {
|
||||||
val propertyVisibility = propertyDescriptor.effectiveVisibility(visibility)
|
val propertyVisibility = propertyDescriptor.effectiveVisibility(visibility)
|
||||||
val restricting = propertyDescriptor.type.leastPermissiveDescriptor(propertyVisibility)
|
val restricting = propertyDescriptor.type.leastPermissiveDescriptor(propertyVisibility)
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ object FunctionsFromAny {
|
|||||||
functionFromAny.valueParameters.map { it.copy(functionDescriptor, it.name, it.index) },
|
functionFromAny.valueParameters.map { it.copy(functionDescriptor, it.name, it.index) },
|
||||||
functionFromAny.returnType,
|
functionFromAny.returnType,
|
||||||
Modality.OPEN,
|
Modality.OPEN,
|
||||||
Visibilities.PUBLIC
|
DescriptorVisibilities.PUBLIC
|
||||||
)
|
)
|
||||||
|
|
||||||
return functionDescriptor
|
return functionDescriptor
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ object InlineClassDescriptorResolver {
|
|||||||
createValueParametersForSpecializedEquals(functionDescriptor, inlinedValue),
|
createValueParametersForSpecializedEquals(functionDescriptor, inlinedValue),
|
||||||
owner.builtIns.booleanType,
|
owner.builtIns.booleanType,
|
||||||
Modality.FINAL,
|
Modality.FINAL,
|
||||||
Visibilities.PUBLIC
|
DescriptorVisibilities.PUBLIC
|
||||||
)
|
)
|
||||||
|
|
||||||
return functionDescriptor
|
return functionDescriptor
|
||||||
@@ -102,7 +102,7 @@ object InlineClassDescriptorResolver {
|
|||||||
if (isBoxMethod) listOf(createValueParameterForBoxing(functionDescriptor, inlinedValue)) else emptyList(),
|
if (isBoxMethod) listOf(createValueParameterForBoxing(functionDescriptor, inlinedValue)) else emptyList(),
|
||||||
if (isBoxMethod) owner.defaultType else inlinedValue.returnType,
|
if (isBoxMethod) owner.defaultType else inlinedValue.returnType,
|
||||||
Modality.FINAL,
|
Modality.FINAL,
|
||||||
Visibilities.PUBLIC
|
DescriptorVisibilities.PUBLIC
|
||||||
)
|
)
|
||||||
|
|
||||||
return functionDescriptor
|
return functionDescriptor
|
||||||
|
|||||||
@@ -167,7 +167,7 @@ class LocalVariableResolver(
|
|||||||
containingDeclaration,
|
containingDeclaration,
|
||||||
annotationResolver.resolveAnnotationsWithArguments(scope, variable.modifierList, trace),
|
annotationResolver.resolveAnnotationsWithArguments(scope, variable.modifierList, trace),
|
||||||
Modality.FINAL,
|
Modality.FINAL,
|
||||||
Visibilities.INTERNAL,
|
DescriptorVisibilities.INTERNAL,
|
||||||
variable.isVar,
|
variable.isVar,
|
||||||
KtPsiUtil.safeName(variable.name),
|
KtPsiUtil.safeName(variable.name),
|
||||||
CallableMemberDescriptor.Kind.DECLARATION,
|
CallableMemberDescriptor.Kind.DECLARATION,
|
||||||
@@ -207,7 +207,7 @@ class LocalVariableResolver(
|
|||||||
|
|
||||||
private fun initializeWithDefaultGetterSetter(propertyDescriptor: PropertyDescriptorImpl) {
|
private fun initializeWithDefaultGetterSetter(propertyDescriptor: PropertyDescriptorImpl) {
|
||||||
var getter = propertyDescriptor.getter
|
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 = DescriptorFactory.createDefaultGetter(propertyDescriptor, Annotations.EMPTY)
|
||||||
getter.initialize(propertyDescriptor.type)
|
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
|
* 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 !is ClassDescriptor || supertypeDeclaration.isExpect) continue
|
||||||
if (supertypeDeclaration.visibility == Visibilities.LOCAL) continue
|
if (supertypeDeclaration.visibility == DescriptorVisibilities.LOCAL) continue
|
||||||
|
|
||||||
val superTypeClassId = supertypeDeclaration.classId ?: continue
|
val superTypeClassId = supertypeDeclaration.classId ?: continue
|
||||||
val dependency = moduleDescriptor.findClassAcrossModuleDependencies(superTypeClassId)
|
val dependency = moduleDescriptor.findClassAcrossModuleDependencies(superTypeClassId)
|
||||||
|
|||||||
@@ -134,19 +134,19 @@ public class ModifiersChecker {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static Visibility resolveVisibilityFromModifiers(
|
public static DescriptorVisibility resolveVisibilityFromModifiers(
|
||||||
@NotNull KtModifierListOwner modifierListOwner,
|
@NotNull KtModifierListOwner modifierListOwner,
|
||||||
@NotNull Visibility defaultVisibility
|
@NotNull DescriptorVisibility defaultVisibility
|
||||||
) {
|
) {
|
||||||
return resolveVisibilityFromModifiers(modifierListOwner.getModifierList(), 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 == null) return defaultVisibility;
|
||||||
if (modifierList.hasModifier(PRIVATE_KEYWORD)) return Visibilities.PRIVATE;
|
if (modifierList.hasModifier(PRIVATE_KEYWORD)) return DescriptorVisibilities.PRIVATE;
|
||||||
if (modifierList.hasModifier(PUBLIC_KEYWORD)) return Visibilities.PUBLIC;
|
if (modifierList.hasModifier(PUBLIC_KEYWORD)) return DescriptorVisibilities.PUBLIC;
|
||||||
if (modifierList.hasModifier(PROTECTED_KEYWORD)) return Visibilities.PROTECTED;
|
if (modifierList.hasModifier(PROTECTED_KEYWORD)) return DescriptorVisibilities.PROTECTED;
|
||||||
if (modifierList.hasModifier(INTERNAL_KEYWORD)) return Visibilities.INTERNAL;
|
if (modifierList.hasModifier(INTERNAL_KEYWORD)) return DescriptorVisibilities.INTERNAL;
|
||||||
return defaultVisibility;
|
return defaultVisibility;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -232,7 +232,7 @@ class OverloadResolver(
|
|||||||
|
|
||||||
private fun DeclarationDescriptor.isPrivate() =
|
private fun DeclarationDescriptor.isPrivate() =
|
||||||
this is DeclarationDescriptorWithVisibility &&
|
this is DeclarationDescriptorWithVisibility &&
|
||||||
Visibilities.isPrivate(this.visibility)
|
DescriptorVisibilities.isPrivate(this.visibility)
|
||||||
|
|
||||||
private fun checkOverloadsInClass(members: Collection<CallableMemberDescriptor>) {
|
private fun checkOverloadsInClass(members: Collection<CallableMemberDescriptor>) {
|
||||||
if (members.size == 1) return
|
if (members.size == 1) return
|
||||||
|
|||||||
@@ -504,7 +504,7 @@ class OverrideResolver(
|
|||||||
private fun checkVisibilityForMember(declaration: KtDeclaration, memberDescriptor: CallableMemberDescriptor) {
|
private fun checkVisibilityForMember(declaration: KtDeclaration, memberDescriptor: CallableMemberDescriptor) {
|
||||||
val visibility = memberDescriptor.visibility
|
val visibility = memberDescriptor.visibility
|
||||||
for (descriptor in memberDescriptor.overriddenDescriptors) {
|
for (descriptor in memberDescriptor.overriddenDescriptors) {
|
||||||
val compare = Visibilities.compare(visibility, descriptor.visibility)
|
val compare = DescriptorVisibilities.compare(visibility, descriptor.visibility)
|
||||||
if (compare == null) {
|
if (compare == null) {
|
||||||
trace.report(
|
trace.report(
|
||||||
CANNOT_CHANGE_ACCESS_PRIVILEGE.on(
|
CANNOT_CHANGE_ACCESS_PRIVILEGE.on(
|
||||||
@@ -601,7 +601,7 @@ class OverrideResolver(
|
|||||||
val relevantDirectlyOverridden =
|
val relevantDirectlyOverridden =
|
||||||
getRelevantDirectlyOverridden(overriddenDeclarationsByDirectParent, allFilteredOverriddenDeclarations)
|
getRelevantDirectlyOverridden(overriddenDeclarationsByDirectParent, allFilteredOverriddenDeclarations)
|
||||||
|
|
||||||
if (descriptor.visibility === Visibilities.INVISIBLE_FAKE) {
|
if (descriptor.visibility === DescriptorVisibilities.INVISIBLE_FAKE) {
|
||||||
checkInvisibleFakeOverride(descriptor, relevantDirectlyOverridden, reportingStrategy)
|
checkInvisibleFakeOverride(descriptor, relevantDirectlyOverridden, reportingStrategy)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -811,10 +811,10 @@ internal fun isVisible(
|
|||||||
|
|
||||||
val visibility = descriptor.visibility
|
val visibility = descriptor.visibility
|
||||||
if (position == QualifierPosition.IMPORT) {
|
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
|
if (!visibility.mustCheckInImports()) return true
|
||||||
}
|
}
|
||||||
return Visibilities.isVisibleIgnoringReceiver(descriptor, shouldBeVisibleFrom)
|
return DescriptorVisibilities.isVisibleIgnoringReceiver(descriptor, shouldBeVisibleFrom)
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum class QualifierPosition {
|
internal enum class QualifierPosition {
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ class ShadowedExtensionChecker(val typeSpecificityComparator: TypeSpecificityCom
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun DeclarationDescriptorWithVisibility.isPublic() =
|
private fun DeclarationDescriptorWithVisibility.isPublic() =
|
||||||
visibility.normalize() == Visibilities.PUBLIC
|
visibility.normalize() == DescriptorVisibilities.PUBLIC
|
||||||
|
|
||||||
private fun isExtensionFunctionShadowedByMemberFunction(extension: FunctionDescriptor, member: FunctionDescriptor): Boolean {
|
private fun isExtensionFunctionShadowedByMemberFunction(extension: FunctionDescriptor, member: FunctionDescriptor): Boolean {
|
||||||
// Permissive check:
|
// Permissive check:
|
||||||
|
|||||||
@@ -324,7 +324,7 @@ class TypeResolver(
|
|||||||
type: KotlinType,
|
type: KotlinType,
|
||||||
source: SourceElement
|
source: SourceElement
|
||||||
) : VariableDescriptorImpl(containingDeclaration, annotations, name, type, source) {
|
) : VariableDescriptorImpl(containingDeclaration, annotations, name, type, source) {
|
||||||
override fun getVisibility() = Visibilities.LOCAL
|
override fun getVisibility() = DescriptorVisibilities.LOCAL
|
||||||
|
|
||||||
override fun substitute(substitutor: TypeSubstitutor): VariableDescriptor? {
|
override fun substitute(substitutor: TypeSubstitutor): VariableDescriptor? {
|
||||||
throw UnsupportedOperationException("Should not be called for descriptor of type ${this::class.java}")
|
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) =
|
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() =
|
private fun TypeParameterDescriptor.varianceWithManual() =
|
||||||
if (manualVariance != null && this.original == manualVariance.descriptor) manualVariance.variance else variance
|
if (manualVariance != null && this.original == manualVariance.descriptor) manualVariance.variance else variance
|
||||||
|
|
||||||
fun recordPrivateToThisIfNeeded(descriptor: CallableMemberDescriptor) {
|
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
|
val psiElement = descriptor.source.getPsi() as? KtCallableDeclaration ?: return
|
||||||
|
|
||||||
@@ -185,11 +185,11 @@ class VarianceCheckerCore(
|
|||||||
|
|
||||||
private fun recordPrivateToThis(descriptor: CallableMemberDescriptor) {
|
private fun recordPrivateToThis(descriptor: CallableMemberDescriptor) {
|
||||||
when (descriptor) {
|
when (descriptor) {
|
||||||
is FunctionDescriptorImpl -> descriptor.visibility = Visibilities.PRIVATE_TO_THIS
|
is FunctionDescriptorImpl -> descriptor.visibility = DescriptorVisibilities.PRIVATE_TO_THIS
|
||||||
is PropertyDescriptorImpl -> {
|
is PropertyDescriptorImpl -> {
|
||||||
descriptor.visibility = Visibilities.PRIVATE_TO_THIS
|
descriptor.visibility = DescriptorVisibilities.PRIVATE_TO_THIS
|
||||||
for (accessor in descriptor.accessors) {
|
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}")
|
else -> throw IllegalStateException("Unexpected descriptor type: ${descriptor::class.java.name}")
|
||||||
|
|||||||
@@ -177,14 +177,14 @@ class CandidateResolver(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun CallCandidateResolutionContext<*>.checkVisibilityWithoutReceiver() = checkAndReport {
|
private fun CallCandidateResolutionContext<*>.checkVisibilityWithoutReceiver() = checkAndReport {
|
||||||
checkVisibilityWithDispatchReceiver(Visibilities.ALWAYS_SUITABLE_RECEIVER, null)
|
checkVisibilityWithDispatchReceiver(DescriptorVisibilities.ALWAYS_SUITABLE_RECEIVER, null)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun CallCandidateResolutionContext<*>.checkVisibilityWithDispatchReceiver(
|
private fun CallCandidateResolutionContext<*>.checkVisibilityWithDispatchReceiver(
|
||||||
receiverArgument: ReceiverValue?,
|
receiverArgument: ReceiverValue?,
|
||||||
smartCastType: KotlinType?
|
smartCastType: KotlinType?
|
||||||
): ResolutionStatus {
|
): ResolutionStatus {
|
||||||
val invisibleMember = Visibilities.findInvisibleMember(
|
val invisibleMember = DescriptorVisibilities.findInvisibleMember(
|
||||||
getReceiverValueWithSmartCast(receiverArgument, smartCastType), candidateDescriptor, scope.ownerDescriptor
|
getReceiverValueWithSmartCast(receiverArgument, smartCastType), candidateDescriptor, scope.ownerDescriptor
|
||||||
)
|
)
|
||||||
return if (invisibleMember != null) {
|
return if (invisibleMember != null) {
|
||||||
@@ -204,7 +204,7 @@ class CandidateResolver(
|
|||||||
private fun CallCandidateResolutionContext<*>.isCandidateVisible(
|
private fun CallCandidateResolutionContext<*>.isCandidateVisible(
|
||||||
receiverArgument: ReceiverValue?,
|
receiverArgument: ReceiverValue?,
|
||||||
smartCastType: KotlinType?
|
smartCastType: KotlinType?
|
||||||
) = Visibilities.findInvisibleMember(
|
) = DescriptorVisibilities.findInvisibleMember(
|
||||||
getReceiverValueWithSmartCast(receiverArgument, smartCastType),
|
getReceiverValueWithSmartCast(receiverArgument, smartCastType),
|
||||||
candidateDescriptor, scope.ownerDescriptor
|
candidateDescriptor, scope.ownerDescriptor
|
||||||
) == null
|
) == null
|
||||||
@@ -474,7 +474,7 @@ class CandidateResolver(
|
|||||||
if (!context.isDebuggerContext
|
if (!context.isDebuggerContext
|
||||||
&& candidateCall.dispatchReceiver != null
|
&& candidateCall.dispatchReceiver != null
|
||||||
// Do not report error if it's already reported when checked without receiver
|
// 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(
|
resultStatus = resultStatus.combine(
|
||||||
context.checkVisibilityWithDispatchReceiver(
|
context.checkVisibilityWithDispatchReceiver(
|
||||||
candidateCall.dispatchReceiver, candidateCall.smartCastDispatchReceiverType
|
candidateCall.dispatchReceiver, candidateCall.smartCastDispatchReceiverType
|
||||||
|
|||||||
@@ -259,7 +259,7 @@ internal class InlineChecker(private val descriptor: FunctionDescriptor) : CallC
|
|||||||
val isInlineFunPublicOrPublishedApi = inlineFunEffectiveVisibility.publicApi
|
val isInlineFunPublicOrPublishedApi = inlineFunEffectiveVisibility.publicApi
|
||||||
if (isInlineFunPublicOrPublishedApi &&
|
if (isInlineFunPublicOrPublishedApi &&
|
||||||
!isCalledFunPublicOrPublishedApi &&
|
!isCalledFunPublicOrPublishedApi &&
|
||||||
calledDescriptor.visibility !== Visibilities.LOCAL) {
|
calledDescriptor.visibility !== DescriptorVisibilities.LOCAL) {
|
||||||
context.trace.report(NON_PUBLIC_CALL_FROM_PUBLIC_INLINE.on(expression, calledDescriptor, descriptor))
|
context.trace.report(NON_PUBLIC_CALL_FROM_PUBLIC_INLINE.on(expression, calledDescriptor, descriptor))
|
||||||
} else {
|
} else {
|
||||||
checkPrivateClassMemberAccess(calledDescriptor, expression, context)
|
checkPrivateClassMemberAccess(calledDescriptor, expression, context)
|
||||||
@@ -267,8 +267,8 @@ internal class InlineChecker(private val descriptor: FunctionDescriptor) : CallC
|
|||||||
|
|
||||||
if (calledDescriptor !is ConstructorDescriptor &&
|
if (calledDescriptor !is ConstructorDescriptor &&
|
||||||
isInlineFunPublicOrPublishedApi &&
|
isInlineFunPublicOrPublishedApi &&
|
||||||
inlineFunEffectiveVisibility.toVisibility() !== Visibilities.PROTECTED &&
|
inlineFunEffectiveVisibility.toVisibility() !== DescriptorVisibilities.PROTECTED &&
|
||||||
calledFunEffectiveVisibility.toVisibility() === Visibilities.PROTECTED) {
|
calledFunEffectiveVisibility.toVisibility() === DescriptorVisibilities.PROTECTED) {
|
||||||
if (prohibitProtectedCallFromInline) {
|
if (prohibitProtectedCallFromInline) {
|
||||||
context.trace.report(PROTECTED_CALL_FROM_PUBLIC_INLINE_ERROR.on(expression, calledDescriptor))
|
context.trace.report(PROTECTED_CALL_FROM_PUBLIC_INLINE_ERROR.on(expression, calledDescriptor))
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
+4
-4
@@ -18,7 +18,7 @@ package org.jetbrains.kotlin.resolve.calls.checkers
|
|||||||
|
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.kotlin.descriptors.ConstructorDescriptor
|
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.descriptors.impl.TypeAliasConstructorDescriptor
|
||||||
import org.jetbrains.kotlin.diagnostics.Errors
|
import org.jetbrains.kotlin.diagnostics.Errors
|
||||||
import org.jetbrains.kotlin.psi.KtConstructorCalleeExpression
|
import org.jetbrains.kotlin.psi.KtConstructorCalleeExpression
|
||||||
@@ -35,9 +35,9 @@ object ProtectedConstructorCallChecker : CallChecker {
|
|||||||
|
|
||||||
val actualConstructor = (descriptor as? TypeAliasConstructorDescriptor)?.underlyingConstructorDescriptor ?: descriptor
|
val actualConstructor = (descriptor as? TypeAliasConstructorDescriptor)?.underlyingConstructorDescriptor ?: descriptor
|
||||||
|
|
||||||
if (actualConstructor.visibility.normalize() != Visibilities.PROTECTED) return
|
if (actualConstructor.visibility.normalize() != DescriptorVisibilities.PROTECTED) return
|
||||||
// Error already reported
|
// Error already reported
|
||||||
if (!Visibilities.isVisibleWithAnyReceiver(descriptor, scopeOwner)) return
|
if (!DescriptorVisibilities.isVisibleWithAnyReceiver(descriptor, scopeOwner)) return
|
||||||
|
|
||||||
val calleeExpression = resolvedCall.call.calleeExpression
|
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
|
// And without ProtectedConstructorCallChecker such calls would be allowed only because they are performed within subclass
|
||||||
// of constructor owner
|
// of constructor owner
|
||||||
@Suppress("DEPRECATION")
|
@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))
|
context.trace.report(Errors.PROTECTED_CONSTRUCTOR_NOT_IN_SUPER_CALL.on(reportOn, descriptor))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -130,7 +130,7 @@ private fun isAccessedBeforeAllClosureWriters(
|
|||||||
|
|
||||||
|
|
||||||
private fun DeclarationDescriptorWithVisibility.isInvisibleFromOtherModules(): Boolean {
|
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
|
val containingDeclaration = containingDeclaration
|
||||||
return containingDeclaration is DeclarationDescriptorWithVisibility && containingDeclaration.isInvisibleFromOtherModules()
|
return containingDeclaration is DeclarationDescriptorWithVisibility && containingDeclaration.isInvisibleFromOtherModules()
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ class DynamicCallableDescriptors(private val storageManager: StorageManager, bui
|
|||||||
owner,
|
owner,
|
||||||
Annotations.EMPTY,
|
Annotations.EMPTY,
|
||||||
Modality.FINAL,
|
Modality.FINAL,
|
||||||
Visibilities.PUBLIC,
|
DescriptorVisibilities.PUBLIC,
|
||||||
true,
|
true,
|
||||||
name,
|
name,
|
||||||
CallableMemberDescriptor.Kind.DECLARATION,
|
CallableMemberDescriptor.Kind.DECLARATION,
|
||||||
@@ -132,7 +132,7 @@ class DynamicCallableDescriptors(private val storageManager: StorageManager, bui
|
|||||||
createValueParameters(functionDescriptor, call),
|
createValueParameters(functionDescriptor, call),
|
||||||
dynamicType,
|
dynamicType,
|
||||||
Modality.FINAL,
|
Modality.FINAL,
|
||||||
Visibilities.PUBLIC
|
DescriptorVisibilities.PUBLIC
|
||||||
)
|
)
|
||||||
functionDescriptor.setHasSynthesizedParameterNames(true)
|
functionDescriptor.setHasSynthesizedParameterNames(true)
|
||||||
functionDescriptor.isOperator = isConventionCall(call)
|
functionDescriptor.isOperator = isConventionCall(call)
|
||||||
|
|||||||
+2
-2
@@ -105,8 +105,8 @@ class ExplicitApiDeclarationChecker : DeclarationChecker {
|
|||||||
val callableMemberDescriptor = descriptor as? CallableMemberDescriptor
|
val callableMemberDescriptor = descriptor as? CallableMemberDescriptor
|
||||||
|
|
||||||
val visibility = callableMemberDescriptor?.effectiveVisibility()?.toVisibility()
|
val visibility = callableMemberDescriptor?.effectiveVisibility()?.toVisibility()
|
||||||
return (checkForPublicApi && visibility?.isPublicAPI == true) || (checkForInternal && visibility == Visibilities.INTERNAL) ||
|
return (checkForPublicApi && visibility?.isPublicAPI == true) || (checkForInternal && visibility == DescriptorVisibilities.INTERNAL) ||
|
||||||
(checkForPrivate && visibility == Visibilities.PRIVATE)
|
(checkForPrivate && visibility == DescriptorVisibilities.PRIVATE)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun returnTypeCheckIsApplicable(element: KtCallableDeclaration): Boolean {
|
fun returnTypeCheckIsApplicable(element: KtCallableDeclaration): Boolean {
|
||||||
|
|||||||
+1
-1
@@ -47,7 +47,7 @@ object InlineClassDeclarationChecker : DeclarationChecker {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val primaryConstructorVisibility = descriptor.unsubstitutedPrimaryConstructor?.visibility
|
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))
|
trace.report(Errors.NON_PUBLIC_PRIMARY_CONSTRUCTOR_OF_INLINE_CLASS.on(primaryConstructor.visibilityModifier() ?: inlineKeyword))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -28,7 +28,7 @@ import org.jetbrains.kotlin.types.typeUtil.isSubtypeOf
|
|||||||
|
|
||||||
object KClassWithIncorrectTypeArgumentChecker : DeclarationChecker {
|
object KClassWithIncorrectTypeArgumentChecker : DeclarationChecker {
|
||||||
override fun check(declaration: KtDeclaration, descriptor: DeclarationDescriptor, context: DeclarationCheckerContext) {
|
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
|
if (declaration !is KtCallableDeclaration || declaration.typeReference != null) return
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.builtins.StandardNames
|
|||||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptorWithVisibility
|
import org.jetbrains.kotlin.descriptors.DeclarationDescriptorWithVisibility
|
||||||
import org.jetbrains.kotlin.descriptors.PropertyAccessorDescriptor
|
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.diagnostics.Errors
|
||||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext
|
import org.jetbrains.kotlin.resolve.BindingContext
|
||||||
@@ -32,7 +32,7 @@ object PublishedApiUsageChecker {
|
|||||||
descriptor: DeclarationDescriptor,
|
descriptor: DeclarationDescriptor,
|
||||||
trace: BindingTrace
|
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
|
// Don't report the diagnostic twice
|
||||||
if (descriptor is PropertyAccessorDescriptor) return
|
if (descriptor is PropertyAccessorDescriptor) return
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -45,7 +45,7 @@ class ResultClassInReturnTypeChecker : DeclarationChecker {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val visibility = (declarationDescriptor as DeclarationDescriptorWithVisibility).visibility
|
val visibility = (declarationDescriptor as DeclarationDescriptorWithVisibility).visibility
|
||||||
return !Visibilities.isPrivate(visibility) && visibility != Visibilities.LOCAL
|
return !DescriptorVisibilities.isPrivate(visibility) && visibility != DescriptorVisibilities.LOCAL
|
||||||
}
|
}
|
||||||
|
|
||||||
return true
|
return true
|
||||||
|
|||||||
@@ -51,8 +51,8 @@ class FunctionImportedFromObject(
|
|||||||
override fun getOriginal() = _original as FunctionDescriptor
|
override fun getOriginal() = _original as FunctionDescriptor
|
||||||
|
|
||||||
override fun copy(
|
override fun copy(
|
||||||
newOwner: DeclarationDescriptor?, modality: Modality?, visibility: Visibility?,
|
newOwner: DeclarationDescriptor?, modality: Modality?, visibility: DescriptorVisibility?,
|
||||||
kind: CallableMemberDescriptor.Kind?, copyOverrides: Boolean
|
kind: CallableMemberDescriptor.Kind?, copyOverrides: Boolean
|
||||||
): FunctionDescriptor {
|
): FunctionDescriptor {
|
||||||
throw UnsupportedOperationException("copy() should not be called on ${this::class.java.simpleName}, was called for $this")
|
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 getOriginal() = _original as PropertyDescriptor
|
||||||
|
|
||||||
override fun copy(
|
override fun copy(
|
||||||
newOwner: DeclarationDescriptor?, modality: Modality?, visibility: Visibility?,
|
newOwner: DeclarationDescriptor?, modality: Modality?, visibility: DescriptorVisibility?,
|
||||||
kind: CallableMemberDescriptor.Kind?, copyOverrides: Boolean
|
kind: CallableMemberDescriptor.Kind?, copyOverrides: Boolean
|
||||||
): FunctionDescriptor {
|
): FunctionDescriptor {
|
||||||
throw UnsupportedOperationException("copy() should not be called on ${this::class.java.simpleName}, was called for $this")
|
throw UnsupportedOperationException("copy() should not be called on ${this::class.java.simpleName}, was called for $this")
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -142,7 +142,7 @@ class InlineAnalyzerExtension(
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Visibilities.isPrivate(callableDescriptor.visibility)) {
|
if (DescriptorVisibilities.isPrivate(callableDescriptor.visibility)) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.resolve.inline
|
|||||||
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.MemberDescriptor
|
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.name.FqName
|
||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||||
|
|
||||||
@@ -31,7 +31,7 @@ fun MemberDescriptor.isInlineOnly(): Boolean =
|
|||||||
(hasInlineOnlyAnnotation() || DescriptorUtils.getDirectMember(this).hasInlineOnlyAnnotation())
|
(hasInlineOnlyAnnotation() || DescriptorUtils.getDirectMember(this).hasInlineOnlyAnnotation())
|
||||||
|
|
||||||
private fun MemberDescriptor.isPrivateInlineSuspend(): Boolean =
|
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 =
|
fun MemberDescriptor.isInlineWithReified(): Boolean =
|
||||||
this is CallableMemberDescriptor && (hasReifiedParameters() || DescriptorUtils.getDirectMember(this).hasReifiedParameters())
|
this is CallableMemberDescriptor && (hasReifiedParameters() || DescriptorUtils.getDirectMember(this).hasReifiedParameters())
|
||||||
|
|||||||
@@ -269,7 +269,7 @@ class FileScopeFactory(
|
|||||||
override fun getContributedClassifier(name: Name, location: LookupLocation): ClassifierDescriptor? {
|
override fun getContributedClassifier(name: Name, location: LookupLocation): ClassifierDescriptor? {
|
||||||
if (name in excludedNames) return null
|
if (name in excludedNames) return null
|
||||||
val classifier = scope.getContributedClassifier(name, location) ?: 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 }
|
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 visibility = (descriptor as DeclarationDescriptorWithVisibility).visibility
|
||||||
val includeVisible = filteringKind == FilteringKind.VISIBLE_CLASSES
|
val includeVisible = filteringKind == FilteringKind.VISIBLE_CLASSES
|
||||||
if (!visibility.mustCheckInImports()) return includeVisible
|
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? {
|
override fun getContributedClassifier(name: Name, location: LookupLocation): ClassifierDescriptor? {
|
||||||
|
|||||||
+6
-6
@@ -56,8 +56,8 @@ import java.util.Collections;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static kotlin.collections.CollectionsKt.firstOrNull;
|
import static kotlin.collections.CollectionsKt.firstOrNull;
|
||||||
import static org.jetbrains.kotlin.descriptors.Visibilities.PRIVATE;
|
import static org.jetbrains.kotlin.descriptors.DescriptorVisibilities.PRIVATE;
|
||||||
import static org.jetbrains.kotlin.descriptors.Visibilities.PUBLIC;
|
import static org.jetbrains.kotlin.descriptors.DescriptorVisibilities.PUBLIC;
|
||||||
import static org.jetbrains.kotlin.diagnostics.Errors.*;
|
import static org.jetbrains.kotlin.diagnostics.Errors.*;
|
||||||
import static org.jetbrains.kotlin.lexer.KtTokens.INNER_KEYWORD;
|
import static org.jetbrains.kotlin.lexer.KtTokens.INNER_KEYWORD;
|
||||||
import static org.jetbrains.kotlin.resolve.BindingContext.TYPE;
|
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 LazyClassTypeConstructor typeConstructor;
|
||||||
private final NotNullLazyValue<Modality> modality;
|
private final NotNullLazyValue<Modality> modality;
|
||||||
private final Visibility visibility;
|
private final DescriptorVisibility visibility;
|
||||||
private final ClassKind kind;
|
private final ClassKind kind;
|
||||||
private final boolean isInner;
|
private final boolean isInner;
|
||||||
private final boolean isData;
|
private final boolean isData;
|
||||||
@@ -149,7 +149,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes
|
|||||||
}
|
}
|
||||||
|
|
||||||
boolean isLocal = classOrObject != null && KtPsiUtil.isLocal(classOrObject);
|
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.isInner = modifierList != null && modifierList.hasModifier(INNER_KEYWORD) && !isIllegalInner(this);
|
||||||
this.isData = modifierList != null && modifierList.hasModifier(KtTokens.DATA_KEYWORD);
|
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(),
|
initialize(null, null, Collections.emptyList(), Collections.emptyList(),
|
||||||
null, Modality.FINAL, Visibilities.PRIVATE);
|
null, Modality.FINAL, DescriptorVisibilities.PRIVATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@@ -513,7 +513,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public Visibility getVisibility() {
|
public DescriptorVisibility getVisibility() {
|
||||||
return visibility;
|
return visibility;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -38,7 +38,7 @@ class LazyTypeAliasDescriptor(
|
|||||||
annotations: Annotations,
|
annotations: Annotations,
|
||||||
name: Name,
|
name: Name,
|
||||||
sourceElement: SourceElement,
|
sourceElement: SourceElement,
|
||||||
visibility: Visibility
|
visibility: DescriptorVisibility
|
||||||
) : AbstractTypeAliasDescriptor(containingDeclaration, annotations, name, sourceElement, visibility),
|
) : AbstractTypeAliasDescriptor(containingDeclaration, annotations, name, sourceElement, visibility),
|
||||||
TypeAliasDescriptor {
|
TypeAliasDescriptor {
|
||||||
override val constructors: Collection<TypeAliasConstructorDescriptor> by storageManager.createLazyValue {
|
override val constructors: Collection<TypeAliasConstructorDescriptor> by storageManager.createLazyValue {
|
||||||
@@ -122,7 +122,7 @@ class LazyTypeAliasDescriptor(
|
|||||||
annotations: Annotations,
|
annotations: Annotations,
|
||||||
name: Name,
|
name: Name,
|
||||||
sourceElement: SourceElement,
|
sourceElement: SourceElement,
|
||||||
visibility: Visibility
|
visibility: DescriptorVisibility
|
||||||
): LazyTypeAliasDescriptor =
|
): LazyTypeAliasDescriptor =
|
||||||
LazyTypeAliasDescriptor(
|
LazyTypeAliasDescriptor(
|
||||||
storageManager, trace,
|
storageManager, trace,
|
||||||
|
|||||||
+1
-1
@@ -230,7 +230,7 @@ public class ControlStructureTypingUtils {
|
|||||||
valueParameters,
|
valueParameters,
|
||||||
returnType,
|
returnType,
|
||||||
Modality.FINAL,
|
Modality.FINAL,
|
||||||
Visibilities.PUBLIC
|
DescriptorVisibilities.PUBLIC
|
||||||
);
|
);
|
||||||
return function;
|
return function;
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -628,7 +628,7 @@ class DoubleColonExpressionResolver(
|
|||||||
createValueParametersForInvokeInFunctionType(functionDescriptor, type.arguments.dropLast(1)),
|
createValueParametersForInvokeInFunctionType(functionDescriptor, type.arguments.dropLast(1)),
|
||||||
type.arguments.last().type,
|
type.arguments.last().type,
|
||||||
Modality.FINAL,
|
Modality.FINAL,
|
||||||
Visibilities.PUBLIC
|
DescriptorVisibilities.PUBLIC
|
||||||
)
|
)
|
||||||
|
|
||||||
context.trace.record(BindingContext.FUNCTION, expression, functionDescriptor)
|
context.trace.record(BindingContext.FUNCTION, expression, functionDescriptor)
|
||||||
@@ -826,7 +826,7 @@ class DoubleColonExpressionResolver(
|
|||||||
): Boolean {
|
): Boolean {
|
||||||
val receiver = receiverTypeFor(descriptor, lhs)?.let(::TransientReceiver)
|
val receiver = receiverTypeFor(descriptor, lhs)?.let(::TransientReceiver)
|
||||||
val setter = descriptor.setter
|
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(
|
fun createKCallableTypeForReference(
|
||||||
|
|||||||
+1
-1
@@ -239,7 +239,7 @@ public class ExpressionTypingUtils {
|
|||||||
|
|
||||||
public static boolean isLocalFunction(@Nullable DeclarationDescriptor descriptor) {
|
public static boolean isLocalFunction(@Nullable DeclarationDescriptor descriptor) {
|
||||||
if (descriptor != null && descriptor.getClass() == SimpleFunctionDescriptorImpl.class) {
|
if (descriptor != null && descriptor.getClass() == SimpleFunctionDescriptorImpl.class) {
|
||||||
return ((SimpleFunctionDescriptorImpl) descriptor).getVisibility() == Visibilities.LOCAL;
|
return ((SimpleFunctionDescriptorImpl) descriptor).getVisibility() == DescriptorVisibilities.LOCAL;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -109,8 +109,8 @@ fun getNonPrivateTraitMembersForDelegation(
|
|||||||
): CallableMemberDescriptor? {
|
): CallableMemberDescriptor? {
|
||||||
val traitMember = findInterfaceImplementation(descriptor, returnImplNotDelegate)
|
val traitMember = findInterfaceImplementation(descriptor, returnImplNotDelegate)
|
||||||
if (traitMember == null ||
|
if (traitMember == null ||
|
||||||
Visibilities.isPrivate(traitMember.visibility) ||
|
DescriptorVisibilities.isPrivate(traitMember.visibility) ||
|
||||||
traitMember.visibility == Visibilities.INVISIBLE_FAKE
|
traitMember.visibility == DescriptorVisibilities.INVISIBLE_FAKE
|
||||||
) return null
|
) return null
|
||||||
return traitMember
|
return traitMember
|
||||||
}
|
}
|
||||||
+2
-2
@@ -17,7 +17,7 @@
|
|||||||
package org.jetbrains.kotlin.backend.common
|
package org.jetbrains.kotlin.backend.common
|
||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
|
||||||
import org.jetbrains.kotlin.ir.IrElement
|
import org.jetbrains.kotlin.ir.IrElement
|
||||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
@@ -311,7 +311,7 @@ class CheckIrElementVisitor(
|
|||||||
if (declaration is IrOverridableDeclaration<*>) {
|
if (declaration is IrOverridableDeclaration<*>) {
|
||||||
for (overriddenSymbol in declaration.overriddenSymbols) {
|
for (overriddenSymbol in declaration.overriddenSymbols) {
|
||||||
val overriddenDeclaration = overriddenSymbol.owner as? IrDeclarationWithVisibility ?: continue
|
val overriddenDeclaration = overriddenSymbol.owner as? IrDeclarationWithVisibility ?: continue
|
||||||
if (overriddenDeclaration.visibility == Visibilities.PRIVATE) {
|
if (overriddenDeclaration.visibility == DescriptorVisibilities.PRIVATE) {
|
||||||
reportError(declaration, "Overrides private declaration $overriddenDeclaration")
|
reportError(declaration, "Overrides private declaration $overriddenDeclaration")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ import org.jetbrains.kotlin.backend.common.CommonBackendContext
|
|||||||
import org.jetbrains.kotlin.backend.common.deepCopyWithVariables
|
import org.jetbrains.kotlin.backend.common.deepCopyWithVariables
|
||||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
||||||
import org.jetbrains.kotlin.ir.IrElement
|
import org.jetbrains.kotlin.ir.IrElement
|
||||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||||
@@ -86,7 +86,7 @@ val IrCall.isSuspend get() = (symbol.owner as? IrSimpleFunction)?.isSuspend == t
|
|||||||
val IrFunctionReference.isSuspend get() = (symbol.owner as? IrSimpleFunction)?.isSuspend == true
|
val IrFunctionReference.isSuspend get() = (symbol.owner as? IrSimpleFunction)?.isSuspend == true
|
||||||
|
|
||||||
val IrSimpleFunction.isOverridable: Boolean
|
val IrSimpleFunction.isOverridable: Boolean
|
||||||
get() = visibility != Visibilities.PRIVATE && modality != Modality.FINAL && (parent as? IrClass)?.isFinalClass != true
|
get() = visibility != DescriptorVisibilities.PRIVATE && modality != Modality.FINAL && (parent as? IrClass)?.isFinalClass != true
|
||||||
|
|
||||||
val IrSimpleFunction.isOverridableOrOverrides: Boolean get() = isOverridable || overriddenSymbols.isNotEmpty()
|
val IrSimpleFunction.isOverridableOrOverrides: Boolean get() = isOverridable || overriddenSymbols.isNotEmpty()
|
||||||
|
|
||||||
@@ -456,7 +456,7 @@ fun IrClass.addFakeOverridesViaIncorrectHeuristic(implementedMembers: List<IrSim
|
|||||||
irClass.declarations
|
irClass.declarations
|
||||||
.flatMap { it.toList() }
|
.flatMap { it.toList() }
|
||||||
.filter { it !in overriddenFunctions }
|
.filter { it !in overriddenFunctions }
|
||||||
.filter { it.visibility != Visibilities.PRIVATE }
|
.filter { it.visibility != DescriptorVisibilities.PRIVATE }
|
||||||
}
|
}
|
||||||
.toMutableSet()
|
.toMutableSet()
|
||||||
|
|
||||||
@@ -468,7 +468,7 @@ fun IrClass.addFakeOverridesViaIncorrectHeuristic(implementedMembers: List<IrSim
|
|||||||
irFunction.factory.buildFun {
|
irFunction.factory.buildFun {
|
||||||
origin = IrDeclarationOrigin.FAKE_OVERRIDE
|
origin = IrDeclarationOrigin.FAKE_OVERRIDE
|
||||||
name = irFunction.name
|
name = irFunction.name
|
||||||
visibility = Visibilities.PUBLIC
|
visibility = DescriptorVisibilities.PUBLIC
|
||||||
modality = irFunction.modality
|
modality = irFunction.modality
|
||||||
returnType = irFunction.returnType
|
returnType = irFunction.returnType
|
||||||
isInline = irFunction.isInline
|
isInline = irFunction.isInline
|
||||||
@@ -499,16 +499,16 @@ fun IrClass.addFakeOverridesViaIncorrectHeuristic(implementedMembers: List<IrSim
|
|||||||
|
|
||||||
@OptIn(ObsoleteDescriptorBasedAPI::class)
|
@OptIn(ObsoleteDescriptorBasedAPI::class)
|
||||||
fun IrFactory.createStaticFunctionWithReceivers(
|
fun IrFactory.createStaticFunctionWithReceivers(
|
||||||
irParent: IrDeclarationParent,
|
irParent: IrDeclarationParent,
|
||||||
name: Name,
|
name: Name,
|
||||||
oldFunction: IrFunction,
|
oldFunction: IrFunction,
|
||||||
dispatchReceiverType: IrType? = oldFunction.dispatchReceiverParameter?.type,
|
dispatchReceiverType: IrType? = oldFunction.dispatchReceiverParameter?.type,
|
||||||
origin: IrDeclarationOrigin = oldFunction.origin,
|
origin: IrDeclarationOrigin = oldFunction.origin,
|
||||||
modality: Modality = Modality.FINAL,
|
modality: Modality = Modality.FINAL,
|
||||||
visibility: Visibility = oldFunction.visibility,
|
visibility: DescriptorVisibility = oldFunction.visibility,
|
||||||
isFakeOverride: Boolean = oldFunction.isFakeOverride,
|
isFakeOverride: Boolean = oldFunction.isFakeOverride,
|
||||||
copyMetadata: Boolean = true,
|
copyMetadata: Boolean = true,
|
||||||
typeParametersFromContext: List<IrTypeParameter> = listOf()
|
typeParametersFromContext: List<IrTypeParameter> = listOf()
|
||||||
): IrSimpleFunction {
|
): IrSimpleFunction {
|
||||||
val descriptor = (oldFunction.descriptor as? DescriptorWithContainerSource)?.let {
|
val descriptor = (oldFunction.descriptor as? DescriptorWithContainerSource)?.let {
|
||||||
WrappedFunctionDescriptorWithContainerSource()
|
WrappedFunctionDescriptorWithContainerSource()
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user