3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-05-03 17:05:15 +00:00

Refactor theory_seq::find_fst_non_empty_var to use std::optional (#8315)

* Initial plan

* Refactor find_fst_non_empty_var to use std::optional

Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>

* Use value_or() for more idiomatic std::optional usage

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:
Copilot 2026-01-24 09:38:20 -08:00 committed by GitHub
parent c2d996574f
commit 39b9038449
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 9 additions and 6 deletions

View file

@ -18,6 +18,7 @@ Revision History:
--*/
#pragma once
#include <optional>
#include "ast/seq_decl_plugin.h"
#include "ast/rewriter/th_rewriter.h"
#include "ast/rewriter/seq_skolem.h"
@ -414,7 +415,7 @@ namespace smt {
void get_ite_concat(ptr_vector<expr>& head, ptr_vector<expr>& tail);
int find_fst_non_empty_idx(expr_ref_vector const& x);
expr* find_fst_non_empty_var(expr_ref_vector const& x);
std::optional<expr*> find_fst_non_empty_var(expr_ref_vector const& x);
bool has_len_offset(expr_ref_vector const& ls, expr_ref_vector const& rs, int & diff);
// final check