I was trying to use JET.jl to analyze a package and I ran into a type signature error. I have a toy example that reproduces the same issue.
module Test
ParamType = Union{Tuple{Real, Vararg{Real, N} where N}, Tuple{Real, Real}}
OptParamType = Vector{T} where T <: ParamType
function f(o::OptParamType)
return true
end
end
I have this saved as Test.jl and when I try to use report_file("Test.jl")
I get the following:
julia> report_file("Test.jl")
[toplevel-info] virtualized the context of Main (took 0.003 sec)
[toplevel-info] entered into Test.jl
[toplevel-info] exited from Test.jl (took 0.053 sec)
═════ 1 toplevel error found ═════
┌ @ Test.jl:6
│ ArgumentError: invalid type for argument o in method definition for f at Test.jl:6
└─────────────
(included_files = Set(["Test.jl"]), nreported = 1)
I’ve seen other messages that suggest I should use concretization_patterns
to fix this but I have no idea how to use it in this example. The main problem seems to be from having Vararg in the type signature. I’ve tried following some examples from the workshop given by @aviatesk but I’m not experienced enough to solve this so I’d love feedback. Thanks.