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 {
|
message IrEnumEntry {
|
||||||
optional IrExpression initializer = 1;
|
optional IrExpression initializer = 1;
|
||||||
|
optional IrDeclaration corresponding_class = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
message IrDeclarator {
|
message IrDeclarator {
|
||||||
|
|||||||
+10
-3
@@ -493,6 +493,10 @@ internal class IrSerializer(val context: Context,
|
|||||||
if (initializer != null) {
|
if (initializer != null) {
|
||||||
proto.setInitializer(serializeExpression(initializer))
|
proto.setInitializer(serializeExpression(initializer))
|
||||||
}
|
}
|
||||||
|
val correspondingClass = enumEntry.correspondingClass
|
||||||
|
if (correspondingClass != null) {
|
||||||
|
proto.setCorrespondingClass(serializeDeclaration(correspondingClass))
|
||||||
|
}
|
||||||
return proto.build()
|
return proto.build()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -984,9 +988,12 @@ internal class IrDeserializer(val context: Context,
|
|||||||
start: Int, end: Int, origin: IrDeclarationOrigin): IrEnumEntry {
|
start: Int, end: Int, origin: IrDeclarationOrigin): IrEnumEntry {
|
||||||
|
|
||||||
val enumEntry = IrEnumEntryImpl(start, end, origin, descriptor)
|
val enumEntry = IrEnumEntryImpl(start, end, origin, descriptor)
|
||||||
// TODO: we need to pass down the enclosing declaration.
|
if (proto.hasCorrespondingClass()) {
|
||||||
//enumEntry.correspondingClass = ???
|
enumEntry.correspondingClass = deserializeDeclaration(proto.correspondingClass) as IrClass
|
||||||
enumEntry.initializerExpression = deserializeExpression(proto.initializer)
|
}
|
||||||
|
if (proto.hasInitializer()) {
|
||||||
|
enumEntry.initializerExpression = deserializeExpression(proto.initializer)
|
||||||
|
}
|
||||||
|
|
||||||
return enumEntry
|
return enumEntry
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user