diff --git a/src/parse_nlp.jl b/src/parse_nlp.jl index 9578aee28c6..bbd3434ab9e 100644 --- a/src/parse_nlp.jl +++ b/src/parse_nlp.jl @@ -167,7 +167,7 @@ function _parse_NL_expr(m, x, tapevar, parent, values) end -function _parse_NL_expr_runtime(m::Model, x::Number, tape, parent, values) +function _parse_NL_expr_runtime(m::Model, x::Real, tape, parent, values) push!(values, x) push!(tape, NodeData(VALUE, length(values), parent)) nothing diff --git a/test/nlp.jl b/test/nlp.jl index 7d8d1e5fe95..92751f52846 100644 --- a/test/nlp.jl +++ b/test/nlp.jl @@ -619,7 +619,7 @@ evaluator = JuMP.NLPEvaluator(model) @test !(:Hess in MOI.features_available(evaluator)) end - + @testset "Error on using AffExpr in NLexpression" begin model = Model() @variable(model, x) @@ -632,7 +632,7 @@ ) @test_throws expected_exception @NLexpression(model, A) end - + @testset "Error on using QuadExpr in NLexpression" begin model = Model() @variable(model, x) @@ -645,4 +645,13 @@ ) @test_throws expected_exception @NLexpression(model, A) end + @testset "Error on complex values" begin + model = Model() + @variable(model, x) + c = sqrt(Complex(-1)) + expected_exception = ErrorException( + "Unexpected object $c (of type $(typeof(c)) in nonlinear expression." + ) + @test_throws expected_exception @NLobjective(model, Min, c * x) + end end