diff options
author | Aina Niemetz <aina.niemetz@gmail.com> | 2021-11-24 18:39:39 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-25 02:39:39 +0000 |
commit | 943dfc57d1bbc58046ad10bb4a8a48a8b654aeb5 (patch) | |
tree | cd1d9df2bf1aaa16ccd9e8219f0115ff72e30ef8 /src/api/cpp/cvc5.cpp | |
parent | 923c9a6b864922dda739f46981664ec0611bec8d (diff) |
api: Refactor mkTerm for kinds with arity = 0. (#7699)
This refactors mkTerm to allow creation of terms of kinds with arity = 0
via Op and/or empty children vector.
Diffstat (limited to 'src/api/cpp/cvc5.cpp')
-rw-r--r-- | src/api/cpp/cvc5.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/api/cpp/cvc5.cpp b/src/api/cpp/cvc5.cpp index 0c35abd4c..3edff5ec3 100644 --- a/src/api/cpp/cvc5.cpp +++ b/src/api/cpp/cvc5.cpp @@ -5164,7 +5164,10 @@ Term Solver::mkTermHelper(Kind kind, const std::vector<Term>& children) const { // Note: Kind and children are checked in the caller to avoid double checks //////// all checks before this line - + if (children.size() == 0) + { + return mkTermFromKind(kind); + } std::vector<Node> echildren = Term::termVectorToNodes(children); cvc5::Kind k = extToIntKind(kind); Node res; @@ -6303,14 +6306,12 @@ Term Solver::mkTerm(const Op& op) const { CVC5_API_TRY_CATCH_BEGIN; CVC5_API_SOLVER_CHECK_OP(op); - checkMkTerm(op.d_kind, 0); - //////// all checks before this line - if (!op.isIndexedHelper()) { return mkTermFromKind(op.d_kind); } - + checkMkTerm(op.d_kind, 0); + //////// all checks before this line const cvc5::Kind int_kind = extToIntKind(op.d_kind); Term res = Term(this, getNodeManager()->mkNode(int_kind, *op.d_node)); |