-
Notifications
You must be signed in to change notification settings - Fork 9
Open
Description
Using JET.jl avi/demo with JuliaLowering:
julia> report_opt(replace!, (Set{Module}, Pair{Module, Module}))
═════ 5 possible errors found ═════
┌ replace!(A::Set{Module}, old_new::Pair{Module, Module}) @ Base ./set.jl:735
│┌ replace!(A::Set{Module}, old_new::Pair{Module, Module}; count::Int64) @ Base ./set.jl:735
││┌ replace_pairs!(res::Set{Module}, A::Set{Module}, count::Int64, old_new::Tuple{Pair{Module, Module}}) @ Base ./set.jl:745
│││┌ _replace!(new::Base.var"#new#replace_pairs!##0"{Tuple{Pair{…}}}, t::Set{Module}, ::Set{Module}, count::Int64) @ Base ./set.jl:986
││││┌ _replace!(new::Base.var"#_replace!##0#_replace!##1"{…}, t::Dict{…}, A::Dict{…}, count::Int64) @ Base ./set.jl:963
│││││┌ (::Base.var"#_replace!##0#_replace!##1"{Base.var"#new#replace_pairs!##0"{Tuple{Pair{…}}}})(kv::Pair{Module, Nothing}) @ Base ./set.jl:988
││││││┌ (::Base.var"#new#replace_pairs!##0"{Tuple{Pair{Module, Module}}})(x::Module) @ Base ./:739
│││││││┌ ==(w::WeakRef, v::Module) @ Base ./:35
││││││││ runtime dispatch detected: isequal(%1::Any, v::Module)::Bool
│││││││└────────────────────
│││││┌ (::Base.var"#_replace!##0#_replace!##1"{Base.var"#new#replace_pairs!##0"{Tuple{Pair{…}}}})(kv::Pair{Module, Nothing}) @ Base ./set.jl:989
││││││ runtime dispatch detected: (%5::Any => nothing)::Pair{_A, Nothing} where _A
│││││└────────────────────
││││┌ _replace!(new::Base.var"#_replace!##0#_replace!##1"{…}, t::Dict{…}, A::Dict{…}, count::Int64) @ Base ./set.jl:966
│││││┌ ==(w::Module, v::WeakRef) @ Base ./:36
││││││ runtime dispatch detected: isequal(w::Module, %1::Any)::Bool
│││││└────────────────────
││││┌ _replace!(new::Base.var"#_replace!##0#_replace!##1"{…}, t::Dict{…}, A::Dict{…}, count::Int64) @ Base ./set.jl:972
│││││┌ push!(a::Vector{Pair{Module, Nothing}}, item::Pair{_A, Nothing} where _A) @ Base ./array.jl:1285
││││││ runtime dispatch detected: convert(::Pair{Module, Nothing}, item::Pair{_A, Nothing} where _A)::Pair{Module, Nothing}
│││││└────────────────────
││││┌ _replace!(new::Base.var"#_replace!##0#_replace!##1"{…}, t::Dict{…}, A::Dict{…}, count::Int64) @ Base ./set.jl:967
│││││ runtime dispatch detected: ((%125::Memory{Module})[%80::Int64] = %101::Any::Any)
││││└────────────────────compared to standard JET.jl + Scheme lowering:
julia> report_opt(replace!, (Set{Module}, Pair{Module, Module}))
No errors detectedpossibly something related to closure conversion?
Metadata
Metadata
Assignees
Labels
No labels