diff --git a/src/Bridges/Objective/bridges/slack.jl b/src/Bridges/Objective/bridges/slack.jl index 5b45599967..1b9a1c56be 100644 --- a/src/Bridges/Objective/bridges/slack.jl +++ b/src/Bridges/Objective/bridges/slack.jl @@ -199,6 +199,15 @@ end # Pretend that every model supports, and silently skip in set if unsupported MOI.supports_fallback(::MOI.ModelLike, ::SlackBridgePrimalDualStart) = true +function MOI.throw_set_error_fallback( + ::MOI.ModelLike, + ::SlackBridgePrimalDualStart, + ::AbstractBridge, + ::Nothing, +) + return # Silently ignore for other bridges +end + function MOI.set( model::MOI.ModelLike, ::SlackBridgePrimalDualStart, diff --git a/test/Bridges/Objective/slack.jl b/test/Bridges/Objective/slack.jl index 9b1007c7b0..b52891c56f 100644 --- a/test/Bridges/Objective/slack.jl +++ b/test/Bridges/Objective/slack.jl @@ -514,6 +514,20 @@ function test_deletion_of_variable_in_slacked_objective() return end +function test_SlackBridgePrimalDualStart_non_slack() + inner = MOI.Utilities.MockOptimizer( + MOI.Utilities.UniversalFallback(MOI.Utilities.Model{Float64}()), + ) + # Should ignore without erroring + MOI.set(inner, MOI.Bridges.Objective.SlackBridgePrimalDualStart(), nothing) + model = MOI.Bridges.Objective.Functionize{Float64}(inner) + x = MOI.add_variable(model) + MOI.set(model, MOI.ObjectiveFunction{typeof(x)}(), x) + # Should ignore without erroring + MOI.set(model, MOI.Bridges.Objective.SlackBridgePrimalDualStart(), nothing) + return +end + function test_SlackBridgePrimalDualStart() inner = MOI.Utilities.MockOptimizer( MOI.Utilities.UniversalFallback(MOI.Utilities.Model{Float64}()),