- void testDatatypesInfinite1() {
- Datatype colors("Colors");
- colors.addConstructor(DatatypeConstructor("red"));
- colors.addConstructor(DatatypeConstructor("orange"));
- colors.addConstructor(DatatypeConstructor("yellow"));
- colors.addConstructor(DatatypeConstructor("green"));
- colors.addConstructor(DatatypeConstructor("blue"));
- colors.addConstructor(DatatypeConstructor("violet"));
- TypeNode colorsType = TypeNode::fromType(d_em->mkDatatypeType(colors));
- Datatype listColors("ListColors");
- DatatypeConstructor consC("cons");
- consC.addArg("car", colorsType.toType());
- consC.addArg("cdr", DatatypeSelfType());
+ void testDTypesInfinite1()
+ {
+ DType colors("Colors");
+ colors.addConstructor(std::make_shared<DTypeConstructor>("red"));
+ colors.addConstructor(std::make_shared<DTypeConstructor>("orange"));
+ colors.addConstructor(std::make_shared<DTypeConstructor>("yellow"));
+ colors.addConstructor(std::make_shared<DTypeConstructor>("green"));
+ colors.addConstructor(std::make_shared<DTypeConstructor>("blue"));
+ colors.addConstructor(std::make_shared<DTypeConstructor>("violet"));
+ TypeNode colorsType = d_nm->mkDatatypeType(colors);
+ const std::vector<std::shared_ptr<DTypeConstructor> >& ctCons =
+ colorsType.getDType().getConstructors();
+ DType listColors("ListColors");
+ std::shared_ptr<DTypeConstructor> consC =
+ std::make_shared<DTypeConstructor>("cons");
+ consC->addArg("car", colorsType);
+ consC->addArgSelf("cdr");