diff --git a/constraint_solver/constraint_solver.h b/constraint_solver/constraint_solver.h index bc5cd44bd7..abc44e15a9 100644 --- a/constraint_solver/constraint_solver.h +++ b/constraint_solver/constraint_solver.h @@ -3657,6 +3657,10 @@ class IntExpr : public PropagationBaseObject { // Creates a variable from the expression. virtual IntVar* Var() = 0; + // Creates a variable from the expression and set the name of the + // resulting var. + IntVar* VarWithName(const string& name); + // Attach a demon that will watch the min or the max of the expression. virtual void WhenRange(Demon* d) = 0; @@ -3718,9 +3722,6 @@ class IntVar : public IntExpr { virtual bool IsVar() const { return true; } virtual IntVar* Var() { return this; } - // Name the current variable and returns the variable. - // This method is useful after a Var() call. - IntVar* AddName(const string& name); // This method returns the value of the variable. This method checks // before that the variable is bound. diff --git a/constraint_solver/expressions.cc b/constraint_solver/expressions.cc index 150a5a8c59..44d721aed6 100644 --- a/constraint_solver/expressions.cc +++ b/constraint_solver/expressions.cc @@ -49,9 +49,10 @@ IntVar::IntVar(Solver* const s, const string& name) : IntExpr(s) { set_name(name); } -IntVar* IntVar::AddName(const string& name) { - set_name(name); - return this; +IntVar* IntExpr::VarWithName(const string& name) { + IntVar* const var = Var(); + var->set_name(name); + return var; } namespace { diff --git a/examples/sports_scheduling.cc b/examples/sports_scheduling.cc index 9dad3f8aa1..dfb91cfc52 100644 --- a/examples/sports_scheduling.cc +++ b/examples/sports_scheduling.cc @@ -360,7 +360,7 @@ void SportsScheduling(int num_teams) { // Objective. IntVar* const objective_var = - solver.MakeSum(team_breaks)->Var()->AddName("SumOfBreaks"); + solver.MakeSum(team_breaks)->VarWithName("SumOfBreaks"); OptimizeVar* const objective_monitor = solver.MakeMinimize(objective_var, 1); monitors.push_back(objective_monitor);