Skip to content

Commit f643ff7

Browse files
committed
Fix Cartesian.exprresolve for change in conditional parsing
Ref. #15524
1 parent 2e1bcc6 commit f643ff7

File tree

3 files changed

+7
-4
lines changed

3 files changed

+7
-4
lines changed

base/cartesian.jl

+3-3
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@ end
321321
function lreplace!(ex::Expr, r::LReplace)
322322
# Curly-brace notation, which acts like parentheses
323323
if ex.head == :curly && length(ex.args) == 2 && isa(ex.args[1], Symbol) && endswith(string(ex.args[1]), "_")
324-
excurly = Base.Cartesian.exprresolve(lreplace!(ex.args[2], r))
324+
excurly = exprresolve(lreplace!(ex.args[2], r))
325325
if isa(excurly, Number)
326326
return Symbol(ex.args[1],excurly)
327327
else
@@ -369,8 +369,8 @@ exprresolve_arith(arg) = false, 0
369369

370370
exprresolve_conditional(b::Bool) = true, b
371371
function exprresolve_conditional(ex::Expr)
372-
if ex.head == :comparison && isa(ex.args[1], Number) && isa(ex.args[3], Number)
373-
return true, exprresolve_cond_dict[ex.args[2]](ex.args[1], ex.args[3])
372+
if ex.head == :call && ex.args[1] keys(exprresolve_cond_dict) && isa(ex.args[2], Number) && isa(ex.args[3], Number)
373+
return true, exprresolve_cond_dict[ex.args[1]](ex.args[2], ex.args[3])
374374
end
375375
false, false
376376
end

test/cartesian.jl

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
@test Base.Cartesian.exprresolve(:(1 + 3)) == 4
2+
ex = Base.Cartesian.exprresolve(:(if 5 > 4; :x; else :y; end))
3+
@test ex.args[2] == QuoteNode(:x)

test/choosetests.jl

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ function choosetests(choices = [])
3333
"markdown", "base64", "serialize", "misc", "threads",
3434
"enums", "cmdlineargs", "i18n", "workspace", "libdl", "int",
3535
"checked", "intset", "floatfuncs", "compile", "parallel", "inline",
36-
"boundscheck", "error", "ambiguous", "offsetarray"
36+
"boundscheck", "error", "ambiguous", "offsetarray", "cartesian"
3737
]
3838

3939
if Base.USE_GPL_LIBS

0 commit comments

Comments
 (0)