Skip to content

Commit d1a674e

Browse files
authored
avoid args getting boxed in maybe_evaluate_builtin (#689)
1 parent 1570acd commit d1a674e

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

bin/generate_builtins.jl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,9 @@ function maybe_evaluate_builtin(interp::Interpreter, frame::Frame, call_expr::Ex
210210
print(io,
211211
"""
212212
$head f === tuple
213-
return Some{Any}(ntupleany(i::Int->lookup(interp, frame, args[i+1]), length(args)-1))
213+
let args=args
214+
return Some{Any}(ntupleany(i::Int->lookup(interp, frame, args[i+1]), length(args)-1))
215+
end
214216
""")
215217
continue
216218
elseif f === Core._apply_iterate

src/builtins.jl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,9 @@ function maybe_evaluate_builtin(interp::Interpreter, frame::Frame, call_expr::Ex
403403
return Some{Any}(throw(getargs(interp, args, frame)...))
404404
end
405405
elseif f === tuple
406-
return Some{Any}(ntupleany(i::Int->lookup(interp, frame, args[i+1]), length(args)-1))
406+
let args=args
407+
return Some{Any}(ntupleany(i::Int->lookup(interp, frame, args[i+1]), length(args)-1))
408+
end
407409
elseif f === typeassert
408410
if nargs == 2
409411
return Some{Any}(typeassert(lookup(interp, frame, args[2]), lookup(interp, frame, args[3])))

0 commit comments

Comments
 (0)