@objective escapes its entire result, which assumes that setobjective! and @expression are defined in the caller's scope:
julia> module Foo
using SimpleQP: @objective, Model, Minimize
using OSQP.MathOptInterfaceOSQP: OSQPOptimizer
m = Model(OSQPOptimizer())
@objective(m, Minimize, 0)
end
WARNING: replacing module Foo
ERROR: UndefVarError: @expression not defined
@objectiveescapes its entire result, which assumes thatsetobjective!and@expressionare defined in the caller's scope: