summaryrefslogtreecommitdiff
path: root/src/parser/smt2/smt2.cpp
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2019-12-01 15:56:17 -0600
committerGitHub <noreply@github.com>2019-12-01 15:56:17 -0600
commit14aa8974b6eeae70b255976ebb9c76fd4aa04c03 (patch)
tree992c9b9ef1de1d7539856cd2e761269020ddf085 /src/parser/smt2/smt2.cpp
parentca31b2c1eb2a3c9e26013f55e4049b667404ac4e (diff)
parent9bf87b8b5572bbfc110018081b28ad0a88b8a619 (diff)
Merge branch 'master' into fixRefCountZerofixRefCountZero
Diffstat (limited to 'src/parser/smt2/smt2.cpp')
-rw-r--r--src/parser/smt2/smt2.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/parser/smt2/smt2.cpp b/src/parser/smt2/smt2.cpp
index b693eae5b..6dc29b8fe 100644
--- a/src/parser/smt2/smt2.cpp
+++ b/src/parser/smt2/smt2.cpp
@@ -1435,6 +1435,10 @@ void Smt2::addSygusConstructorTerm(Datatype& dt,
std::map<Expr, Type>& ntsToUnres) const
{
Trace("parser-sygus2") << "Add sygus cons term " << term << std::endl;
+ // Ensure that we do type checking here to catch sygus constructors with
+ // malformed builtin operators. The argument "true" to getType here forces
+ // a recursive well-typedness check.
+ term.getType(true);
// purify each occurrence of a non-terminal symbol in term, replace by
// free variables. These become arguments to constructors. Notice we must do
// a tree traversal in this function, since unique paths to the same term
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback