-
Notifications
You must be signed in to change notification settings - Fork 9
Open
Description
The JET.jl avi/demo branch (https://github.com/aviatesk/JET.jl/tree/avi/demo) includes a prototype / proof-of-concept pipeline that exercises JuliaLowering for its code pipeline.
Scheme lowering does OK with Base.is_valid_identifier, if I test via normal JET.jl:
julia> @report_opt Base.is_valid_identifier(:foo)
No errors detectedJL's AST interpolation seems to lead to inference problems if using the avi/demo branch of JET.jl:
julia> @report_opt Base.is_valid_identifier(:foo)
═════ 17 possible errors found ═════The problems seem to center around the interpolate_ast AST function. In contrast, Scheme lowering seems to require no runtime function injection:
julia> @code_lowered Base.is_valid_identifier(:foo)
CodeInfo(
1 ─ %1 = Base.isidentifier
│ %2 = dynamic (%1)(sym)
└── goto #3 if not %2
2 ─ return %2
3 ─ %5 = Base._isoperator
│ %6 = dynamic (%5)(sym)
└── goto #7 if not %6
4 ─ %8 = Base.:!
│ %9 = Base.in
│ %10 = Base.Symbol
│ %11 = dynamic (%10)("'")
│ %12 = builtin Core.tuple(%11, :(::), :?)
│ %13 = dynamic (%9)(sym, %12)
│ %14 = dynamic (%8)(%13)
└── goto #6 if not %14
5 ─ %16 = Base.:!
│ %17 = Base.is_syntactic_operator
│ %18 = dynamic (%17)(sym)
│ %19 = dynamic (%16)(%18)
└── return %19
6 ─ return false
7 ─ return false
)Full JET stacktrace
julia> @report_opt Base.is_valid_identifier(:foo)
═════ 17 possible errors found ═════
┌ is_valid_identifier(sym::Symbol) @ Base ./:1778
│┌ interpolate_ast(::Type{JuliaLowering.SyntaxTree}, ::JuliaLowering.SyntaxTree{JuliaLowering.SyntaxGraph{Dict{…}}}) @ JuliaLowering ./:152
││┌ _setup_interpolation(::Type{…}, ex::JuliaLowering.SyntaxTree{…}, values::Tuple{}) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/runtime.jl:123
│││ failed to optimize due to recursion: JuliaLowering._setup_interpolation(::Type{…}, ::JuliaLowering.SyntaxTree{…}, ::Tuple{})
││└────────────────────
│┌ interpolate_ast(::Type{JuliaLowering.SyntaxTree}, ::JuliaLowering.SyntaxTree{JuliaLowering.SyntaxGraph{Dict{…}}}) @ JuliaLowering ./:156
││┌ copy_ast(ctx::JuliaLowering.InterpolationContext, ex::JuliaLowering.SyntaxTree{JuliaLowering.SyntaxGraph{Dict{…}}}) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/ast.jl:438
│││┌ copy_ast(ctx::JuliaLowering.InterpolationContext, ex::JuliaLowering.SyntaxTree{…}; copy_source::Bool) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/ast.jl:442
││││┌ _copy_ast(graph2::JuliaLowering.SyntaxGraph, graph1::JuliaLowering.SyntaxGraph{…}, id1::Int64, seen::Dict{…}, copy_source::Bool) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/ast.jl:453
│││││┌ get(ex::JuliaLowering.SyntaxTree{JuliaLowering.SyntaxGraph{Dict{Symbol, Any}}}, name::Symbol, default::Nothing) @ JuliaLowering ./:252
││││││ runtime dispatch detected: JuliaLowering.get(%3::Any, %7::Int64, default::Nothing)::Any
│││││└────────────────────
││││┌ _copy_ast(graph2::JuliaLowering.SyntaxGraph, graph1::JuliaLowering.SyntaxGraph{…}, id1::Int64, seen::Dict{…}, copy_source::Bool) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/ast.jl:464
│││││┌ kwcall(::NamedTuple{…}, ::typeof(JuliaLowering.setattr!), graph::JuliaLowering.SyntaxGraph, id::Int64) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/syntax_graph.jl:150
││││││┌ setattr!(graph::JuliaLowering.SyntaxGraph, id::Int64; attrs::Base.Pairs{…} where {…}) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/syntax_graph.jl:151
│││││││┌ iterate(::Base.Pairs{Symbol, _A, Nothing, A} where {_A, A<:(NamedTuple{(:source,), <:Tuple{Any}})}) @ Base.Iterators ./iterators.jl:290
││││││││ runtime dispatch detected: Base.Iterators._pairs_elt(p::Base.Pairs{Symbol, _A, Nothing, A} where {_A, A<:(NamedTuple{(:source,), <:Tuple{Any}})}, :source)::Pair{Symbol}
│││││││└────────────────────
││││││┌ setattr!(graph::JuliaLowering.SyntaxGraph, id::Int64; attrs::Base.Pairs{…} where {…}) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/syntax_graph.jl:153
│││││││┌ getattr(graph::JuliaLowering.SyntaxGraph{<:Dict}, name::Symbol) @ JuliaLowering ./:134
││││││││┌ getindex(h::Dict, key::Symbol) @ Base ./dict.jl:476
│││││││││┌ ht_keyindex(h::Dict, key::Symbol) @ Base ./dict.jl:249
││││││││││┌ ==(w::Symbol, v::WeakRef) @ Base ./:36
│││││││││││ runtime dispatch detected: isequal(w::Symbol, %1::Any)::Bool
││││││││││└────────────────────
│┌ interpolate_ast(::Type{JuliaLowering.SyntaxTree}, ::JuliaLowering.SyntaxTree{JuliaLowering.SyntaxGraph{Dict{…}}}) @ JuliaLowering ./:157
││┌ ==(w::WeakRef, v::JuliaSyntax.Kind) @ Base ./:35
│││ runtime dispatch detected: isequal(%1::Any, v::JuliaSyntax.Kind)::Bool
││└────────────────────
│┌ interpolate_ast(::Type{JuliaLowering.SyntaxTree}, ::JuliaLowering.SyntaxTree{JuliaLowering.SyntaxGraph{Dict{…}}}) @ JuliaLowering ./:167
││┌ _interpolate_ast(ctx::JuliaLowering.InterpolationContext, ex::JuliaLowering.SyntaxTree, depth::Int64) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/runtime.jl:113
│││┌ _interpolated_value(ctx::JuliaLowering.InterpolationContext, srcref::JuliaLowering.SyntaxTree, ex::Any) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/runtime.jl:74
││││┌ @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/macro_expansion.jl:325
│││││┌ makenode(ctx::JuliaLowering.InterpolationContext, srcref::Tuple{…}, proto::JuliaLowering.SyntaxTree, children::Vararg{…}) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/ast.jl:134
││││││┌ makenode(ctx::JuliaLowering.InterpolationContext, srcref::Tuple{…}, proto::JuliaLowering.SyntaxTree, children::Vararg{…}; attrs::@Kwargs{}) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/ast.jl:135
│││││││┌ _makenode(ctx::JuliaLowering.InterpolationContext, srcref::Tuple{…}, proto::JuliaLowering.SyntaxTree, children::Tuple{…}) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/ast.jl:130
││││││││┌ _makenode(ctx::JuliaLowering.InterpolationContext, srcref::Tuple{…}, proto::JuliaLowering.SyntaxTree, children::Tuple{…}; attrs::@Kwargs{}) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/ast.jl:131
│││││││││┌ _makenode(ctx::Any, srcref::Any, proto::JuliaLowering.SyntaxTree, children::Any; attrs::@Kwargs{}) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/ast.jl:131
││││││││││┌ _makenode(graph::JuliaLowering.SyntaxGraph, srcref::Any, proto::JuliaLowering.SyntaxTree, children::Any) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/ast.jl:122
│││││││││││┌ _makenode(graph::JuliaLowering.SyntaxGraph, srcref::Any, proto::JuliaLowering.SyntaxTree, children::Any; attrs::@Kwargs{}) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/ast.jl:124
││││││││││││┌ setchildren!(graph::JuliaLowering.SyntaxGraph, id::Int64, children::Any) @ JuliaLowering ./:110
│││││││││││││┌ append!(a::Vector{Int64}, iter::Any) @ Base ./:1357
││││││││││││││┌ _append!(a::Vector{Int64}, ::Union{Base.HasLength, Base.HasShape}, iter::Any) @ Base ./:1366
│││││││││││││││┌ push!(a::Vector{Int64}, item::Any) @ Base ./array.jl:1285
││││││││││││││││ runtime dispatch detected: convert(::Int64, item::Any)::Any
│││││││││││││││└────────────────────
││││┌ iterate(g::Base.Generator{…} where {…}, s::Tuple{…}) @ Base ./:45
│││││┌ iterate(A::JuliaLowering.SyntaxList, state::Tuple{Base.OneTo{Int64}, Int64}) @ Base ./abstractarray.jl:1235
││││││┌ getindex(v::JuliaLowering.SyntaxList, i::Int64) @ JuliaLowering ./:725
│││││││┌ JuliaLowering.SyntaxTree(graph::JuliaLowering.SyntaxGraph, node::JuliaSyntax.SyntaxNode) @ JuliaLowering ./:450
││││││││┌ kwcall(::@NamedTuple{…}, ::typeof(JuliaLowering.ensure_attributes!), graph::JuliaLowering.SyntaxGraph) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/syntax_graph.jl:52
│││││││││┌ ensure_attributes!(graph::JuliaLowering.SyntaxGraph; kws::Base.Pairs) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/syntax_graph.jl:53
││││││││││┌ iterate(::Base.Pairs) @ Base.Iterators ./iterators.jl:290
│││││││││││┌ _pairs_elt(p::Base.Pairs, idx::Any) @ Base.Iterators ./iterators.jl:283
││││││││││││ runtime dispatch detected: (%4::Any)[idx::Any]::Any
│││││││││││└────────────────────
│││││││┌ JuliaLowering.SyntaxTree(graph::JuliaLowering.SyntaxGraph, node::JuliaSyntax.SyntaxNode) @ JuliaLowering ./:452
││││││││┌ _convert_nodes(graph::JuliaLowering.SyntaxGraph, node::JuliaSyntax.SyntaxNode) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/syntax_graph.jl:188
│││││││││┌ kwcall(::NamedTuple{…}, ::typeof(JuliaLowering.setattr!), graph::JuliaLowering.SyntaxGraph, id::Int64) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/syntax_graph.jl:150
││││││││││┌ setattr!(graph::JuliaLowering.SyntaxGraph, id::Int64; attrs::Base.Pairs{…} where {…}) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/syntax_graph.jl:151
│││││││││││┌ iterate(::Base.Pairs{Symbol, _A, Nothing, A} where {_A, A<:(NamedTuple{(:value,), <:Tuple{Any}})}) @ Base.Iterators ./iterators.jl:290
││││││││││││ runtime dispatch detected: Base.Iterators._pairs_elt(p::Base.Pairs{Symbol, _A, Nothing, A} where {_A, A<:(NamedTuple{(:value,), <:Tuple{Any}})}, :value)::Pair{Symbol}
│││││││││││└────────────────────
││││││││┌ _convert_nodes(graph::JuliaLowering.SyntaxGraph, node::JuliaSyntax.SyntaxNode) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/syntax_graph.jl:193
│││││││││┌ map(f::JuliaLowering.var"#_convert_nodes##0#_convert_nodes##1"{JuliaLowering.SyntaxGraph{…}} where Attrs, A::Nothing) @ Base ./:3402
││││││││││ runtime dispatch detected: Base.Generator(f::JuliaLowering.var"#_convert_nodes##0#_convert_nodes##1"{JuliaLowering.SyntaxGraph{Attrs}} where Attrs, A::Nothing)::Base.Generator{…} where F<:(JuliaLowering.var"#_convert_nodes##0#_convert_nodes##1"{…} where Attrs)
│││││││││└────────────────────
│││││││││┌ map(f::JuliaLowering.var"#_convert_nodes##0#_convert_nodes##1"{JuliaLowering.SyntaxGraph{…}} where Attrs, A::Nothing) @ Base ./:3402
││││││││││ runtime dispatch detected: collect(%1::Base.Generator{…} where F<:(JuliaLowering.var"#_convert_nodes##0#_convert_nodes##1"{…} where Attrs))
│││││││││└────────────────────
│││││││││┌ map(f::JuliaLowering.var"#_convert_nodes##0#_convert_nodes##1", A::Array) @ Base ./:3372
││││││││││┌ collect_similar(cont::Array, itr::Base.Generator) @ Base ./:732
│││││││││││┌ _collect(c::Array, itr::Base.Generator, ::Base.EltypeUnknown, isz::Base.SizeUnknown) @ Base ./:805
││││││││││││┌ grow_to!(dest::Vector, itr::Base.Generator) @ Base ./:867
│││││││││││││┌ grow_to!(dest::Vector, itr::Base.Generator, st::Any) @ Base ./array.jl:891
││││││││││││││┌ push_widen(dest::Vector, el::Any) @ Base ./:877
│││││││││││││││┌ append!(a::Vector, iter::Vector) @ Base ./:1357
││││││││││││││││┌ _append!(a::Vector, ::Base.HasShape{1}, iter::Vector) @ Base ./:1365
│││││││││││││││││┌ iterate(A::Vector) @ Base ./array.jl:901
││││││││││││││││││┌ iterate(A::Vector, i::Int64) @ Base ./array.jl:901
│││││││││││││││││││ runtime dispatch detected: (A::Vector)[i::Int64]::Any
││││││││││││││││││└────────────────────
│││││││││││┌ _collect(c::Array, itr::Base.Generator, ::Base.EltypeUnknown, isz::Union{Base.HasLength, Base.HasShape}) @ Base ./array.jl:820
││││││││││││┌ collect_to_with_first!(dest::AbstractArray, v1::Any, itr::Base.Generator, st::Any) @ Base ./array.jl:824
│││││││││││││┌ LinearIndices(inds::CartesianIndices) @ Base.IteratorsMD ./multidimensional.jl:591
││││││││││││││┌ all(f::Base.IteratorsMD.var"#22#23", itr::NTuple{N, OrdinalRange{Int64, Int64}} where N) @ Base ./anyall.jl:214
│││││││││││││││┌ _all_tuple(f::Base.IteratorsMD.var"#22#23", anymissing::Bool, x::OrdinalRange{…}, rest::Vararg{…}) @ Base ./anyall.jl:227
││││││││││││││││┌ _all_tuple(f::Base.IteratorsMD.var"#22#23", anymissing::Bool, x::OrdinalRange{…}, rest::Vararg{…}) @ Base ./anyall.jl:218
│││││││││││││││││ runtime dispatch detected: f::Base.IteratorsMD.var"#22#23"(x::OrdinalRange{Int64, Int64})::Bool
││││││││││││││││└────────────────────
││││││││││││┌ collect_to_with_first!(dest::Any, v1::Any, itr::Base.Generator, st::Any) @ Base ./:831
│││││││││││││┌ grow_to!(dest::AbstractDict{K, V}, itr::Base.Generator, st::Any) where {K, V} @ Base ./abstractdict.jl:629
││││││││││││││┌ merge!(d::AbstractDict, others::AbstractDict) @ Base ./abstractdict.jl:227
│││││││││││││││┌ kwcall(::@NamedTuple{shrink::Bool}, ::typeof(sizehint!), d::WeakKeyDict, newsz::Any) @ Base ./weakkeydict.jl:73
││││││││││││││││┌ sizehint!(d::WeakKeyDict, newsz::Any; shrink::Bool) @ Base ./weakkeydict.jl:73
│││││││││││││││││┌ kwcall(::@NamedTuple{shrink::Bool}, ::typeof(sizehint!), d::Dict{WeakRef}, newsz::Any) @ Base ./dict.jl:193
││││││││││││││││││┌ sizehint!(d::Dict{WeakRef}, newsz::Any; shrink::Bool) @ Base ./dict.jl:199
│││││││││││││││││││┌ rehash!(h::Dict{WeakRef}, newsz::Any) @ Base ./dict.jl:168
││││││││││││││││││││┌ hashindex(key::WeakRef, sz::Any) @ Base ./:128
│││││││││││││││││││││┌ hash(x::WeakRef) @ Base ./:28
││││││││││││││││││││││┌ hash(w::WeakRef, h::UInt64) @ Base ./:29
│││││││││││││││││││││││ runtime dispatch detected: hash(%1::Any, h::UInt64)::Any
││││││││││││││││││││││└────────────────────
│││┌ _interpolated_value(ctx::JuliaLowering.InterpolationContext, srcref::JuliaLowering.SyntaxTree, ex::Any) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/runtime.jl:79
││││┌ makeleaf(ctx::JuliaLowering.InterpolationContext, srcref::JuliaLowering.SyntaxTree, k::JuliaSyntax.Kind, value::String) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/ast.jl:142
│││││┌ makeleaf(ctx::JuliaLowering.InterpolationContext, srcref::JuliaLowering.SyntaxTree, k::JuliaSyntax.Kind, value::String; kws::@Kwargs{}) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/ast.jl:157
││││││┌ string(::String, ::JuliaSyntax.Kind, ::String) @ Base ./strings/io.jl:193
│││││││ failed to optimize due to recursion: string(::String, ::JuliaSyntax.Kind, ::String)
││││││└────────────────────
│││┌ _interpolated_value(ctx::JuliaLowering.InterpolationContext, srcref::Any, ex::Any) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/runtime.jl:74
││││┌ append_sourceref(ctx::JuliaLowering.InterpolationContext, ex::JuliaLowering.SyntaxTree, secondary_prov::Any) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/macro_expansion.jl:325
│││││┌ makenode(ctx::JuliaLowering.InterpolationContext, srcref::Tuple{…}, proto::JuliaLowering.SyntaxTree, children::Vararg{…}) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/ast.jl:134
││││││┌ makenode(ctx::JuliaLowering.InterpolationContext, srcref::Tuple{…}, proto::JuliaLowering.SyntaxTree, children::Vararg{…}; attrs::@Kwargs{}) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/ast.jl:135
│││││││┌ _makenode(ctx::JuliaLowering.InterpolationContext, srcref::Tuple{…}, proto::JuliaLowering.SyntaxTree, children::Tuple{…}) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/ast.jl:130
││││││││┌ _makenode(ctx::JuliaLowering.InterpolationContext, srcref::Tuple{…}, proto::JuliaLowering.SyntaxTree, children::Tuple{…}; attrs::@Kwargs{}) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/ast.jl:131
│││││││││┌ _makenode(graph::JuliaLowering.SyntaxGraph, srcref::Tuple{…}, proto::JuliaLowering.SyntaxTree, children::Tuple{…}) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/ast.jl:122
││││││││││┌ _makenode(graph::JuliaLowering.SyntaxGraph, srcref::Tuple{…}, proto::JuliaLowering.SyntaxTree, children::Tuple{…}; attrs::@Kwargs{}) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/ast.jl:127
│││││││││││┌ kwcall(::NamedTuple{…}, ::typeof(JuliaLowering.setattr!), graph::JuliaLowering.SyntaxGraph, id::Int64) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/syntax_graph.jl:150
││││││││││││┌ setattr!(graph::JuliaLowering.SyntaxGraph, id::Int64; attrs::Base.Pairs{…} where {…}) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/syntax_graph.jl:151
│││││││││││││┌ iterate(::Base.Pairs{Symbol, T, Nothing, A} where {T, A<:(NamedTuple{(:source,), <:Tuple{Tuple{Int64, Vararg{Any}}}})}) @ Base.Iterators ./iterators.jl:290
││││││││││││││ runtime dispatch detected: Base.Iterators._pairs_elt(p::Base.Pairs{Symbol, T, Nothing, A} where {T, A<:(NamedTuple{(:source,), <:Tuple{Tuple{Int64, Vararg{Any}}}})}, :source)::Pair{Symbol}
│││││││││││││└────────────────────
││┌ _interpolate_ast(ctx::JuliaLowering.InterpolationContext, ex::JuliaLowering.SyntaxTree, depth::Int64) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/runtime.jl:116
│││┌ _interpolate_ast(ctx::JuliaLowering.InterpolationContext, ex::Any, depth::Int64) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/runtime.jl:120
││││┌ _interp_makenode(ctx::JuliaLowering.InterpolationContext, ex::Any, args::JuliaLowering.SyntaxList{…} where Attrs) @ JuliaLowering ./:48
│││││┌ makenode(ctx::JuliaLowering.InterpolationContext, srcref::Any, proto::Any, children::JuliaLowering.SyntaxList{…} where Attrs) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/ast.jl:134
││││││┌ makenode(ctx::JuliaLowering.InterpolationContext, srcref::Any, proto::Any, children::JuliaLowering.SyntaxList{…} where Attrs; attrs::@Kwargs{}) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/ast.jl:135
│││││││┌ _makenode(ctx::JuliaLowering.InterpolationContext, srcref::Any, proto::Any, children::Vector{Int64}) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/ast.jl:130
││││││││┌ _makenode(ctx::JuliaLowering.InterpolationContext, srcref::Any, proto::Any, children::Vector{Int64}; attrs::@Kwargs{}) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/ast.jl:131
│││││││││┌ _makenode(ctx::Any, srcref::Any, proto::Any, children::Array; attrs::@Kwargs{}) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/ast.jl:131
││││││││││┌ _makenode(graph::JuliaLowering.SyntaxGraph, srcref::Any, proto::Any, children::Array) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/ast.jl:122
│││││││││││┌ _makenode(graph::JuliaLowering.SyntaxGraph, srcref::Any, proto::Any, children::Array; attrs::@Kwargs{}) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/ast.jl:124
││││││││││││┌ setchildren!(graph::JuliaLowering.SyntaxGraph, id::Int64, children::Array) @ JuliaLowering ./:110
│││││││││││││┌ append!(a::Vector{Int64}, iter::Array) @ Base ./:1357
││││││││││││││┌ _append!(a::Vector{Int64}, ::Base.HasShape, iter::Array) @ Base ./:1365
│││││││││││││││┌ iterate(A::Array) @ Base ./array.jl:901
││││││││││││││││ runtime dispatch detected: #self#::typeof(iterate)(A::Array, 1)::Union{Nothing, Tuple{Any, Int64}}
│││││││││││││││└────────────────────
│┌ interpolate_ast(::Type{JuliaLowering.SyntaxTree}, ::JuliaLowering.SyntaxTree{JuliaLowering.SyntaxGraph{Dict{…}}}) @ JuliaLowering /home/topolarity/.julia-jet/packages/JuliaLowering/A0OwQ/src/runtime.jl:151
││ failed to optimize due to recursion: JuliaLowering.interpolate_ast(::Type{…}, ::JuliaLowering.SyntaxTree{…})
│└────────────────────mlechu
Metadata
Metadata
Assignees
Labels
No labels