BitVecNumeral constructor

BitVecNumeral(
  1. BigInt value,
  2. BitVecSort sort
)

Implementation

factory BitVecNumeral(BigInt value, BitVecSort sort) {
  if (value.isValidInt) {
    final n = _mathContext._z3.mk_int64(
      value.toInt(),
      _mathContext._createSort(sort),
    );
    return _mathContext._getAST(n) as BitVecNumeral;
  } else {
    final valuePtr = '$value'.toNativeUtf8();
    try {
      final n = _mathContext._z3.mk_numeral(
        valuePtr.cast(),
        _mathContext._createSort(sort),
      );
      return _mathContext._getAST(n) as BitVecNumeral;
    } finally {
      malloc.free(valuePtr);
    }
  }
}