diff --git a/constraint_solver/collect_variables.cc b/constraint_solver/collect_variables.cc index 3da837cad2..b39dd9aed8 100644 --- a/constraint_solver/collect_variables.cc +++ b/constraint_solver/collect_variables.cc @@ -176,7 +176,7 @@ class CollectVariablesVisitor : public ModelVisitor { } for (int j = 0; j < matrix.columns; ++j) { if (counters[j].size() == matrix.rows) { - vector vars = + const std::vector& vars = top()->FindIntegerVariableArrayArgumentOrDie( ModelVisitor::kVarsArgument); LOG(INFO) << "Found index variable in allowed assignment constraint: " @@ -189,6 +189,20 @@ class CollectVariablesVisitor : public ModelVisitor { break; } } + } else if (type_name.compare(ModelVisitor::kNoCycle) == 0) { + const std::vector& vars = + top()->FindIntegerVariableArrayArgumentOrDie( + ModelVisitor::kActiveArgument); + for (int i = 0; i < vars.size(); ++i) { + IgnoreIntegerVariable(const_cast(vars[i])); + } + } else if (type_name.compare(ModelVisitor::kPathCumul) == 0) { + const std::vector& vars = + top()->FindIntegerVariableArrayArgumentOrDie( + ModelVisitor::kActiveArgument); + for (int i = 0; i < vars.size(); ++i) { + IgnoreIntegerVariable(const_cast(vars[i])); + } } PopArgumentHolder(); } diff --git a/constraint_solver/expr_array.cc b/constraint_solver/expr_array.cc index 3d2f0a33ba..afe0db4b83 100644 --- a/constraint_solver/expr_array.cc +++ b/constraint_solver/expr_array.cc @@ -1402,7 +1402,7 @@ IntExpr* Solver::MakeSum(IntVar* const* vars, int size) { sum_max += vars[i]->Max(); } IntVar* const sum_var = MakeIntVar(sum_min, sum_max); - AddConstraint(RevAlloc(new SumConstraint(this, vars, size, sum_var)));, + AddConstraint(RevAlloc(new SumConstraint(this, vars, size, sum_var))); return sum_var; } }