Serialize flags
This commit is contained in:
+7
-3
@@ -212,6 +212,7 @@ public class DescriptorSerializer {
|
|||||||
hasAnnotations,
|
hasAnnotations,
|
||||||
descriptor.getVisibility(),
|
descriptor.getVisibility(),
|
||||||
descriptor.getModality(),
|
descriptor.getModality(),
|
||||||
|
false,
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -284,7 +285,8 @@ public class DescriptorSerializer {
|
|||||||
|
|
||||||
int flags = Flags.getFunctionFlags(
|
int flags = Flags.getFunctionFlags(
|
||||||
hasAnnotations(descriptor), descriptor.getVisibility(), descriptor.getModality(), descriptor.getKind(),
|
hasAnnotations(descriptor), descriptor.getVisibility(), descriptor.getModality(), descriptor.getKind(),
|
||||||
descriptor.isOperator(), descriptor.isInfix()
|
descriptor.isOperator(), descriptor.isInfix(), descriptor.isInline(), descriptor.isTailrec(),
|
||||||
|
descriptor.isExternal()
|
||||||
);
|
);
|
||||||
if (flags != builder.getFlags()) {
|
if (flags != builder.getFlags()) {
|
||||||
builder.setFlags(flags);
|
builder.setFlags(flags);
|
||||||
@@ -356,7 +358,8 @@ public class DescriptorSerializer {
|
|||||||
hasAnnotations(accessor),
|
hasAnnotations(accessor),
|
||||||
accessor.getVisibility(),
|
accessor.getVisibility(),
|
||||||
accessor.getModality(),
|
accessor.getModality(),
|
||||||
!accessor.isDefault()
|
!accessor.isDefault(),
|
||||||
|
accessor.isExternal()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -364,7 +367,8 @@ public class DescriptorSerializer {
|
|||||||
private ProtoBuf.ValueParameter.Builder valueParameter(@NotNull ValueParameterDescriptor descriptor) {
|
private ProtoBuf.ValueParameter.Builder valueParameter(@NotNull ValueParameterDescriptor descriptor) {
|
||||||
ProtoBuf.ValueParameter.Builder builder = ProtoBuf.ValueParameter.newBuilder();
|
ProtoBuf.ValueParameter.Builder builder = ProtoBuf.ValueParameter.newBuilder();
|
||||||
|
|
||||||
int flags = Flags.getValueParameterFlags(hasAnnotations(descriptor), descriptor.declaresDefaultValue());
|
int flags = Flags.getValueParameterFlags(hasAnnotations(descriptor), descriptor.declaresDefaultValue(),
|
||||||
|
descriptor.isCrossinline(), descriptor.isNoinline());
|
||||||
if (flags != builder.getFlags()) {
|
if (flags != builder.getFlags()) {
|
||||||
builder.setFlags(flags);
|
builder.setFlags(flags);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,4 +45,10 @@ public interface FunctionDescriptor extends CallableMemberDescriptor {
|
|||||||
boolean isOperator();
|
boolean isOperator();
|
||||||
|
|
||||||
boolean isInfix();
|
boolean isInfix();
|
||||||
|
|
||||||
|
boolean isInline();
|
||||||
|
|
||||||
|
boolean isTailrec();
|
||||||
|
|
||||||
|
boolean isExternal();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,4 +45,6 @@ public interface PropertyAccessorDescriptor extends FunctionDescriptor {
|
|||||||
Kind kind,
|
Kind kind,
|
||||||
boolean copyOverrides
|
boolean copyOverrides
|
||||||
);
|
);
|
||||||
|
|
||||||
|
boolean isExternal();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,4 +59,8 @@ public interface ValueParameterDescriptor extends VariableDescriptor, ParameterD
|
|||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
Collection<? extends ValueParameterDescriptor> getOverriddenDescriptors();
|
Collection<? extends ValueParameterDescriptor> getOverriddenDescriptors();
|
||||||
|
|
||||||
|
boolean isCrossinline();
|
||||||
|
|
||||||
|
boolean isNoinline();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -143,7 +143,10 @@ public class Flags {
|
|||||||
@NotNull Modality modality,
|
@NotNull Modality modality,
|
||||||
@NotNull CallableMemberDescriptor.Kind memberKind,
|
@NotNull CallableMemberDescriptor.Kind memberKind,
|
||||||
boolean isOperator,
|
boolean isOperator,
|
||||||
boolean isInfix
|
boolean isInfix,
|
||||||
|
boolean isInline,
|
||||||
|
boolean isTailrec,
|
||||||
|
boolean isExternal
|
||||||
) {
|
) {
|
||||||
return HAS_ANNOTATIONS.toFlags(hasAnnotations)
|
return HAS_ANNOTATIONS.toFlags(hasAnnotations)
|
||||||
| VISIBILITY.toFlags(visibility(visibility))
|
| VISIBILITY.toFlags(visibility(visibility))
|
||||||
@@ -151,6 +154,9 @@ public class Flags {
|
|||||||
| MEMBER_KIND.toFlags(memberKind(memberKind))
|
| MEMBER_KIND.toFlags(memberKind(memberKind))
|
||||||
| IS_OPERATOR.toFlags(isOperator)
|
| IS_OPERATOR.toFlags(isOperator)
|
||||||
| IS_INFIX.toFlags(isInfix)
|
| IS_INFIX.toFlags(isInfix)
|
||||||
|
| IS_INLINE.toFlags(isInline)
|
||||||
|
| IS_TAILREC.toFlags(isTailrec)
|
||||||
|
| IS_EXTERNAL_FUNCTION.toFlags(isExternal)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -183,12 +189,14 @@ public class Flags {
|
|||||||
boolean hasAnnotations,
|
boolean hasAnnotations,
|
||||||
@NotNull Visibility visibility,
|
@NotNull Visibility visibility,
|
||||||
@NotNull Modality modality,
|
@NotNull Modality modality,
|
||||||
boolean isNotDefault
|
boolean isNotDefault,
|
||||||
|
boolean isExternal
|
||||||
) {
|
) {
|
||||||
return HAS_ANNOTATIONS.toFlags(hasAnnotations)
|
return HAS_ANNOTATIONS.toFlags(hasAnnotations)
|
||||||
| MODALITY.toFlags(modality(modality))
|
| MODALITY.toFlags(modality(modality))
|
||||||
| VISIBILITY.toFlags(visibility(visibility))
|
| VISIBILITY.toFlags(visibility(visibility))
|
||||||
| IS_NOT_DEFAULT.toFlags(isNotDefault)
|
| IS_NOT_DEFAULT.toFlags(isNotDefault)
|
||||||
|
| IS_EXTERNAL_ACCESSOR.toFlags(isExternal)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -245,9 +253,16 @@ public class Flags {
|
|||||||
throw new IllegalArgumentException("Unknown member kind: " + kind);
|
throw new IllegalArgumentException("Unknown member kind: " + kind);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int getValueParameterFlags(boolean hasAnnotations, boolean declaresDefaultValue) {
|
public static int getValueParameterFlags(
|
||||||
|
boolean hasAnnotations,
|
||||||
|
boolean declaresDefaultValue,
|
||||||
|
boolean isCrossinline,
|
||||||
|
boolean isNoinline
|
||||||
|
) {
|
||||||
return HAS_ANNOTATIONS.toFlags(hasAnnotations)
|
return HAS_ANNOTATIONS.toFlags(hasAnnotations)
|
||||||
| DECLARES_DEFAULT_VALUE.toFlags(declaresDefaultValue)
|
| DECLARES_DEFAULT_VALUE.toFlags(declaresDefaultValue)
|
||||||
|
| IS_CROSSINLINE.toFlags(isCrossinline)
|
||||||
|
| IS_NOINLINE.toFlags(isNoinline)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user