Added correspondingClass support in enum serialization.
This commit is contained in:
committed by
alexander-gorshenev
parent
b763e003ae
commit
f63862e98d
+1
@@ -253,6 +253,7 @@ message IrClass {
|
||||
|
||||
message IrEnumEntry {
|
||||
optional IrExpression initializer = 1;
|
||||
optional IrDeclaration corresponding_class = 2;
|
||||
}
|
||||
|
||||
message IrDeclarator {
|
||||
|
||||
+10
-3
@@ -493,6 +493,10 @@ internal class IrSerializer(val context: Context,
|
||||
if (initializer != null) {
|
||||
proto.setInitializer(serializeExpression(initializer))
|
||||
}
|
||||
val correspondingClass = enumEntry.correspondingClass
|
||||
if (correspondingClass != null) {
|
||||
proto.setCorrespondingClass(serializeDeclaration(correspondingClass))
|
||||
}
|
||||
return proto.build()
|
||||
}
|
||||
|
||||
@@ -984,9 +988,12 @@ internal class IrDeserializer(val context: Context,
|
||||
start: Int, end: Int, origin: IrDeclarationOrigin): IrEnumEntry {
|
||||
|
||||
val enumEntry = IrEnumEntryImpl(start, end, origin, descriptor)
|
||||
// TODO: we need to pass down the enclosing declaration.
|
||||
//enumEntry.correspondingClass = ???
|
||||
enumEntry.initializerExpression = deserializeExpression(proto.initializer)
|
||||
if (proto.hasCorrespondingClass()) {
|
||||
enumEntry.correspondingClass = deserializeDeclaration(proto.correspondingClass) as IrClass
|
||||
}
|
||||
if (proto.hasInitializer()) {
|
||||
enumEntry.initializerExpression = deserializeExpression(proto.initializer)
|
||||
}
|
||||
|
||||
return enumEntry
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user