From 954678ab2b4bef46e89cd31a82ad46444a23b874 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Fri, 21 Nov 2014 02:45:13 +0300 Subject: [PATCH] Minor, simplify MemberDeserializer.getAnnotations() --- .../serialization/MemberDeserializer.java | 34 ++++++++----------- .../DeserializedSimpleFunctionDescriptor.java | 20 ++++++----- 2 files changed, 25 insertions(+), 29 deletions(-) diff --git a/core/serialization/src/org/jetbrains/jet/descriptors/serialization/MemberDeserializer.java b/core/serialization/src/org/jetbrains/jet/descriptors/serialization/MemberDeserializer.java index 56fff94cf3e..b213d68840c 100644 --- a/core/serialization/src/org/jetbrains/jet/descriptors/serialization/MemberDeserializer.java +++ b/core/serialization/src/org/jetbrains/jet/descriptors/serialization/MemberDeserializer.java @@ -21,7 +21,10 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.descriptors.serialization.context.DeserializationComponents; import org.jetbrains.jet.descriptors.serialization.context.DeserializationContext; -import org.jetbrains.jet.descriptors.serialization.descriptors.*; +import org.jetbrains.jet.descriptors.serialization.descriptors.AnnotatedCallableKind; +import org.jetbrains.jet.descriptors.serialization.descriptors.DeserializedPropertyDescriptor; +import org.jetbrains.jet.descriptors.serialization.descriptors.DeserializedSimpleFunctionDescriptor; +import org.jetbrains.jet.descriptors.serialization.descriptors.DeserializedTypeParameterDescriptor; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.descriptors.annotations.Annotations; import org.jetbrains.jet.lang.descriptors.impl.ConstructorDescriptorImpl; @@ -156,9 +159,9 @@ public class MemberDeserializer { @NotNull private CallableMemberDescriptor loadFunction(@NotNull Callable proto) { - int flags = proto.getFlags(); + Annotations annotations = getAnnotations(proto, proto.getFlags(), AnnotatedCallableKind.FUNCTION); DeserializedSimpleFunctionDescriptor function = DeserializedSimpleFunctionDescriptor.create( - context.getContainingDeclaration(), proto, getComponents().getAnnotationLoader(), context.getNameResolver() + context.getContainingDeclaration(), proto, context.getNameResolver(), annotations ); DeserializationContext local = context.childContext(function, proto.getTypeParameterList()); function.initialize( @@ -167,8 +170,8 @@ public class MemberDeserializer { local.getTypeDeserializer().getOwnTypeParameters(), local.getMemberDeserializer().valueParameters(proto, AnnotatedCallableKind.FUNCTION), local.getTypeDeserializer().type(proto.getReturnType()), - modality(Flags.MODALITY.get(flags)), - visibility(Flags.VISIBILITY.get(flags)) + modality(Flags.MODALITY.get(proto.getFlags())), + visibility(Flags.VISIBILITY.get(proto.getFlags())) ); return function; } @@ -201,23 +204,14 @@ public class MemberDeserializer { @NotNull private Annotations getAnnotations(@NotNull Callable proto, int flags, @NotNull AnnotatedCallableKind kind) { - return getAnnotations( - context.getContainingDeclaration(), proto, flags, kind, getComponents().getAnnotationLoader(), context.getNameResolver() - ); - } - - public static Annotations getAnnotations( - @NotNull DeclarationDescriptor containingDeclaration, - @NotNull Callable proto, - int flags, - @NotNull AnnotatedCallableKind kind, - @NotNull AnnotationLoader annotationLoader, - @NotNull NameResolver nameResolver - ) { + DeclarationDescriptor containingDeclaration = context.getContainingDeclaration(); assert containingDeclaration instanceof ClassOrPackageFragmentDescriptor : "Only members in classes or package fragments should be serialized: " + containingDeclaration; - return Flags.HAS_ANNOTATIONS.get(flags) ? annotationLoader.loadCallableAnnotations( - (ClassOrPackageFragmentDescriptor) containingDeclaration, proto, nameResolver, kind) : Annotations.EMPTY; + return Flags.HAS_ANNOTATIONS.get(flags) ? + getComponents().getAnnotationLoader().loadCallableAnnotations( + (ClassOrPackageFragmentDescriptor) containingDeclaration, proto, context.getNameResolver(), kind + ) : + Annotations.EMPTY; } @NotNull diff --git a/core/serialization/src/org/jetbrains/jet/descriptors/serialization/descriptors/DeserializedSimpleFunctionDescriptor.java b/core/serialization/src/org/jetbrains/jet/descriptors/serialization/descriptors/DeserializedSimpleFunctionDescriptor.java index 1d1bf383fc4..960f945f811 100644 --- a/core/serialization/src/org/jetbrains/jet/descriptors/serialization/descriptors/DeserializedSimpleFunctionDescriptor.java +++ b/core/serialization/src/org/jetbrains/jet/descriptors/serialization/descriptors/DeserializedSimpleFunctionDescriptor.java @@ -18,7 +18,10 @@ package org.jetbrains.jet.descriptors.serialization.descriptors; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.jet.descriptors.serialization.*; +import org.jetbrains.jet.descriptors.serialization.Flags; +import org.jetbrains.jet.descriptors.serialization.NameResolver; +import org.jetbrains.jet.descriptors.serialization.ProtoBuf; +import org.jetbrains.jet.descriptors.serialization.SerializationPackage; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.descriptors.FunctionDescriptor; import org.jetbrains.jet.lang.descriptors.SimpleFunctionDescriptor; @@ -40,7 +43,8 @@ public class DeserializedSimpleFunctionDescriptor extends SimpleFunctionDescript @NotNull Name name, @NotNull Kind kind, @NotNull ProtoBuf.Callable proto, - @NotNull NameResolver nameResolver) { + @NotNull NameResolver nameResolver + ) { super(containingDeclaration, original, annotations, name, kind, SourceElement.NO_SOURCE); this.proto = proto; this.nameResolver = nameResolver; @@ -82,16 +86,13 @@ public class DeserializedSimpleFunctionDescriptor extends SimpleFunctionDescript return nameResolver; } + @NotNull public static DeserializedSimpleFunctionDescriptor create( @NotNull DeclarationDescriptor containingDeclaration, @NotNull ProtoBuf.Callable proto, - @NotNull AnnotationLoader annotationLoader, - @NotNull NameResolver nameResolver + @NotNull NameResolver nameResolver, + @NotNull Annotations annotations ) { - Annotations annotations = MemberDeserializer.getAnnotations(containingDeclaration, proto, proto.getFlags(), - AnnotatedCallableKind.FUNCTION, - annotationLoader, - nameResolver); return new DeserializedSimpleFunctionDescriptor( containingDeclaration, null, @@ -99,6 +100,7 @@ public class DeserializedSimpleFunctionDescriptor extends SimpleFunctionDescript nameResolver.getName(proto.getName()), SerializationPackage.memberKind(Flags.MEMBER_KIND.get(proto.getFlags())), proto, - nameResolver); + nameResolver + ); } }