@@ -546,6 +546,15 @@ function _delete_variables_in_variables_constraints(
546546end
547547
548548function MOI. delete (b:: AbstractBridgeOptimizer , vis:: Vector{MOI.VariableIndex} )
549+ F = MOI. get (b, MOI. ObjectiveFunctionType ())
550+ if is_objective_bridged (b) && F == MOI. VectorOfVariables
551+ f = MOI. get (b, MOI. ObjectiveFunction {MOI.VectorOfVariables} ())
552+ discard = Base. Fix2 (in, vis)
553+ if any (discard, f. variables)
554+ g = MOI. VectorOfVariables (filter (! discard, f. variables))
555+ MOI. set (b, MOI. ObjectiveFunction {MOI.VectorOfVariables} (), g)
556+ end
557+ end
549558 if Constraint. has_bridges (Constraint. bridges (b))
550559 _delete_variables_in_variables_constraints (b, vis)
551560 end
@@ -575,6 +584,14 @@ function MOI.delete(b::AbstractBridgeOptimizer, vis::Vector{MOI.VariableIndex})
575584end
576585
577586function MOI. delete (b:: AbstractBridgeOptimizer , vi:: MOI.VariableIndex )
587+ F = MOI. get (b, MOI. ObjectiveFunctionType ())
588+ if is_objective_bridged (b) && F == MOI. VectorOfVariables
589+ f = MOI. get (b, MOI. ObjectiveFunction {MOI.VectorOfVariables} ())
590+ if any (isequal (vi), f. variables)
591+ g = MOI. VectorOfVariables (filter (! isequal (vi), f. variables))
592+ MOI. set (b, MOI. ObjectiveFunction {MOI.VectorOfVariables} (), g)
593+ end
594+ end
578595 if Constraint. has_bridges (Constraint. bridges (b))
579596 _delete_variables_in_variables_constraints (b, [vi])
580597 end
@@ -600,6 +617,7 @@ function MOI.delete(b::AbstractBridgeOptimizer, vi::MOI.VariableIndex)
600617 else
601618 MOI. delete (b. model, vi)
602619 end
620+ return
603621end
604622
605623function MOI. delete (b:: AbstractBridgeOptimizer , ci:: MOI.ConstraintIndex )
0 commit comments