From 88b6059fdc2812944e80cb065241462c4c464377 Mon Sep 17 00:00:00 2001 From: Oskari Timperi Date: Sun, 25 Mar 2018 18:08:28 +0300 Subject: Fix enum initialization to use the first defined value --- src/protobuf/gen.nim | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/protobuf/gen.nim b/src/protobuf/gen.nim index 4c943cb..4552da8 100644 --- a/src/protobuf/gen.nim +++ b/src/protobuf/gen.nim @@ -123,7 +123,12 @@ proc defaultValue(field: NimNode): NimNode = of FieldType.Message: result = newCall(ident("new" & getFieldTypeAsString(field))) of FieldType.Bytes: result = newCall(ident("bytes"), newLit("")) of FieldType.UInt32: result = newLit(0'u32) - of FieldType.Enum: result = newCall(ident(getFieldTypeAsString(field)), newLit(0)) + of FieldType.Enum: + let + descId = ident(getFieldTypeAsString(field) & "Desc") + nameId = ident(getFieldTypeAsString(field)) + result = quote do: + `nameId`(`descId`.values[0].number) of FieldType.SFixed32: result = newCall(ident("sfixed32"), newLit(0)) of FieldType.SFixed64: result = newCall(ident("sfixed64"), newLit(0)) of FieldType.SInt32: result = newCall(ident("sint32"), newLit(0)) -- cgit v1.2.3