Split KotlinInfo annotation into two: KotlinClass and KotlinPackage
Two annotations are needed to properly distinguish package classes
This commit is contained in:
committed by
Alexander Udalov
parent
8a508fe938
commit
977cd7608a
@@ -226,7 +226,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
|
||||
|
||||
ClassData data = new ClassData(createNameResolver(serializer.getNameTable()), classProto);
|
||||
|
||||
AnnotationVisitor av = v.getVisitor().visitAnnotation(JvmStdlibNames.KOTLIN_INFO_CLASS.getDescriptor(), true);
|
||||
AnnotationVisitor av = v.getVisitor().visitAnnotation(JvmStdlibNames.KOTLIN_CLASS.getDescriptor(), true);
|
||||
av.visit(JvmStdlibNames.ABI_VERSION_NAME, JvmAbi.VERSION);
|
||||
AnnotationVisitor array = av.visitArray(JvmStdlibNames.KOTLIN_INFO_DATA_FIELD);
|
||||
for (String string : JavaProtoBufUtil.encodeBytes(data.toBytes())) {
|
||||
|
||||
@@ -129,12 +129,12 @@ public class NamespaceCodegen extends MemberCodegen {
|
||||
}
|
||||
}
|
||||
|
||||
writeKotlinInfoIfNeeded(MemberMap.union(namespaceMembers));
|
||||
writeKotlinPackageAnnotationIfNeeded(MemberMap.union(namespaceMembers));
|
||||
|
||||
assert v.isActivated() == shouldGenerateNSClass(files) : "Different algorithms for generating namespace class and for heuristics";
|
||||
}
|
||||
|
||||
private void writeKotlinInfoIfNeeded(@NotNull MemberMap members) {
|
||||
private void writeKotlinPackageAnnotationIfNeeded(@NotNull MemberMap members) {
|
||||
DescriptorSerializer serializer = new DescriptorSerializer(new JavaSerializerExtension(members));
|
||||
ProtoBuf.Package.Builder packageProto = ProtoBuf.Package.newBuilder();
|
||||
boolean writeAnnotation = false;
|
||||
@@ -168,7 +168,7 @@ public class NamespaceCodegen extends MemberCodegen {
|
||||
|
||||
PackageData data = new PackageData(createNameResolver(serializer.getNameTable()), packageProto.build());
|
||||
|
||||
AnnotationVisitor av = v.getClassBuilder().newAnnotation(JvmStdlibNames.KOTLIN_INFO_CLASS.getDescriptor(), true);
|
||||
AnnotationVisitor av = v.getClassBuilder().newAnnotation(JvmStdlibNames.KOTLIN_PACKAGE.getDescriptor(), true);
|
||||
av.visit(JvmStdlibNames.ABI_VERSION_NAME, JvmAbi.VERSION);
|
||||
AnnotationVisitor array = av.visitArray(JvmStdlibNames.KOTLIN_INFO_DATA_FIELD);
|
||||
for (String string : JavaProtoBufUtil.encodeBytes(data.toBytes())) {
|
||||
|
||||
Reference in New Issue
Block a user