Skip to content

Commit 2c648cf

Browse files
authored
fix more replacename changes required (#137)
Missed in f111efe, caught in trying to test JuliaLang/julia#58279.
1 parent 6c56ad1 commit 2c648cf

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

src/signatures.jl

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -302,10 +302,7 @@ function set_to_running_name!(interp::Interpreter, replacements::Dict{GlobalRef,
302302
replacements[callee] = cname
303303
mi = methodinfos[cname] = methodinfos[callee]
304304
src = frame.framecode.src
305-
replacename!(@view(src.code[mi.start:mi.stop]), callee=>cname) # the method itself
306-
for r in mi.refs # the references
307-
replacename!((src.code[r])::Expr, callee=>cname)
308-
end
305+
replacename!(src, callee=>cname) # the method itself
309306
return replacements
310307
end
311308

@@ -398,7 +395,7 @@ end
398395
"""
399396
replacename!(stmts, oldname=>newname)
400397
401-
Replace a Symbol `oldname` with `newname` in `stmts`.
398+
Replace a Symbol `oldname` with GlobalRef `newname` in `stmts`.
402399
"""
403400
function replacename!(ex::Expr, pr)
404401
replacename!(ex.args, pr)
@@ -417,14 +414,16 @@ function replacename!(args::AbstractVector, pr)
417414
replacename!(a.code, pr)
418415
elseif isa(a, QuoteNode) && a.value === oldname
419416
args[i] = QuoteNode(newname)
417+
elseif isa(a, QuoteNode) && a.value === oldname.name
418+
args[i] = QuoteNode(newname.name)
420419
elseif isa(a, Vector{Any})
421420
replacename!(a, pr)
422421
elseif isa(a, Core.ReturnNode) && isdefined(a, :val) && a.val isa Expr
423422
# there is something like `ReturnNode(Expr(:method, Symbol(...)))`
424423
replacename!(a.val::Expr, pr)
425424
elseif a === oldname
426425
args[i] = newname
427-
elseif isa(a, Symbol) && a == oldname.name
426+
elseif a == oldname.name
428427
args[i] = newname.name
429428
end
430429
end

0 commit comments

Comments
 (0)