Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions src/utils.jl
Original file line number Diff line number Diff line change
Expand Up @@ -294,22 +294,23 @@ function kwmethod_basename(meth::Method)
mtch = match(r"^#+(.*)#", sname)
end
name = mtch === nothing ? name : Symbol(only(mtch.captures))
ftypname = Symbol(string('#', name))
name_final = name
ftypname = Symbol(string('#', name_final))
idx = findfirst(Base.unwrap_unionall(meth.sig).parameters) do @nospecialize(T)
if isa(T, DataType)
Tname = T.name.name
if Tname === :Type
p1 = Base.unwrap_unionall(T.parameters[1])
Tname = isa(p1, DataType) ? p1.name.name :
isa(p1, TypeVar) ? p1.name : error("unexpected type ", typeof(p1), "for ", meth)
return Tname == name
return Tname == name_final
end
return ftypname === Tname
end
false
end
idx === nothing && return name, 0
return name, idx
idx === nothing && return name_final, 0
return name_final, idx
end

"""
Expand Down
4 changes: 4 additions & 0 deletions test/runtests.jl
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ end

isdefined(Main, :Revise) ? Main.Revise.includet("script.jl") : include("script.jl")

if isdefined(Test, :detect_closure_boxes)
@test isempty(Test.detect_closure_boxes(CodeTracking))
end

@testset "CodeTracking.jl" begin
m = first(methods(f1))
file, line = whereis(m)
Expand Down
Loading