Skip to content

Commit bd29078

Browse files
committed
RubyTranslator: fix enumToInt to keep integer if we are unable to resolve the value; fixes EnumToIInvalid test
1 parent 43ff3ef commit bd29078

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

shared/src/main/scala/io/kaitai/struct/translators/RubyTranslator.scala

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,10 @@ class RubyTranslator(provider: TypeProvider) extends BaseTranslator(provider)
122122
case _ => s"($baseStr)"
123123
})
124124
}
125-
override def enumToInt(v: Ast.expr, et: EnumType): String =
126-
s"${enumInverseMap(et)}[${translate(v)}]"
125+
override def enumToInt(v: Ast.expr, et: EnumType): String = {
126+
val value = translate(v)
127+
s"(${enumInverseMap(et)}[$value] || $value)"
128+
}
127129
override def floatToInt(v: Ast.expr): String =
128130
s"${translate(v, METHOD_PRECEDENCE)}.to_i"
129131
override def intToStr(i: Ast.expr): String =

0 commit comments

Comments
 (0)