From 42ac830d9e188f93916f24ba42d5fb57f60d9a30 Mon Sep 17 00:00:00 2001 From: Iain Dunning Date: Sat, 18 Aug 2018 23:28:17 -0400 Subject: [PATCH 1/2] Fix index set parsing in JuMP macros on Julia 1.0. This is a change introduced between Julia v0.7 and v1.0. --- src/parseexpr.jl | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/parseexpr.jl b/src/parseexpr.jl index 585fca51014..4c8f72c397c 100644 --- a/src/parseexpr.jl +++ b/src/parseexpr.jl @@ -4,7 +4,11 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. function tryParseIdxSet(arg::Expr) - if arg.head === :(=) + if arg.head === :kw # Julia 1.0 onwards. + @assert length(arg.args) == 2 + return true, arg.args[1], arg.args[2] + # TODO(IainNZ): Remove after dropping support for pre-1.0 Julia? + elseif arg.head === :(=) @assert length(arg.args) == 2 return true, arg.args[1], arg.args[2] elseif isexpr(arg, :call) && arg.args[1] === :in From d75546ce23edc6e3eae725717bd89379317fd407 Mon Sep 17 00:00:00 2001 From: Iain Dunning Date: Sat, 18 Aug 2018 23:49:00 -0400 Subject: [PATCH 2/2] Add static version check for Julia 1.0. --- src/parseexpr.jl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/parseexpr.jl b/src/parseexpr.jl index 4c8f72c397c..7d8e4edfc20 100644 --- a/src/parseexpr.jl +++ b/src/parseexpr.jl @@ -4,10 +4,10 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. function tryParseIdxSet(arg::Expr) - if arg.head === :kw # Julia 1.0 onwards. - @assert length(arg.args) == 2 - return true, arg.args[1], arg.args[2] - # TODO(IainNZ): Remove after dropping support for pre-1.0 Julia? + is_julia_v1 = @static (VERSION >= v"1.0-" ? true : false) + if is_julia_v1 && arg.head === :kw + @assert length(arg.args) == 2 + return true, arg.args[1], arg.args[2] elseif arg.head === :(=) @assert length(arg.args) == 2 return true, arg.args[1], arg.args[2]