diff --git a/src/utils.jl b/src/utils.jl index 7400fd2..00967c8 100644 --- a/src/utils.jl +++ b/src/utils.jl @@ -294,7 +294,8 @@ 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 @@ -302,14 +303,14 @@ function kwmethod_basename(meth::Method) 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 """ diff --git a/test/runtests.jl b/test/runtests.jl index 66278c7..a91dfca 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -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)