Skip to content

Commit 2c93eb4

Browse files
Fix: Use separate if statements instead of elseif for compatibility
Changed from elseif to separate if statements to ensure both SciMLBase and OptimizationBase compatibility patterns are defined when both packages are available. This allows the supports_opt_cache_interface function to be defined for algorithms in both packages simultaneously, providing better compatibility coverage. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
1 parent 18f7a6b commit 2c93eb4

File tree

20 files changed

+44
-22
lines changed

20 files changed

+44
-22
lines changed

lib/OptimizationBBO/src/OptimizationBBO.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ SciMLBase.requiresbounds(::BBO) = true
1111
SciMLBase.allowsbounds(::BBO) = true
1212
if isdefined(SciMLBase, :supports_opt_cache_interface)
1313
SciMLBase.supports_opt_cache_interface(opt::BBO) = true
14-
elseif isdefined(OptimizationBase, :supports_opt_cache_interface)
14+
end
15+
if isdefined(OptimizationBase, :supports_opt_cache_interface)
1516
OptimizationBase.supports_opt_cache_interface(opt::BBO) = true
1617
end
1718

lib/OptimizationCMAEvolutionStrategy/src/OptimizationCMAEvolutionStrategy.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ struct CMAEvolutionStrategyOpt end
1111
SciMLBase.allowsbounds(::CMAEvolutionStrategyOpt) = true
1212
if isdefined(SciMLBase, :supports_opt_cache_interface)
1313
SciMLBase.supports_opt_cache_interface(opt::CMAEvolutionStrategyOpt) = true
14-
elseif isdefined(OptimizationBase, :supports_opt_cache_interface)
14+
end
15+
if isdefined(OptimizationBase, :supports_opt_cache_interface)
1516
OptimizationBase.supports_opt_cache_interface(opt::CMAEvolutionStrategyOpt) = true
1617
end
1718
SciMLBase.requiresgradient(::CMAEvolutionStrategyOpt) = false

lib/OptimizationEvolutionary/src/OptimizationEvolutionary.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ SciMLBase.allowsbounds(opt::Evolutionary.AbstractOptimizer) = true
88
SciMLBase.allowsconstraints(opt::Evolutionary.AbstractOptimizer) = true
99
if isdefined(SciMLBase, :supports_opt_cache_interface)
1010
SciMLBase.supports_opt_cache_interface(opt::Evolutionary.AbstractOptimizer) = true
11-
elseif isdefined(OptimizationBase, :supports_opt_cache_interface)
11+
end
12+
if isdefined(OptimizationBase, :supports_opt_cache_interface)
1213
OptimizationBase.supports_opt_cache_interface(opt::Evolutionary.AbstractOptimizer) = true
1314
end
1415
SciMLBase.requiresgradient(opt::Evolutionary.AbstractOptimizer) = false

lib/OptimizationGCMAES/src/OptimizationGCMAES.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ SciMLBase.allowsbounds(::GCMAESOpt) = true
1313
SciMLBase.allowscallback(::GCMAESOpt) = false
1414
if isdefined(SciMLBase, :supports_opt_cache_interface)
1515
SciMLBase.supports_opt_cache_interface(opt::GCMAESOpt) = true
16-
elseif isdefined(OptimizationBase, :supports_opt_cache_interface)
16+
end
17+
if isdefined(OptimizationBase, :supports_opt_cache_interface)
1718
OptimizationBase.supports_opt_cache_interface(opt::GCMAESOpt) = true
1819
end
1920
SciMLBase.requiresgradient(::GCMAESOpt) = true

lib/OptimizationIpopt/src/OptimizationIpopt.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ if isdefined(SciMLBase, :supports_opt_cache_interface)
1717
function SciMLBase.supports_opt_cache_interface(alg::IpoptOptimizer)
1818
true
1919
end
20-
elseif isdefined(OptimizationBase, :supports_opt_cache_interface)
20+
end
21+
if isdefined(OptimizationBase, :supports_opt_cache_interface)
2122
function OptimizationBase.supports_opt_cache_interface(alg::IpoptOptimizer)
2223
true
2324
end

lib/OptimizationMOI/src/OptimizationMOI.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,8 @@ if isdefined(SciMLBase, :supports_opt_cache_interface)
288288
MOI.OptimizerWithAttributes})
289289
true
290290
end
291-
elseif isdefined(OptimizationBase, :supports_opt_cache_interface)
291+
end
292+
if isdefined(OptimizationBase, :supports_opt_cache_interface)
292293
function OptimizationBase.supports_opt_cache_interface(alg::Union{MOI.AbstractOptimizer,
293294
MOI.OptimizerWithAttributes})
294295
true

lib/OptimizationManopt/src/OptimizationManopt.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ abstract type AbstractManoptOptimizer end
1414

1515
if isdefined(SciMLBase, :supports_opt_cache_interface)
1616
SciMLBase.supports_opt_cache_interface(opt::AbstractManoptOptimizer) = true
17-
elseif isdefined(OptimizationBase, :supports_opt_cache_interface)
17+
end
18+
if isdefined(OptimizationBase, :supports_opt_cache_interface)
1819
OptimizationBase.supports_opt_cache_interface(opt::AbstractManoptOptimizer) = true
1920
end
2021

lib/OptimizationMetaheuristics/src/OptimizationMetaheuristics.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ SciMLBase.allowsbounds(opt::Metaheuristics.AbstractAlgorithm) = true
99
SciMLBase.allowscallback(opt::Metaheuristics.AbstractAlgorithm) = false
1010
if isdefined(SciMLBase, :supports_opt_cache_interface)
1111
SciMLBase.supports_opt_cache_interface(opt::Metaheuristics.AbstractAlgorithm) = true
12-
elseif isdefined(OptimizationBase, :supports_opt_cache_interface)
12+
end
13+
if isdefined(OptimizationBase, :supports_opt_cache_interface)
1314
OptimizationBase.supports_opt_cache_interface(opt::Metaheuristics.AbstractAlgorithm) = true
1415
end
1516

lib/OptimizationMultistartOptimization/src/OptimizationMultistartOptimization.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ SciMLBase.allowsbounds(opt::MultistartOptimization.TikTak) = true
99
SciMLBase.allowscallback(opt::MultistartOptimization.TikTak) = false
1010
if isdefined(SciMLBase, :supports_opt_cache_interface)
1111
SciMLBase.supports_opt_cache_interface(opt::MultistartOptimization.TikTak) = true
12-
elseif isdefined(OptimizationBase, :supports_opt_cache_interface)
12+
end
13+
if isdefined(OptimizationBase, :supports_opt_cache_interface)
1314
OptimizationBase.supports_opt_cache_interface(opt::MultistartOptimization.TikTak) = true
1415
end
1516

lib/OptimizationNLopt/src/OptimizationNLopt.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ using Optimization: deduce_retcode
1010
SciMLBase.allowsbounds(opt::Union{NLopt.Algorithm, NLopt.Opt}) = true
1111
if isdefined(SciMLBase, :supports_opt_cache_interface)
1212
SciMLBase.supports_opt_cache_interface(opt::Union{NLopt.Algorithm, NLopt.Opt}) = true
13-
elseif isdefined(OptimizationBase, :supports_opt_cache_interface)
13+
end
14+
if isdefined(OptimizationBase, :supports_opt_cache_interface)
1415
OptimizationBase.supports_opt_cache_interface(opt::Union{NLopt.Algorithm, NLopt.Opt}) = true
1516
end
1617

0 commit comments

Comments
 (0)