Minor. Moved deserialized util functions from top-level to object
This commit is contained in:
+10
-10
@@ -50,11 +50,11 @@ public class MemberDeserializer(private val c: DeserializationContext) {
|
|||||||
val property = DeserializedPropertyDescriptor(
|
val property = DeserializedPropertyDescriptor(
|
||||||
c.containingDeclaration, null,
|
c.containingDeclaration, null,
|
||||||
getAnnotations(proto, flags, AnnotatedCallableKind.PROPERTY),
|
getAnnotations(proto, flags, AnnotatedCallableKind.PROPERTY),
|
||||||
modality(Flags.MODALITY.get(flags)),
|
Deserialization.modality(Flags.MODALITY.get(flags)),
|
||||||
visibility(Flags.VISIBILITY.get(flags)),
|
Deserialization.visibility(Flags.VISIBILITY.get(flags)),
|
||||||
Flags.CALLABLE_KIND.get(flags) == Callable.CallableKind.VAR,
|
Flags.CALLABLE_KIND.get(flags) == Callable.CallableKind.VAR,
|
||||||
c.nameResolver.getName(proto.getName()),
|
c.nameResolver.getName(proto.getName()),
|
||||||
memberKind(Flags.MEMBER_KIND.get(flags)),
|
Deserialization.memberKind(Flags.MEMBER_KIND.get(flags)),
|
||||||
proto,
|
proto,
|
||||||
c.nameResolver,
|
c.nameResolver,
|
||||||
Flags.LATE_INIT.get(flags)
|
Flags.LATE_INIT.get(flags)
|
||||||
@@ -82,8 +82,8 @@ public class MemberDeserializer(private val c: DeserializationContext) {
|
|||||||
PropertyGetterDescriptorImpl(
|
PropertyGetterDescriptorImpl(
|
||||||
property,
|
property,
|
||||||
getAnnotations(proto, getterFlags, AnnotatedCallableKind.PROPERTY_GETTER),
|
getAnnotations(proto, getterFlags, AnnotatedCallableKind.PROPERTY_GETTER),
|
||||||
modality(Flags.MODALITY.get(getterFlags)),
|
Deserialization.modality(Flags.MODALITY.get(getterFlags)),
|
||||||
visibility(Flags.VISIBILITY.get(getterFlags)),
|
Deserialization.visibility(Flags.VISIBILITY.get(getterFlags)),
|
||||||
/* hasBody = */ isNotDefault,
|
/* hasBody = */ isNotDefault,
|
||||||
/* isDefault = */ !isNotDefault,
|
/* isDefault = */ !isNotDefault,
|
||||||
property.getKind(), null, SourceElement.NO_SOURCE
|
property.getKind(), null, SourceElement.NO_SOURCE
|
||||||
@@ -106,8 +106,8 @@ public class MemberDeserializer(private val c: DeserializationContext) {
|
|||||||
val setter = PropertySetterDescriptorImpl(
|
val setter = PropertySetterDescriptorImpl(
|
||||||
property,
|
property,
|
||||||
getAnnotations(proto, setterFlags, AnnotatedCallableKind.PROPERTY_SETTER),
|
getAnnotations(proto, setterFlags, AnnotatedCallableKind.PROPERTY_SETTER),
|
||||||
modality(Flags.MODALITY.get(setterFlags)),
|
Deserialization.modality(Flags.MODALITY.get(setterFlags)),
|
||||||
visibility(Flags.VISIBILITY.get(setterFlags)),
|
Deserialization.visibility(Flags.VISIBILITY.get(setterFlags)),
|
||||||
/* hasBody = */ isNotDefault,
|
/* hasBody = */ isNotDefault,
|
||||||
/* isDefault = */ !isNotDefault,
|
/* isDefault = */ !isNotDefault,
|
||||||
property.getKind(), null, SourceElement.NO_SOURCE
|
property.getKind(), null, SourceElement.NO_SOURCE
|
||||||
@@ -150,8 +150,8 @@ public class MemberDeserializer(private val c: DeserializationContext) {
|
|||||||
local.typeDeserializer.ownTypeParameters,
|
local.typeDeserializer.ownTypeParameters,
|
||||||
local.memberDeserializer.valueParameters(proto, AnnotatedCallableKind.FUNCTION),
|
local.memberDeserializer.valueParameters(proto, AnnotatedCallableKind.FUNCTION),
|
||||||
local.typeDeserializer.type(proto.getReturnType()),
|
local.typeDeserializer.type(proto.getReturnType()),
|
||||||
modality(Flags.MODALITY.get(proto.getFlags())),
|
Deserialization.modality(Flags.MODALITY.get(proto.getFlags())),
|
||||||
visibility(Flags.VISIBILITY.get(proto.getFlags()))
|
Deserialization.visibility(Flags.VISIBILITY.get(proto.getFlags()))
|
||||||
)
|
)
|
||||||
return function
|
return function
|
||||||
}
|
}
|
||||||
@@ -170,7 +170,7 @@ public class MemberDeserializer(private val c: DeserializationContext) {
|
|||||||
descriptor.initialize(
|
descriptor.initialize(
|
||||||
classDescriptor.getTypeConstructor().getParameters(),
|
classDescriptor.getTypeConstructor().getParameters(),
|
||||||
local.memberDeserializer.valueParameters(proto, AnnotatedCallableKind.FUNCTION),
|
local.memberDeserializer.valueParameters(proto, AnnotatedCallableKind.FUNCTION),
|
||||||
visibility(Flags.VISIBILITY.get(proto.getFlags()))
|
Deserialization.visibility(Flags.VISIBILITY.get(proto.getFlags()))
|
||||||
)
|
)
|
||||||
descriptor.setReturnType(local.typeDeserializer.type(proto.getReturnType()))
|
descriptor.setReturnType(local.typeDeserializer.type(proto.getReturnType()))
|
||||||
return descriptor
|
return descriptor
|
||||||
|
|||||||
+1
-1
@@ -130,7 +130,7 @@ public class TypeDeserializer(
|
|||||||
TypeBasedStarProjectionImpl(c.components.moduleDescriptor.builtIns.getNullableAnyType())
|
TypeBasedStarProjectionImpl(c.components.moduleDescriptor.builtIns.getNullableAnyType())
|
||||||
else
|
else
|
||||||
StarProjectionImpl(parameter)
|
StarProjectionImpl(parameter)
|
||||||
else TypeProjectionImpl(variance(typeArgumentProto.getProjection()), type(typeArgumentProto.getType()))
|
else TypeProjectionImpl(Deserialization.variance(typeArgumentProto.getProjection()), type(typeArgumentProto.getType()))
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun toString() = debugName + (if (parent == null) "" else ". Child of ${parent.debugName}")
|
override fun toString() = debugName + (if (parent == null) "" else ". Child of ${parent.debugName}")
|
||||||
|
|||||||
+4
-4
@@ -30,7 +30,7 @@ import org.jetbrains.kotlin.resolve.scopes.JetScope
|
|||||||
import org.jetbrains.kotlin.resolve.scopes.StaticScopeForKotlinClass
|
import org.jetbrains.kotlin.resolve.scopes.StaticScopeForKotlinClass
|
||||||
import org.jetbrains.kotlin.serialization.Flags
|
import org.jetbrains.kotlin.serialization.Flags
|
||||||
import org.jetbrains.kotlin.serialization.ProtoBuf
|
import org.jetbrains.kotlin.serialization.ProtoBuf
|
||||||
import org.jetbrains.kotlin.serialization.deserialization
|
import org.jetbrains.kotlin.serialization.deserialization.Deserialization
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.DeserializationContext
|
import org.jetbrains.kotlin.serialization.deserialization.DeserializationContext
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.DeserializedType
|
import org.jetbrains.kotlin.serialization.deserialization.DeserializedType
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.NameResolver
|
import org.jetbrains.kotlin.serialization.deserialization.NameResolver
|
||||||
@@ -51,10 +51,10 @@ public class DeserializedClassDescriptor(
|
|||||||
outerContext.storageManager,
|
outerContext.storageManager,
|
||||||
nameResolver.getClassId(classProto.getFqName()).getShortClassName()
|
nameResolver.getClassId(classProto.getFqName()).getShortClassName()
|
||||||
) {
|
) {
|
||||||
private val modality = deserialization.modality(Flags.MODALITY.get(classProto.getFlags()))
|
private val modality = Deserialization.modality(Flags.MODALITY.get(classProto.getFlags()))
|
||||||
private val visibility = deserialization.visibility(Flags.VISIBILITY.get(classProto.getFlags()))
|
private val visibility = Deserialization.visibility(Flags.VISIBILITY.get(classProto.getFlags()))
|
||||||
private val kindFromProto = Flags.CLASS_KIND.get(classProto.getFlags())
|
private val kindFromProto = Flags.CLASS_KIND.get(classProto.getFlags())
|
||||||
private val kind = deserialization.classKind(kindFromProto)
|
private val kind = Deserialization.classKind(kindFromProto)
|
||||||
private val isCompanion = kindFromProto == ProtoBuf.Class.Kind.CLASS_OBJECT
|
private val isCompanion = kindFromProto == ProtoBuf.Class.Kind.CLASS_OBJECT
|
||||||
private val isInner = Flags.INNER.get(classProto.getFlags())
|
private val isInner = Flags.INNER.get(classProto.getFlags())
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -28,6 +28,7 @@ import org.jetbrains.kotlin.descriptors.impl.SimpleFunctionDescriptorImpl;
|
|||||||
import org.jetbrains.kotlin.name.Name;
|
import org.jetbrains.kotlin.name.Name;
|
||||||
import org.jetbrains.kotlin.serialization.Flags;
|
import org.jetbrains.kotlin.serialization.Flags;
|
||||||
import org.jetbrains.kotlin.serialization.ProtoBuf;
|
import org.jetbrains.kotlin.serialization.ProtoBuf;
|
||||||
|
import org.jetbrains.kotlin.serialization.deserialization.Deserialization;
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.DeserializationPackage;
|
import org.jetbrains.kotlin.serialization.deserialization.DeserializationPackage;
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.NameResolver;
|
import org.jetbrains.kotlin.serialization.deserialization.NameResolver;
|
||||||
|
|
||||||
@@ -98,7 +99,7 @@ public class DeserializedSimpleFunctionDescriptor extends SimpleFunctionDescript
|
|||||||
null,
|
null,
|
||||||
annotations,
|
annotations,
|
||||||
nameResolver.getName(proto.getName()),
|
nameResolver.getName(proto.getName()),
|
||||||
DeserializationPackage.memberKind(Flags.MEMBER_KIND.get(proto.getFlags())),
|
Deserialization.memberKind(Flags.MEMBER_KIND.get(proto.getFlags())),
|
||||||
proto,
|
proto,
|
||||||
nameResolver
|
nameResolver
|
||||||
);
|
);
|
||||||
|
|||||||
+2
-1
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.descriptors.SourceElement;
|
|||||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
|
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
|
||||||
import org.jetbrains.kotlin.descriptors.impl.AbstractLazyTypeParameterDescriptor;
|
import org.jetbrains.kotlin.descriptors.impl.AbstractLazyTypeParameterDescriptor;
|
||||||
import org.jetbrains.kotlin.serialization.ProtoBuf;
|
import org.jetbrains.kotlin.serialization.ProtoBuf;
|
||||||
|
import org.jetbrains.kotlin.serialization.deserialization.Deserialization;
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.DeserializationContext;
|
import org.jetbrains.kotlin.serialization.deserialization.DeserializationContext;
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.DeserializationPackage;
|
import org.jetbrains.kotlin.serialization.deserialization.DeserializationPackage;
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer;
|
import org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer;
|
||||||
@@ -40,7 +41,7 @@ public class DeserializedTypeParameterDescriptor extends AbstractLazyTypeParamet
|
|||||||
super(c.getStorageManager(),
|
super(c.getStorageManager(),
|
||||||
c.getContainingDeclaration(),
|
c.getContainingDeclaration(),
|
||||||
c.getNameResolver().getName(proto.getName()),
|
c.getNameResolver().getName(proto.getName()),
|
||||||
DeserializationPackage.variance(proto.getVariance()),
|
Deserialization.variance(proto.getVariance()),
|
||||||
proto.getReified(),
|
proto.getReified(),
|
||||||
index,
|
index,
|
||||||
SourceElement.NO_SOURCE);
|
SourceElement.NO_SOURCE);
|
||||||
|
|||||||
+47
-39
@@ -24,47 +24,55 @@ import org.jetbrains.kotlin.descriptors.ClassKind
|
|||||||
import org.jetbrains.kotlin.serialization.ProtoBuf.TypeParameter
|
import org.jetbrains.kotlin.serialization.ProtoBuf.TypeParameter
|
||||||
import org.jetbrains.kotlin.types.Variance
|
import org.jetbrains.kotlin.types.Variance
|
||||||
|
|
||||||
fun memberKind(memberKind: ProtoBuf.Callable.MemberKind) = when (memberKind) {
|
object Deserialization {
|
||||||
ProtoBuf.Callable.MemberKind.DECLARATION -> CallableMemberDescriptor.Kind.DECLARATION
|
@JvmStatic
|
||||||
ProtoBuf.Callable.MemberKind.FAKE_OVERRIDE -> CallableMemberDescriptor.Kind.FAKE_OVERRIDE
|
fun memberKind(memberKind: ProtoBuf.Callable.MemberKind) = when (memberKind) {
|
||||||
ProtoBuf.Callable.MemberKind.DELEGATION -> CallableMemberDescriptor.Kind.DELEGATION
|
ProtoBuf.Callable.MemberKind.DECLARATION -> CallableMemberDescriptor.Kind.DECLARATION
|
||||||
ProtoBuf.Callable.MemberKind.SYNTHESIZED -> CallableMemberDescriptor.Kind.SYNTHESIZED
|
ProtoBuf.Callable.MemberKind.FAKE_OVERRIDE -> CallableMemberDescriptor.Kind.FAKE_OVERRIDE
|
||||||
}
|
ProtoBuf.Callable.MemberKind.DELEGATION -> CallableMemberDescriptor.Kind.DELEGATION
|
||||||
|
ProtoBuf.Callable.MemberKind.SYNTHESIZED -> CallableMemberDescriptor.Kind.SYNTHESIZED
|
||||||
|
}
|
||||||
|
|
||||||
fun modality(modality: ProtoBuf.Modality) = when (modality) {
|
@JvmStatic
|
||||||
ProtoBuf.Modality.FINAL -> Modality.FINAL
|
fun modality(modality: ProtoBuf.Modality) = when (modality) {
|
||||||
ProtoBuf.Modality.OPEN -> Modality.OPEN
|
ProtoBuf.Modality.FINAL -> Modality.FINAL
|
||||||
ProtoBuf.Modality.ABSTRACT -> Modality.ABSTRACT
|
ProtoBuf.Modality.OPEN -> Modality.OPEN
|
||||||
ProtoBuf.Modality.SEALED -> Modality.SEALED
|
ProtoBuf.Modality.ABSTRACT -> Modality.ABSTRACT
|
||||||
}
|
ProtoBuf.Modality.SEALED -> Modality.SEALED
|
||||||
|
}
|
||||||
|
|
||||||
fun visibility(visibility: ProtoBuf.Visibility) = when (visibility) {
|
@JvmStatic
|
||||||
ProtoBuf.Visibility.INTERNAL -> Visibilities.INTERNAL
|
fun visibility(visibility: ProtoBuf.Visibility) = when (visibility) {
|
||||||
ProtoBuf.Visibility.PRIVATE -> Visibilities.PRIVATE
|
ProtoBuf.Visibility.INTERNAL -> Visibilities.INTERNAL
|
||||||
ProtoBuf.Visibility.PRIVATE_TO_THIS -> Visibilities.PRIVATE_TO_THIS
|
ProtoBuf.Visibility.PRIVATE -> Visibilities.PRIVATE
|
||||||
ProtoBuf.Visibility.PROTECTED -> Visibilities.PROTECTED
|
ProtoBuf.Visibility.PRIVATE_TO_THIS -> Visibilities.PRIVATE_TO_THIS
|
||||||
ProtoBuf.Visibility.PUBLIC -> Visibilities.PUBLIC
|
ProtoBuf.Visibility.PROTECTED -> Visibilities.PROTECTED
|
||||||
ProtoBuf.Visibility.LOCAL -> Visibilities.LOCAL
|
ProtoBuf.Visibility.PUBLIC -> Visibilities.PUBLIC
|
||||||
}
|
ProtoBuf.Visibility.LOCAL -> Visibilities.LOCAL
|
||||||
|
}
|
||||||
|
|
||||||
public fun classKind(kind: ProtoBuf.Class.Kind): ClassKind = when (kind) {
|
@JvmStatic
|
||||||
ProtoBuf.Class.Kind.CLASS -> ClassKind.CLASS
|
fun classKind(kind: ProtoBuf.Class.Kind): ClassKind = when (kind) {
|
||||||
ProtoBuf.Class.Kind.TRAIT -> ClassKind.INTERFACE
|
ProtoBuf.Class.Kind.CLASS -> ClassKind.CLASS
|
||||||
ProtoBuf.Class.Kind.ENUM_CLASS -> ClassKind.ENUM_CLASS
|
ProtoBuf.Class.Kind.TRAIT -> ClassKind.INTERFACE
|
||||||
ProtoBuf.Class.Kind.ENUM_ENTRY -> ClassKind.ENUM_ENTRY
|
ProtoBuf.Class.Kind.ENUM_CLASS -> ClassKind.ENUM_CLASS
|
||||||
ProtoBuf.Class.Kind.ANNOTATION_CLASS -> ClassKind.ANNOTATION_CLASS
|
ProtoBuf.Class.Kind.ENUM_ENTRY -> ClassKind.ENUM_ENTRY
|
||||||
ProtoBuf.Class.Kind.OBJECT, ProtoBuf.Class.Kind.CLASS_OBJECT -> ClassKind.OBJECT
|
ProtoBuf.Class.Kind.ANNOTATION_CLASS -> ClassKind.ANNOTATION_CLASS
|
||||||
}
|
ProtoBuf.Class.Kind.OBJECT, ProtoBuf.Class.Kind.CLASS_OBJECT -> ClassKind.OBJECT
|
||||||
|
}
|
||||||
|
|
||||||
fun variance(variance: TypeParameter.Variance) = when (variance) {
|
@JvmStatic
|
||||||
ProtoBuf.TypeParameter.Variance.IN -> Variance.IN_VARIANCE
|
fun variance(variance: TypeParameter.Variance) = when (variance) {
|
||||||
ProtoBuf.TypeParameter.Variance.OUT -> Variance.OUT_VARIANCE
|
ProtoBuf.TypeParameter.Variance.IN -> Variance.IN_VARIANCE
|
||||||
ProtoBuf.TypeParameter.Variance.INV -> Variance.INVARIANT
|
ProtoBuf.TypeParameter.Variance.OUT -> Variance.OUT_VARIANCE
|
||||||
}
|
ProtoBuf.TypeParameter.Variance.INV -> Variance.INVARIANT
|
||||||
|
}
|
||||||
|
|
||||||
fun variance(variance: ProtoBuf.Type.Argument.Projection) = when (variance) {
|
@JvmStatic
|
||||||
ProtoBuf.Type.Argument.Projection.IN -> Variance.IN_VARIANCE
|
fun variance(variance: ProtoBuf.Type.Argument.Projection) = when (variance) {
|
||||||
ProtoBuf.Type.Argument.Projection.OUT -> Variance.OUT_VARIANCE
|
ProtoBuf.Type.Argument.Projection.IN -> Variance.IN_VARIANCE
|
||||||
ProtoBuf.Type.Argument.Projection.INV -> Variance.INVARIANT
|
ProtoBuf.Type.Argument.Projection.OUT -> Variance.OUT_VARIANCE
|
||||||
else -> throw IllegalArgumentException("Only IN, OUT and INV are supported. Actual argument: $variance")
|
ProtoBuf.Type.Argument.Projection.INV -> Variance.INVARIANT
|
||||||
}
|
else -> throw IllegalArgumentException("Only IN, OUT and INV are supported. Actual argument: $variance")
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -48,7 +48,7 @@ import org.jetbrains.kotlin.resolve.jvm.JvmClassName
|
|||||||
import org.jetbrains.kotlin.resolve.jvm.JvmClassName.byInternalName
|
import org.jetbrains.kotlin.resolve.jvm.JvmClassName.byInternalName
|
||||||
import org.jetbrains.kotlin.serialization.Flags
|
import org.jetbrains.kotlin.serialization.Flags
|
||||||
import org.jetbrains.kotlin.serialization.ProtoBuf
|
import org.jetbrains.kotlin.serialization.ProtoBuf
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.visibility
|
import org.jetbrains.kotlin.serialization.deserialization.Deserialization
|
||||||
import org.jetbrains.kotlin.serialization.jvm.BitEncoding
|
import org.jetbrains.kotlin.serialization.jvm.BitEncoding
|
||||||
import org.jetbrains.kotlin.serialization.jvm.JvmProtoBufUtil
|
import org.jetbrains.kotlin.serialization.jvm.JvmProtoBufUtil
|
||||||
import org.jetbrains.org.objectweb.asm.*
|
import org.jetbrains.org.objectweb.asm.*
|
||||||
@@ -399,7 +399,7 @@ public class IncrementalCacheImpl(
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun ProtoBuf.Callable.isPrivate(): Boolean = Visibilities.isPrivate(visibility(Flags.VISIBILITY.get(flags)))
|
private fun ProtoBuf.Callable.isPrivate(): Boolean = Visibilities.isPrivate(Deserialization.visibility(Flags.VISIBILITY.get(flags)))
|
||||||
}
|
}
|
||||||
|
|
||||||
return compareObject.checkEquals(oldClassData.classProto, newClassData.classProto)
|
return compareObject.checkEquals(oldClassData.classProto, newClassData.classProto)
|
||||||
|
|||||||
Reference in New Issue
Block a user