Julia: type-intersection handling bug with Varargs: TypeError(func=:Vararg, context="count", expected=Int64, got=:N)

Created on 19 Nov 2019  路  3Comments  路  Source: JuliaLang/julia

I just got this error on 1.3-rc5. Unfortunately it didn't come back after restarting Julia. Feel free to insta-close as not reproducible, but I figured I'd report it anyways.

julia> using Plots

julia> histogram(randn(1000))

Internal error: encountered unexpected error in runtime:
TypeError(func=:Vararg, context="count", expected=Int64, got=:N)
rec_backtrace at /buildworker/worker/package_linux64/build/src/stackwalk.c:94
record_backtrace at /buildworker/worker/package_linux64/build/src/task.c:224 [inlined]
jl_throw at /buildworker/worker/package_linux64/build/src/task.c:461
jl_type_error_rt at /buildworker/worker/package_linux64/build/src/rtutils.c:118
inst_datatype_inner at /buildworker/worker/package_linux64/build/src/jltypes.c:1142
inst_datatype_env at /buildworker/worker/package_linux64/build/src/jltypes.c:831 [inlined]
inst_datatype_env at /buildworker/worker/package_linux64/build/src/jltypes.c:835 [inlined]
inst_datatype_env at /buildworker/worker/package_linux64/build/src/jltypes.c:835
jl_apply_type at /buildworker/worker/package_linux64/build/src/jltypes.c:858
jl_apply_type2 at /buildworker/worker/package_linux64/build/src/jltypes.c:916
intersect at /buildworker/worker/package_linux64/build/src/subtype.c:2929
intersect_tuple at /buildworker/worker/package_linux64/build/src/subtype.c:2588 [inlined]
intersect at /buildworker/worker/package_linux64/build/src/subtype.c:2904
intersect_unionall_ at /buildworker/worker/package_linux64/build/src/subtype.c:2441
intersect_unionall at /buildworker/worker/package_linux64/build/src/subtype.c:2485
intersect at /buildworker/worker/package_linux64/build/src/subtype.c:2887
intersect_tuple at /buildworker/worker/package_linux64/build/src/subtype.c:2588 [inlined]
intersect at /buildworker/worker/package_linux64/build/src/subtype.c:2904
intersect_unionall_ at /buildworker/worker/package_linux64/build/src/subtype.c:2437
intersect_unionall at /buildworker/worker/package_linux64/build/src/subtype.c:2485
intersect at /buildworker/worker/package_linux64/build/src/subtype.c:2890
intersect_unionall_ at /buildworker/worker/package_linux64/build/src/subtype.c:2437
intersect_unionall at /buildworker/worker/package_linux64/build/src/subtype.c:2485
intersect at /buildworker/worker/package_linux64/build/src/subtype.c:2890
intersect_all at /buildworker/worker/package_linux64/build/src/subtype.c:2983
jl_type_intersection_env_s at /buildworker/worker/package_linux64/build/src/subtype.c:3177
jl_typemap_intersection_node_visitor at /buildworker/worker/package_linux64/build/src/typemap.c:484
jl_typemap_intersection_visitor at /buildworker/worker/package_linux64/build/src/typemap.c:572
ml_matches at /buildworker/worker/package_linux64/build/src/gf.c:2706
jl_matching_methods at /buildworker/worker/package_linux64/build/src/gf.c:1803
_methods_by_ftype at ./reflection.jl:838 [inlined]
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:50
abstract_call at ./compiler/abstractinterpretation.jl:850
abstract_call at ./compiler/abstractinterpretation.jl:636
abstract_eval_call at ./compiler/abstractinterpretation.jl:879
abstract_eval at ./compiler/abstractinterpretation.jl:949
typeinf_local at ./compiler/abstractinterpretation.jl:1194
typeinf_nocycle at ./compiler/abstractinterpretation.jl:1264
typeinf at ./compiler/typeinfer.jl:12
typeinf_edge at ./compiler/typeinfer.jl:488
abstract_call_method at ./compiler/abstractinterpretation.jl:396
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:93
abstract_call at ./compiler/abstractinterpretation.jl:850
jfptr_abstract_call_606.clone_1 at /home/sfr/local/bin/julia-1.3.0-rc5/lib/julia/sys.so (unknown line)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2135 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2305
abstract_apply at ./compiler/abstractinterpretation.jl:581
abstract_call at ./compiler/abstractinterpretation.jl:637
abstract_call at ./compiler/abstractinterpretation.jl:636
abstract_eval_call at ./compiler/abstractinterpretation.jl:879
abstract_eval at ./compiler/abstractinterpretation.jl:949
typeinf_local at ./compiler/abstractinterpretation.jl:1208
typeinf_nocycle at ./compiler/abstractinterpretation.jl:1264
typeinf at ./compiler/typeinfer.jl:12
typeinf_edge at ./compiler/typeinfer.jl:488
abstract_call_method at ./compiler/abstractinterpretation.jl:396
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:93
abstract_call at ./compiler/abstractinterpretation.jl:850
abstract_call at ./compiler/abstractinterpretation.jl:636
abstract_eval_call at ./compiler/abstractinterpretation.jl:879
abstract_eval at ./compiler/abstractinterpretation.jl:949
typeinf_local at ./compiler/abstractinterpretation.jl:1208
typeinf_nocycle at ./compiler/abstractinterpretation.jl:1264
typeinf at ./compiler/typeinfer.jl:12
typeinf_edge at ./compiler/typeinfer.jl:488
abstract_call_method at ./compiler/abstractinterpretation.jl:396
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:93
abstract_call at ./compiler/abstractinterpretation.jl:850
abstract_call at ./compiler/abstractinterpretation.jl:636
abstract_eval_call at ./compiler/abstractinterpretation.jl:879
abstract_eval at ./compiler/abstractinterpretation.jl:949
typeinf_local at ./compiler/abstractinterpretation.jl:1208
typeinf_nocycle at ./compiler/abstractinterpretation.jl:1264
typeinf at ./compiler/typeinfer.jl:12
typeinf_edge at ./compiler/typeinfer.jl:488
abstract_call_method at ./compiler/abstractinterpretation.jl:396
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:93
abstract_call at ./compiler/abstractinterpretation.jl:850
abstract_call at ./compiler/abstractinterpretation.jl:636
abstract_eval_call at ./compiler/abstractinterpretation.jl:879
abstract_eval at ./compiler/abstractinterpretation.jl:949
typeinf_local at ./compiler/abstractinterpretation.jl:1208
typeinf_nocycle at ./compiler/abstractinterpretation.jl:1264
typeinf at ./compiler/typeinfer.jl:12
typeinf_edge at ./compiler/typeinfer.jl:488
abstract_call_method at ./compiler/abstractinterpretation.jl:396
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:93
abstract_call at ./compiler/abstractinterpretation.jl:850
jfptr_abstract_call_606.clone_1 at /home/sfr/local/bin/julia-1.3.0-rc5/lib/julia/sys.so (unknown line)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2135 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2305
abstract_apply at ./compiler/abstractinterpretation.jl:581
abstract_call at ./compiler/abstractinterpretation.jl:637
abstract_call at ./compiler/abstractinterpretation.jl:636
abstract_eval_call at ./compiler/abstractinterpretation.jl:879
abstract_eval at ./compiler/abstractinterpretation.jl:949
typeinf_local at ./compiler/abstractinterpretation.jl:1208
typeinf_nocycle at ./compiler/abstractinterpretation.jl:1264
typeinf at ./compiler/typeinfer.jl:12
typeinf_edge at ./compiler/typeinfer.jl:488
abstract_call_method at ./compiler/abstractinterpretation.jl:396
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:93
abstract_call at ./compiler/abstractinterpretation.jl:850
jfptr_abstract_call_606.clone_1 at /home/sfr/local/bin/julia-1.3.0-rc5/lib/julia/sys.so (unknown line)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2135 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2305
abstract_apply at ./compiler/abstractinterpretation.jl:581
abstract_call at ./compiler/abstractinterpretation.jl:637
abstract_call at ./compiler/abstractinterpretation.jl:636
abstract_eval_call at ./compiler/abstractinterpretation.jl:879
abstract_eval at ./compiler/abstractinterpretation.jl:949
typeinf_local at ./compiler/abstractinterpretation.jl:1208
typeinf_nocycle at ./compiler/abstractinterpretation.jl:1264
typeinf at ./compiler/typeinfer.jl:12
typeinf_edge at ./compiler/typeinfer.jl:488
abstract_call_method at ./compiler/abstractinterpretation.jl:396
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:93
abstract_call at ./compiler/abstractinterpretation.jl:850
abstract_call at ./compiler/abstractinterpretation.jl:636
abstract_eval_call at ./compiler/abstractinterpretation.jl:879
abstract_eval at ./compiler/abstractinterpretation.jl:949
typeinf_local at ./compiler/abstractinterpretation.jl:1194
typeinf_nocycle at ./compiler/abstractinterpretation.jl:1264
typeinf at ./compiler/typeinfer.jl:12
typeinf_edge at ./compiler/typeinfer.jl:488
abstract_call_method at ./compiler/abstractinterpretation.jl:396
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:93
abstract_call at ./compiler/abstractinterpretation.jl:850
abstract_call at ./compiler/abstractinterpretation.jl:636
abstract_eval_call at ./compiler/abstractinterpretation.jl:879
abstract_eval at ./compiler/abstractinterpretation.jl:949
typeinf_local at ./compiler/abstractinterpretation.jl:1208
typeinf_nocycle at ./compiler/abstractinterpretation.jl:1264
typeinf at ./compiler/typeinfer.jl:12
typeinf_edge at ./compiler/typeinfer.jl:488
abstract_call_method at ./compiler/abstractinterpretation.jl:396
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:93
abstract_call at ./compiler/abstractinterpretation.jl:850
abstract_call at ./compiler/abstractinterpretation.jl:636
abstract_eval_call at ./compiler/abstractinterpretation.jl:879
abstract_eval at ./compiler/abstractinterpretation.jl:949
typeinf_local at ./compiler/abstractinterpretation.jl:1194
typeinf_nocycle at ./compiler/abstractinterpretation.jl:1264
typeinf at ./compiler/typeinfer.jl:12
typeinf_ext at ./compiler/typeinfer.jl:574
typeinf_ext at ./compiler/typeinfer.jl:605
jfptr_typeinf_ext_1.clone_1 at /home/sfr/local/bin/julia-1.3.0-rc5/lib/julia/sys.so (unknown line)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2135 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2305
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1631 [inlined]
jl_type_infer at /buildworker/worker/package_linux64/build/src/gf.c:209
jl_compile_method_internal at /buildworker/worker/package_linux64/build/src/gf.c:1879
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2140 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2305
_process_seriesrecipe at /home/sfr/.julia/packages/Plots/Iuc9S/src/pipeline.jl:408
_process_seriesrecipe at /home/sfr/.julia/packages/Plots/Iuc9S/src/pipeline.jl:417
_plot! at /home/sfr/.julia/packages/Plots/Iuc9S/src/plot.jl:234
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2135 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2305
#plot#137 at /home/sfr/.julia/packages/Plots/Iuc9S/src/plot.jl:57
#plot at ./none:0 [inlined]
#histogram#388 at /home/sfr/.julia/packages/RecipesBase/zBoFG/src/RecipesBase.jl:369 [inlined]
histogram at /home/sfr/.julia/packages/RecipesBase/zBoFG/src/RecipesBase.jl:369
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2135 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2305
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1631 [inlined]
do_call at /buildworker/worker/package_linux64/build/src/interpreter.c:328
eval_value at /buildworker/worker/package_linux64/build/src/interpreter.c:417
eval_stmt_value at /buildworker/worker/package_linux64/build/src/interpreter.c:368 [inlined]
eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:778
jl_interpret_toplevel_thunk_callback at /buildworker/worker/package_linux64/build/src/interpreter.c:888
Interpreter frame (ip: 1)
Core.CodeInfo(code=Array{Any, (3,)}[
  Expr(:call, :randn, 1000),
  Expr(:call, :histogram, SSAValue(1)),
  Expr(:return, SSAValue(2))], codelocs=Array{Int32, (3,)}[1, 1, 1], ssavaluetypes=3, ssaflags=Array{UInt8, (0,)}[], method_for_inference_limit_heuristics=nothing, linetable=Array{Any, (1,)}[Core.LineInfoNode(method=Symbol("top-level scope"), file=Symbol("/home/sfr/research_journal/2019/11/14/ir_localization.jmd"), line=229, inlined_at=0)], slotnames=Array{Symbol, (0,)}[], slotflags=Array{UInt8, (0,)}[], slottypes=nothing, rettype=Any, parent=nothing, edges=nothing, min_world=0x0000000000000001, max_world=0xffffffffffffffff, inferred=false, inlineable=false, propagate_inbounds=false, pure=false)jl_interpret_toplevel_thunk at /buildworker/worker/package_linux64/build/src/interpreter.c:897
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:814
jl_parse_eval_all at /buildworker/worker/package_linux64/build/src/ast.c:873
include_string at ./loading.jl:1075
include_string at /home/sfr/.julia/packages/CodeTools/xGemk/src/eval.jl:30
unknown function (ip: 0x7fa88cc6a082)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2135 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2305
#127 at /home/sfr/.julia/packages/Atom/lBERI/src/eval.jl:94
withpath at /home/sfr/.julia/packages/CodeTools/xGemk/src/utils.jl:30
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2135 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2305
withpath at /home/sfr/.julia/packages/Atom/lBERI/src/eval.jl:47
#126 at /home/sfr/.julia/packages/Atom/lBERI/src/eval.jl:93 [inlined]
with_logstate at ./logging.jl:395
with_logger at ./logging.jl:491 [inlined]
#125 at /home/sfr/.julia/packages/Atom/lBERI/src/eval.jl:92 [inlined]
hideprompt at /home/sfr/.julia/packages/Atom/lBERI/src/repl.jl:85
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2135 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2305
macro expansion at /home/sfr/.julia/packages/Atom/lBERI/src/eval.jl:91 [inlined]
macro expansion at /home/sfr/.julia/packages/Media/ItEPc/src/dynamic.jl:24 [inlined]
#124 at /home/sfr/.julia/packages/Atom/lBERI/src/eval.jl:86
#94 at /home/sfr/.julia/packages/Revise/Mlh6Z/src/Revise.jl:1181
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2135 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2305
handlemsg at /home/sfr/.julia/packages/Atom/lBERI/src/comm.jl:164
unknown function (ip: 0x7fa87a54344b)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2135 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2305
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1631 [inlined]
jl_f__apply at /buildworker/worker/package_linux64/build/src/builtins.c:627
#19 at ./task.jl:333
unknown function (ip: 0x7fa87a52ac97)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2135 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2305
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1631 [inlined]
start_task at /buildworker/worker/package_linux64/build/src/task.c:659
unknown function (ip: 0xffffffffffffffff)
types and dispatch

Most helpful comment

MWE:

julia> typeintersect(Tuple{:N,Vararg{Any,T}} where T, Tuple{T,Vararg{Any,T}} where T)
ERROR: TypeError: in Vararg, in count, expected Int64, got Symbol
Stacktrace:
 [1] typeintersect(::Any, ::Any) at ./reflection.jl:592
 [2] top-level scope at REPL[7]:1

All 3 comments

What OS and Plots version?

I'm on Arch Linux x86_64, using Plots v0.27.0. Though it's possible there was some environment switching so it's a little hard to know what version was loaded into Main.

MWE:

julia> typeintersect(Tuple{:N,Vararg{Any,T}} where T, Tuple{T,Vararg{Any,T}} where T)
ERROR: TypeError: in Vararg, in count, expected Int64, got Symbol
Stacktrace:
 [1] typeintersect(::Any, ::Any) at ./reflection.jl:592
 [2] top-level scope at REPL[7]:1
Was this page helpful?
0 / 5 - 0 ratings

Related issues

mbauman picture mbauman  路  276Comments

tknopp picture tknopp  路  171Comments

IainNZ picture IainNZ  路  109Comments

quinnj picture quinnj  路  179Comments

stevengj picture stevengj  路  174Comments