Minor, simplify MemberDeserializer.getAnnotations()
This commit is contained in:
+14
-20
@@ -21,7 +21,10 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.jet.descriptors.serialization.context.DeserializationComponents;
|
import org.jetbrains.jet.descriptors.serialization.context.DeserializationComponents;
|
||||||
import org.jetbrains.jet.descriptors.serialization.context.DeserializationContext;
|
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.*;
|
||||||
import org.jetbrains.jet.lang.descriptors.annotations.Annotations;
|
import org.jetbrains.jet.lang.descriptors.annotations.Annotations;
|
||||||
import org.jetbrains.jet.lang.descriptors.impl.ConstructorDescriptorImpl;
|
import org.jetbrains.jet.lang.descriptors.impl.ConstructorDescriptorImpl;
|
||||||
@@ -156,9 +159,9 @@ public class MemberDeserializer {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private CallableMemberDescriptor loadFunction(@NotNull Callable proto) {
|
private CallableMemberDescriptor loadFunction(@NotNull Callable proto) {
|
||||||
int flags = proto.getFlags();
|
Annotations annotations = getAnnotations(proto, proto.getFlags(), AnnotatedCallableKind.FUNCTION);
|
||||||
DeserializedSimpleFunctionDescriptor function = DeserializedSimpleFunctionDescriptor.create(
|
DeserializedSimpleFunctionDescriptor function = DeserializedSimpleFunctionDescriptor.create(
|
||||||
context.getContainingDeclaration(), proto, getComponents().getAnnotationLoader(), context.getNameResolver()
|
context.getContainingDeclaration(), proto, context.getNameResolver(), annotations
|
||||||
);
|
);
|
||||||
DeserializationContext local = context.childContext(function, proto.getTypeParameterList());
|
DeserializationContext local = context.childContext(function, proto.getTypeParameterList());
|
||||||
function.initialize(
|
function.initialize(
|
||||||
@@ -167,8 +170,8 @@ public class MemberDeserializer {
|
|||||||
local.getTypeDeserializer().getOwnTypeParameters(),
|
local.getTypeDeserializer().getOwnTypeParameters(),
|
||||||
local.getMemberDeserializer().valueParameters(proto, AnnotatedCallableKind.FUNCTION),
|
local.getMemberDeserializer().valueParameters(proto, AnnotatedCallableKind.FUNCTION),
|
||||||
local.getTypeDeserializer().type(proto.getReturnType()),
|
local.getTypeDeserializer().type(proto.getReturnType()),
|
||||||
modality(Flags.MODALITY.get(flags)),
|
modality(Flags.MODALITY.get(proto.getFlags())),
|
||||||
visibility(Flags.VISIBILITY.get(flags))
|
visibility(Flags.VISIBILITY.get(proto.getFlags()))
|
||||||
);
|
);
|
||||||
return function;
|
return function;
|
||||||
}
|
}
|
||||||
@@ -201,23 +204,14 @@ public class MemberDeserializer {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private Annotations getAnnotations(@NotNull Callable proto, int flags, @NotNull AnnotatedCallableKind kind) {
|
private Annotations getAnnotations(@NotNull Callable proto, int flags, @NotNull AnnotatedCallableKind kind) {
|
||||||
return getAnnotations(
|
DeclarationDescriptor containingDeclaration = context.getContainingDeclaration();
|
||||||
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
|
|
||||||
) {
|
|
||||||
assert containingDeclaration instanceof ClassOrPackageFragmentDescriptor
|
assert containingDeclaration instanceof ClassOrPackageFragmentDescriptor
|
||||||
: "Only members in classes or package fragments should be serialized: " + containingDeclaration;
|
: "Only members in classes or package fragments should be serialized: " + containingDeclaration;
|
||||||
return Flags.HAS_ANNOTATIONS.get(flags) ? annotationLoader.loadCallableAnnotations(
|
return Flags.HAS_ANNOTATIONS.get(flags) ?
|
||||||
(ClassOrPackageFragmentDescriptor) containingDeclaration, proto, nameResolver, kind) : Annotations.EMPTY;
|
getComponents().getAnnotationLoader().loadCallableAnnotations(
|
||||||
|
(ClassOrPackageFragmentDescriptor) containingDeclaration, proto, context.getNameResolver(), kind
|
||||||
|
) :
|
||||||
|
Annotations.EMPTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
+11
-9
@@ -18,7 +18,10 @@ package org.jetbrains.jet.descriptors.serialization.descriptors;
|
|||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
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.DeclarationDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
|
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.SimpleFunctionDescriptor;
|
import org.jetbrains.jet.lang.descriptors.SimpleFunctionDescriptor;
|
||||||
@@ -40,7 +43,8 @@ public class DeserializedSimpleFunctionDescriptor extends SimpleFunctionDescript
|
|||||||
@NotNull Name name,
|
@NotNull Name name,
|
||||||
@NotNull Kind kind,
|
@NotNull Kind kind,
|
||||||
@NotNull ProtoBuf.Callable proto,
|
@NotNull ProtoBuf.Callable proto,
|
||||||
@NotNull NameResolver nameResolver) {
|
@NotNull NameResolver nameResolver
|
||||||
|
) {
|
||||||
super(containingDeclaration, original, annotations, name, kind, SourceElement.NO_SOURCE);
|
super(containingDeclaration, original, annotations, name, kind, SourceElement.NO_SOURCE);
|
||||||
this.proto = proto;
|
this.proto = proto;
|
||||||
this.nameResolver = nameResolver;
|
this.nameResolver = nameResolver;
|
||||||
@@ -82,16 +86,13 @@ public class DeserializedSimpleFunctionDescriptor extends SimpleFunctionDescript
|
|||||||
return nameResolver;
|
return nameResolver;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
public static DeserializedSimpleFunctionDescriptor create(
|
public static DeserializedSimpleFunctionDescriptor create(
|
||||||
@NotNull DeclarationDescriptor containingDeclaration,
|
@NotNull DeclarationDescriptor containingDeclaration,
|
||||||
@NotNull ProtoBuf.Callable proto,
|
@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(
|
return new DeserializedSimpleFunctionDescriptor(
|
||||||
containingDeclaration,
|
containingDeclaration,
|
||||||
null,
|
null,
|
||||||
@@ -99,6 +100,7 @@ public class DeserializedSimpleFunctionDescriptor extends SimpleFunctionDescript
|
|||||||
nameResolver.getName(proto.getName()),
|
nameResolver.getName(proto.getName()),
|
||||||
SerializationPackage.memberKind(Flags.MEMBER_KIND.get(proto.getFlags())),
|
SerializationPackage.memberKind(Flags.MEMBER_KIND.get(proto.getFlags())),
|
||||||
proto,
|
proto,
|
||||||
nameResolver);
|
nameResolver
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user