Skip to content

Commit

Permalink
Fixed resolving enum values without any constraints
Browse files Browse the repository at this point in the history
  • Loading branch information
Damtev committed Nov 29, 2023
1 parent c3dc9cb commit caaea27
Showing 1 changed file with 7 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -278,8 +278,13 @@ abstract class JcTestStateResolver<T>(
val ordinalLValue = UFieldLValue(ctx.sizeSort, heapRef, ctx.enumOrdinalField)
val ordinalFieldValue = resolvePrimitiveInt(memory.read(ordinalLValue))

val enumField = enumAncestor.enumValues?.get(ordinalFieldValue)
?: error("Cant find enum field with index $ordinalFieldValue")
val enumValues = enumAncestor.enumValues
?: error("Cant find enum values from enum type $enumAncestor")

val enumField = enumValues.getOrNull(ordinalFieldValue)
// It means we do not have any constraints for this enum value (including correctness constraints),
// so we can choose any enum value
?: enumValues.first()

return decoderApi.getField(enumField, decoderApi.createNullConst(ctx.cp.objectType))
}
Expand Down

0 comments on commit caaea27

Please sign in to comment.