@@ -302,10 +302,7 @@ function set_to_running_name!(interp::Interpreter, replacements::Dict{GlobalRef,
302
302
replacements[callee] = cname
303
303
mi = methodinfos[cname] = methodinfos[callee]
304
304
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
309
306
return replacements
310
307
end
311
308
398
395
"""
399
396
replacename!(stmts, oldname=>newname)
400
397
401
- Replace a Symbol `oldname` with `newname` in `stmts`.
398
+ Replace a Symbol `oldname` with GlobalRef `newname` in `stmts`.
402
399
"""
403
400
function replacename! (ex:: Expr , pr)
404
401
replacename! (ex. args, pr)
@@ -417,14 +414,16 @@ function replacename!(args::AbstractVector, pr)
417
414
replacename! (a. code, pr)
418
415
elseif isa (a, QuoteNode) && a. value === oldname
419
416
args[i] = QuoteNode (newname)
417
+ elseif isa (a, QuoteNode) && a. value === oldname. name
418
+ args[i] = QuoteNode (newname. name)
420
419
elseif isa (a, Vector{Any})
421
420
replacename! (a, pr)
422
421
elseif isa (a, Core. ReturnNode) && isdefined (a, :val ) && a. val isa Expr
423
422
# there is something like `ReturnNode(Expr(:method, Symbol(...)))`
424
423
replacename! (a. val:: Expr , pr)
425
424
elseif a === oldname
426
425
args[i] = newname
427
- elseif isa (a, Symbol) && a == oldname. name
426
+ elseif a == oldname. name
428
427
args[i] = newname. name
429
428
end
430
429
end
0 commit comments