Skip to content

upgrading from v2.16 to v2.17 causes ERROR: expected tuple type #632

@nsajko

Description

@nsajko

On v2.17.1 I often get an error like this when trying to use ascend:

julia> ascend(only(invalidation_trees(raw_invalidations)).mt_backedges[11][end])
Choose a call for analysis (q to quit):
     nextind(::Base.AnnotatedString{String}, ::Integer)
       iterate(::Base.RegexMatchIterator{Base.AnnotatedString{String}}, ::Tuple{Any, Any})
         iterate(::Base.ANSIIterator{Base.AnnotatedString{String}}, ::Any)
           _truncate_at_width_or_chars(::Bool, ::AbstractString, ::Int64, ::Bool, ::String, ::String)
             _truncate_at_width_or_chars(::Bool, ::AbstractString, ::Int64)
 >             (::Base.Precompilation.var"#_precompilepkgs##39#_precompilepkgs##40"{Vector{Tuple{Base.PkgId, Pair{Cmd, Base.CacheFlags}}}, Int64, Base.Precompilation.MiniProgressBar, Vector{String}, Bool, Dict{Tu
                 #sprint#447(::Nothing, ::Int64, ::typeof(sprint), ::Base.Precompilation.var"#_precompilepkgs##39#_precompilepkgs##40"{Vector{Tuple{Base.PkgId, Pair{Cmd, Base.CacheFlags}}}, Int64, Base.Precompila
                   sprint(::Base.Precompilation.var"#_precompilepkgs##39#_precompilepkgs##40"{Vector{Tuple{Base.PkgId, Pair{Cmd, Base.CacheFlags}}}, Int64, Base.Precompilation.MiniProgressBar, Vector{String}, Boo
                     (::Base.Precompilation.var"#_precompilepkgs##37#_precompilepkgs##38"{Int64, Base.Precompilation.MiniProgressBar, Vector{String}, Bool, Dict{Tuple{Base.PkgId, Pair{Cmd, Base.CacheFlags}}, Stri
v                      lock(::Base.Precompilation.var"#_precompilepkgs##37#_precompilepkgs##38"{Int64, Base.Precompilation.MiniProgressBar, Vector{String}, Bool, Dict{Tuple{Base.PkgId, Pair{Cmd, Base.CacheFlags}}

Open an editor at a possible caller of
  MethodInstance for Base._truncate_at_width_or_chars(::Bool, ::AbstractString, ::Int64)
or browse typed code:
   "/home/nsajko/tmp/jl/jl/master-a046da5f25/share/julia/base/precompilation.jl", #_precompilepkgs##39: lines [839, 874]
 > Browse typed code
ERROR: expected tuple type
Stacktrace:
  [1] error(s::String)
    @ Base ./error.jl:44
  [2] to_tuple_type(t::Any)
    @ Base ./runtime_internals.jl:1239
  [3] signature_type(f::Any, argtypes::Any)
    @ Base ./runtime_internals.jl:1245
  [4] get_specialization(f::Any, tt::Any)
    @ Cthulhu ~/.julia/packages/Cthulhu/GsxDZ/src/CthulhuBase.jl:648
  [5] top-level scope
    @ ~/.julia/packages/Cthulhu/GsxDZ/src/CthulhuBase.jl:655
  [6] top-level scope
    @ ~/.julia/packages/Cthulhu/GsxDZ/src/CthulhuBase.jl:678
  [7] top-level scope
    @ ~/.julia/packages/Cthulhu/GsxDZ/src/CthulhuBase.jl:676
  [8] top-level scope
    @ ~/.julia/packages/Cthulhu/GsxDZ/src/CthulhuBase.jl:736
  [9] top-level scope
    @ ~/.julia/packages/Cthulhu/GsxDZ/src/CthulhuBase.jl:688
 [10] top-level scope
    @ ~/.julia/packages/Cthulhu/GsxDZ/src/Cthulhu.jl:188
 [11] top-level scope
    @ ~/.julia/packages/Cthulhu/GsxDZ/src/Cthulhu.jl:187
 [12] top-level scope
    @ ~/.julia/packages/Cthulhu/GsxDZ/src/CthulhuBase.jl:740
 [13] top-level scope
    @ ~/.julia/packages/Cthulhu/GsxDZ/src/CthulhuBase.jl:740
 [14] top-level scope
    @ ~/.julia/packages/Cthulhu/GsxDZ/src/Cthulhu.jl:188
 [15] top-level scope
    @ ~/.julia/packages/Cthulhu/GsxDZ/src/Cthulhu.jl:187
 [16] top-level scope
    @ REPL[1]:1

The specific reproducer is this, followed by the command above:

./master-a046da5f25/bin/julia -i -e '
using SnoopCompileCore: @snoop_invalidations
raw_invalidations::Vector{Any} = @snoop_invalidations begin
    struct I <: Integer end
    function Base.Int(::I) end
end
using SnoopCompile, Cthulhu
'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions