diff options
author | Andres Noetzli <andres.noetzli@gmail.com> | 2020-07-13 19:48:07 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-13 21:48:07 -0500 |
commit | 78c0daa482b35b95c90dd058ee4dd8a981e1337f (patch) | |
tree | c45fe72ac96032b0e6f7ea53798443671ad08d86 /src/api/cvc4cpp.cpp | |
parent | 84fe644cb1956119b7b35ede06ee93583eae1925 (diff) |
Use TypeNode/Node in ArrayStoreAll (#4728)
This commit changes ArrayStoreAll to use Node/TypeNode instead of
Expr/Type.
Diffstat (limited to 'src/api/cvc4cpp.cpp')
-rw-r--r-- | src/api/cvc4cpp.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/api/cvc4cpp.cpp b/src/api/cvc4cpp.cpp index 550dd760b..3cca1a071 100644 --- a/src/api/cvc4cpp.cpp +++ b/src/api/cvc4cpp.cpp @@ -1564,11 +1564,12 @@ bool Term::isConst() const Term Term::getConstArrayBase() const { + CVC4::ExprManagerScope exmgrs(*(d_solver->getExprManager())); CVC4_API_CHECK_NOT_NULL; // CONST_ARRAY kind maps to STORE_ALL internal kind CVC4_API_CHECK(d_expr->getKind() == CVC4::Kind::STORE_ALL) << "Expecting a CONST_ARRAY Term when calling getConstArrayBase()"; - return Term(d_solver, d_expr->getConst<ArrayStoreAll>().getExpr()); + return Term(d_solver, d_expr->getConst<ArrayStoreAll>().getValue().toExpr()); } std::vector<Term> Term::getConstSequenceElements() const @@ -3511,6 +3512,7 @@ Term Solver::mkBitVector(uint32_t size, std::string& s, uint32_t base) const Term Solver::mkConstArray(Sort sort, Term val) const { CVC4_API_SOLVER_TRY_CATCH_BEGIN; + CVC4::ExprManagerScope exmgrs(*(d_exprMgr.get())); CVC4_API_ARG_CHECK_NOT_NULL(sort); CVC4_API_ARG_CHECK_NOT_NULL(val); CVC4_API_SOLVER_CHECK_SORT(sort); @@ -3518,8 +3520,8 @@ Term Solver::mkConstArray(Sort sort, Term val) const CVC4_API_CHECK(sort.isArray()) << "Not an array sort."; CVC4_API_CHECK(sort.getArrayElementSort().isComparableTo(val.getSort())) << "Value does not match element sort."; - Term res = mkValHelper<CVC4::ArrayStoreAll>( - CVC4::ArrayStoreAll(*sort.d_type, *val.d_expr)); + Term res = mkValHelper<CVC4::ArrayStoreAll>(CVC4::ArrayStoreAll( + TypeNode::fromType(*sort.d_type), Node::fromExpr(*val.d_expr))); return res; CVC4_API_SOLVER_TRY_CATCH_END; } |