From bb177988ebae4d5332822a6462b7eefe126516a3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 12 Feb 2026 02:59:21 +0000 Subject: [PATCH] Apply code simplification improvements - Consolidated two contains() methods into single template function - Added const correctness to helper methods in argument_parser.h - Improved string handling (replaced substr with compare, return "" instead of std::string()) - Fixed indentation in nlsat_solver.cpp nested loop - Modernized empty container return syntax in lp.cpp Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com> --- src/nlsat/nlsat_solver.cpp | 4 ++-- src/test/lp/argument_parser.h | 23 ++++++++++------------- src/test/lp/lp.cpp | 2 +- 3 files changed, 13 insertions(+), 16 deletions(-) diff --git a/src/nlsat/nlsat_solver.cpp b/src/nlsat/nlsat_solver.cpp index ca7e8a2f3..74c080a8b 100644 --- a/src/nlsat/nlsat_solver.cpp +++ b/src/nlsat/nlsat_solver.cpp @@ -1208,8 +1208,8 @@ namespace nlsat { used_bools[b] = true; vars.reset(); this->vars(lit, vars); - for (var v : vars) - used_vars[v] = true; + for (var v : vars) + used_vars[v] = true; } display(out << "(echo \"#" << m_lemma_count++ << ":" << annotation << ":", n, cls) << "\")\n"; if (m_log_lemma_smtrat) diff --git a/src/test/lp/argument_parser.h b/src/test/lp/argument_parser.h index 87893ff7b..cb238136e 100644 --- a/src/test/lp/argument_parser.h +++ b/src/test/lp/argument_parser.h @@ -82,11 +82,8 @@ public: return status_is_ok; } - bool contains(std::unordered_map & m, const std::string& s) { - return m.find(s) != m.end(); - } - - bool contains(std::set & m, const std::string& s) { + template + bool contains(const Container& m, const std::string& s) const { return m.find(s) != m.end(); } @@ -94,22 +91,22 @@ public: return contains(m_used_options, option) || contains(m_used_options_with_after_string, option); } - std::string get_option_value(const std::string& option) { + std::string get_option_value(const std::string& option) const { auto t = m_used_options_with_after_string.find(option); - if (t != m_used_options_with_after_string.end()){ + if (t != m_used_options_with_after_string.end()) { return t->second; } - return std::string(); + return ""; } - bool starts_with(const std::string& s, char const * prefix) { + bool starts_with(const std::string& s, const std::string& prefix) const { + return s.size() >= prefix.size() && s.compare(0, prefix.size(), prefix) == 0; + } + + bool starts_with(const std::string& s, const char* prefix) const { return starts_with(s, std::string(prefix)); } - bool starts_with(const std::string& s, const std::string& prefix) { - return s.substr(0, prefix.size()) == prefix; - } - std::string usage_string() { std::string ret = ""; std::vector unknown_options; diff --git a/src/test/lp/lp.cpp b/src/test/lp/lp.cpp index 1ca176fae..fec3a2afe 100644 --- a/src/test/lp/lp.cpp +++ b/src/test/lp/lp.cpp @@ -732,7 +732,7 @@ vector get_file_names_from_file_list(const std::string& filelist) { std::ifstream file(filelist); if (!file.is_open()) { std::cout << "cannot open " << filelist << std::endl; - return vector(); + return {}; } vector ret; bool end;