Generate annotations on enum entry constants in bytecode

#KT-5665 Fixed
This commit is contained in:
Alexander Udalov
2014-08-25 13:50:57 +04:00
parent 477bac9b2a
commit 2ea9a2cfc9
3 changed files with 41 additions and 2 deletions
@@ -1615,9 +1615,10 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
if (declaration instanceof JetEnumEntry) {
String name = declaration.getName();
assert name != null : "Enum entry has no name: " + declaration.getText();
String desc = classAsmType.getDescriptor();
ClassDescriptor entryDescriptor = bindingContext.get(BindingContext.CLASS, declaration);
v.newField(OtherOrigin(declaration, entryDescriptor), ACC_PUBLIC | ACC_ENUM | ACC_STATIC | ACC_FINAL, name, desc, null, null);
FieldVisitor fv = v.newField(OtherOrigin(declaration, entryDescriptor), ACC_PUBLIC | ACC_ENUM | ACC_STATIC | ACC_FINAL,
name, classAsmType.getDescriptor(), null, null);
AnnotationCodegen.forField(fv, typeMapper).genAnnotations(entryDescriptor, null);
myEnumConstants.add((JetEnumEntry) declaration);
}