Made JetMethodAnnotationWriter.writeFlags(BitSet) back public, since it is more convenient.
This commit is contained in:
@@ -139,14 +139,13 @@ public class FunctionCodegen {
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
JetMethodAnnotationWriter aw = JetMethodAnnotationWriter.visitAnnotation(mv);
|
||||
BitSet kotlinFlags = new BitSet();
|
||||
if (CodegenUtil.isInterface(functionDescriptor.getContainingDeclaration()) && modality != Modality.ABSTRACT) {
|
||||
aw.writeFlags(modality == Modality.FINAL
|
||||
? JvmStdlibNames.JET_METHOD_FLAG_FORCE_FINAL_BIT
|
||||
: JvmStdlibNames.JET_METHOD_FLAG_FORCE_OPEN_BIT);
|
||||
}
|
||||
else {
|
||||
aw.writeFlags();
|
||||
kotlinFlags.set(modality == Modality.FINAL
|
||||
? JvmStdlibNames.JET_METHOD_FLAG_FORCE_FINAL_BIT
|
||||
: JvmStdlibNames.JET_METHOD_FLAG_FORCE_OPEN_BIT);
|
||||
}
|
||||
aw.writeFlags(kotlinFlags);
|
||||
aw.writeNullableReturnType(functionDescriptor.getReturnType().isNullable());
|
||||
aw.writeTypeParameters(jvmSignature.getKotlinTypeParameter());
|
||||
aw.writeReturnType(jvmSignature.getKotlinReturnType());
|
||||
|
||||
@@ -776,16 +776,17 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
|
||||
|
||||
JvmMethodSignature jvmSignature = typeMapper.mapToCallableMethod(inheritedFun, false, OwnerKind.IMPLEMENTATION).getSignature();
|
||||
JetMethodAnnotationWriter aw = JetMethodAnnotationWriter.visitAnnotation(mv);
|
||||
BitSet kotlinFlags = new BitSet();
|
||||
if (fun instanceof PropertyAccessorDescriptor) {
|
||||
aw.writeFlags(JvmStdlibNames.JET_METHOD_FLAG_PROPERTY_BIT);
|
||||
kotlinFlags.set(JvmStdlibNames.JET_METHOD_FLAG_PROPERTY_BIT);
|
||||
aw.writeTypeParameters(jvmSignature.getKotlinTypeParameter());
|
||||
aw.writePropertyType(jvmSignature.getKotlinReturnType());
|
||||
} else {
|
||||
aw.writeFlags();
|
||||
aw.writeNullableReturnType(fun.getReturnType().isNullable());
|
||||
aw.writeTypeParameters(jvmSignature.getKotlinTypeParameter());
|
||||
aw.writeReturnType(jvmSignature.getKotlinReturnType());
|
||||
}
|
||||
aw.writeFlags(kotlinFlags);
|
||||
aw.visitEnd();
|
||||
|
||||
if (state.getClassBuilderMode() == ClassBuilderMode.STUBS) {
|
||||
|
||||
@@ -226,15 +226,14 @@ public class PropertyCodegen {
|
||||
@NotNull PropertyDescriptor propertyDescriptor) {
|
||||
JetMethodAnnotationWriter aw = JetMethodAnnotationWriter.visitAnnotation(mv);
|
||||
Modality modality = propertyDescriptor.getModality();
|
||||
BitSet flags = new BitSet();
|
||||
flags.set(JvmStdlibNames.JET_METHOD_FLAG_PROPERTY_BIT);
|
||||
if (CodegenUtil.isInterface(propertyDescriptor.getContainingDeclaration()) && modality != Modality.ABSTRACT) {
|
||||
aw.writeFlags(JvmStdlibNames.JET_METHOD_FLAG_PROPERTY_BIT,
|
||||
modality == Modality.FINAL
|
||||
? JvmStdlibNames.JET_METHOD_FLAG_FORCE_FINAL_BIT
|
||||
: JvmStdlibNames.JET_METHOD_FLAG_FORCE_OPEN_BIT);
|
||||
}
|
||||
else {
|
||||
aw.writeFlags(JvmStdlibNames.JET_METHOD_FLAG_PROPERTY_BIT);
|
||||
flags.set(modality == Modality.FINAL
|
||||
? JvmStdlibNames.JET_METHOD_FLAG_FORCE_FINAL_BIT
|
||||
: JvmStdlibNames.JET_METHOD_FLAG_FORCE_OPEN_BIT);
|
||||
}
|
||||
aw.writeFlags(flags);
|
||||
aw.writeTypeParameters(typeParameters);
|
||||
aw.writePropertyType(kotlinType);
|
||||
aw.visitEnd();
|
||||
|
||||
+1
-9
@@ -33,15 +33,7 @@ public class JetMethodAnnotationWriter {
|
||||
this.av = av;
|
||||
}
|
||||
|
||||
public void writeFlags(int... flagBits) {
|
||||
BitSet bitSet = new BitSet();
|
||||
for (int bit : flagBits) {
|
||||
bitSet.set(bit);
|
||||
}
|
||||
writeFlags(bitSet);
|
||||
}
|
||||
|
||||
private void writeFlags(BitSet flags) {
|
||||
public void writeFlags(BitSet flags) {
|
||||
int flagsValue = 0;
|
||||
for (int bit = 0; bit < flags.length(); bit++) {
|
||||
if (flags.get(bit)) {
|
||||
|
||||
Reference in New Issue
Block a user