@@ -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
310307end
311308
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"""
403400function 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