Skip to content

Commit 8802ba7

Browse files
authored
avoid going into subtyping for checking if a function is a Core.Builtin (#691)
1 parent 870e01a commit 8802ba7

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

bin/generate_builtins.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ const kwinvoke = Core.kwfunc(Core.invoke)
155155
156156
function maybe_recurse_expanded_builtin(interp::Interpreter, frame::Frame, new_expr::Expr)
157157
f = new_expr.args[1]
158-
if isa(f, Core.Builtin) || isa(f, Core.IntrinsicFunction)
158+
if supertype(typeof(f)) === Core.Builtin || isa(f, Core.IntrinsicFunction)
159159
return maybe_evaluate_builtin(interp, frame, new_expr, true)
160160
else
161161
return new_expr
@@ -190,7 +190,7 @@ function maybe_evaluate_builtin(interp::Interpreter, frame::Frame, call_expr::Ex
190190
end
191191
return Some{Any}(f(args...))
192192
end
193-
if !(isa(f, Core.Builtin) || isa(f, Core.IntrinsicFunction))
193+
if !(supertype(typeof(f)) === Core.Builtin || isa(f, Core.IntrinsicFunction))
194194
return call_expr
195195
end
196196
# By having each call appearing statically in the "switch" block below,

src/builtins.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ const kwinvoke = Core.kwfunc(Core.invoke)
1313

1414
function maybe_recurse_expanded_builtin(interp::Interpreter, frame::Frame, new_expr::Expr)
1515
f = new_expr.args[1]
16-
if isa(f, Core.Builtin) || isa(f, Core.IntrinsicFunction)
16+
if supertype(typeof(f)) === Core.Builtin || isa(f, Core.IntrinsicFunction)
1717
return maybe_evaluate_builtin(interp, frame, new_expr, true)
1818
else
1919
return new_expr
@@ -48,7 +48,7 @@ function maybe_evaluate_builtin(interp::Interpreter, frame::Frame, call_expr::Ex
4848
end
4949
return Some{Any}(f(args...))
5050
end
51-
if !(isa(f, Core.Builtin) || isa(f, Core.IntrinsicFunction))
51+
if !(supertype(typeof(f)) === Core.Builtin || isa(f, Core.IntrinsicFunction))
5252
return call_expr
5353
end
5454
# By having each call appearing statically in the "switch" block below,

0 commit comments

Comments
 (0)