summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@cs.nyu.edu>2013-02-01 08:31:34 -0500
committerMorgan Deters <mdeters@cs.nyu.edu>2013-02-01 08:31:34 -0500
commit833385664804e4d5651108475b907ea240aac2ab (patch)
tree1cfa78da757cd89aa5ff17c54ef1dc4c6a7ee2cd
parentfef10dcb3dce3454adca2ef19e1c0248e968645d (diff)
Fix a tuple attribute bug that was causing model-generation problems for tuples
-rw-r--r--src/expr/node_manager.cpp3
-rw-r--r--test/regress/regress0/datatypes/Makefile.am1
-rw-r--r--test/regress/regress0/datatypes/tuple-model.cvc6
3 files changed, 9 insertions, 1 deletions
diff --git a/src/expr/node_manager.cpp b/src/expr/node_manager.cpp
index 59d23c6ea..a3c968158 100644
--- a/src/expr/node_manager.cpp
+++ b/src/expr/node_manager.cpp
@@ -412,6 +412,7 @@ TypeNode NodeManager::getDatatypeForTupleRecord(TypeNode t) {
dt.addConstructor(c);
dtt = TypeNode::fromType(toExprManager()->mkDatatypeType(dt));
Debug("tuprec") << "REWROTE " << t << " to " << dtt << std::endl;
+ dtt.setAttribute(DatatypeTupleAttr(), t);
} else {
const Record& rec = t.getRecord();
Datatype dt("__cvc4_record");
@@ -422,8 +423,8 @@ TypeNode NodeManager::getDatatypeForTupleRecord(TypeNode t) {
dt.addConstructor(c);
dtt = TypeNode::fromType(toExprManager()->mkDatatypeType(dt));
Debug("tuprec") << "REWROTE " << t << " to " << dtt << std::endl;
+ dtt.setAttribute(DatatypeRecordAttr(), t);
}
- dtt.setAttribute(DatatypeRecordAttr(), t);
} else {
Debug("tuprec") << "REUSING cached " << t << ": " << dtt << std::endl;
}
diff --git a/test/regress/regress0/datatypes/Makefile.am b/test/regress/regress0/datatypes/Makefile.am
index 58bd6711d..08b00a309 100644
--- a/test/regress/regress0/datatypes/Makefile.am
+++ b/test/regress/regress0/datatypes/Makefile.am
@@ -18,6 +18,7 @@ MAKEFLAGS = -k
# put it below in "TESTS +="
TESTS = \
tuple.cvc \
+ tuple-model.cvc \
rec1.cvc \
rec2.cvc \
rec4.cvc \
diff --git a/test/regress/regress0/datatypes/tuple-model.cvc b/test/regress/regress0/datatypes/tuple-model.cvc
new file mode 100644
index 000000000..2ba96712d
--- /dev/null
+++ b/test/regress/regress0/datatypes/tuple-model.cvc
@@ -0,0 +1,6 @@
+% This was breaking with --check-models due to tuple model breakage.
+% EXPECT: sat
+% EXIT: 10
+x : [ INT, INT ];
+ASSERT x.0 = 5;
+CHECKSAT;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback