mirror of
https://github.com/Z3Prover/z3
synced 2026-05-04 01:15:15 +00:00
Adopt std::optional for try_get_value and try_get_size functions (#8268)
* Initial plan * Convert try_get_value and try_get_size to use std::optional Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com> * Add unit tests for std::optional conversions and fix compilation error Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com> * Address code review comments - improve readability and reduce code duplication Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
This commit is contained in:
parent
2e7b700769
commit
1bb471447e
14 changed files with 92 additions and 44 deletions
|
|
@ -1125,13 +1125,12 @@ protected:
|
|||
\brief Make a constant for DK_SYMBOL sort out of an integer
|
||||
*/
|
||||
app* mk_symbol_const(uint64_t el, sort* s) {
|
||||
uint64_t sz = 0;
|
||||
if (m_arith.is_int(s))
|
||||
return m_arith.mk_numeral(rational(el, rational::ui64()), s);
|
||||
else if (m_decl_util.try_get_size(s, sz)) {
|
||||
if (el >= sz) {
|
||||
else if (auto sz = m_decl_util.try_get_size(s)) {
|
||||
if (el >= *sz) {
|
||||
std::ostringstream ous;
|
||||
ous << "numeric value " << el << " is out of bounds of domain size " << sz;
|
||||
ous << "numeric value " << el << " is out of bounds of domain size " << *sz;
|
||||
throw default_exception(ous.str());
|
||||
}
|
||||
return m_decl_util.mk_numeral(el, s);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue