Skip to content

The string ?( bogs down REPL input to a crawl #56272

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
mbauman opened this issue Oct 21, 2024 · 7 comments · Fixed by #56278
Closed

The string ?( bogs down REPL input to a crawl #56272

mbauman opened this issue Oct 21, 2024 · 7 comments · Fixed by #56278
Labels
completions Tab and autocompletion in the repl regression 1.11 Regression in the 1.11 release REPL Julia's REPL (Read Eval Print Loop)

Comments

@mbauman
Copy link
Member

mbauman commented Oct 21, 2024

This is a funny one. Having the character combination of ?( anywhere in a REPL prompt — including in a string — makes input devastatingly slow. This is new in Julia v1.11. I'm on macOS 15.0.1 with an M1 processor and iTerm2:

Screen.Recording.2024-10-21.at.10.49.03.AM.mov
julia> versioninfo()
Julia Version 1.11.1
Commit 8f5b7ca12ad (2024-10-16 10:53 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: macOS (arm64-apple-darwin22.4.0)
  CPU: 8 × Apple M1 Pro
  WORD_SIZE: 64
  LLVM: libLLVM-16.0.6 (ORCJIT, apple-m1)
Threads: 1 default, 0 interactive, 1 GC (on 6 virtual cores)
@mbauman mbauman added REPL Julia's REPL (Read Eval Print Loop) regression 1.11 Regression in the 1.11 release labels Oct 21, 2024
@oscardssmith
Copy link
Member

This is very funny. I think we're compiling stuff related to running REPL help mode for tab completion eroniously or something weird like that.

@giordano giordano added the completions Tab and autocompletion in the repl label Oct 21, 2024
@giordano
Copy link
Member

This doesn't happen with Base.active_repl.options.hint_tab_completes = false, which makes me think the automatic completion while typing may see those characters as part of a regex. CC: @IanButterworth.

@mbauman
Copy link
Member Author

mbauman commented Oct 21, 2024

Yeah, I suspect it's likely a bad interaction between #38791 and #51229

@IanButterworth
Copy link
Member

IanButterworth commented Oct 21, 2024

Profile from while it's doing it. Looks like completion is finding a massive list of MethodCompletion and the time is spent doing repr for each of those.. And yeah @giordano sounds correct.. it shouldn't be searching in these cases, so a regex is bad or something.

dOverhead ╎ [+additional indent] Count File:Line  Function
=========================================================
Thread 1 (default) Task 0x000000010ca2f0d0 Total snapshots: 716. Utilization: 100%
   ╎1   @Base/pcre.jl:222  exec_r_data(re::Ptr{Nothing}, subject::String, offset::Int64, options::UInt32)
   ╎ 1   @Base/pcre.jl:199  exec
   ╎  1   @Base/pcre.jl:205  _exec
  1╎   1   @Base/pcre.jl:34  get_local_match_context()
   ╎1   @Base/show.jl:965  show(io::IOContext{IOBuffer}, x::Type)
  1╎ 1   @Base/show.jl:966  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎525 @REPL/src/LineEdit.jl:2868  (::REPL.LineEdit.var"#prompt!##2#prompt!##3"{REPL.Terminals.TTYTerminal, REPL.LineEdit.ModalInterface, REPL.LineEdit.MIState, ReentrantLock…
   ╎ 525 @Base/lock.jl:294  macro expansion
   ╎  525 @REPL/src/LineEdit.jl:2878  macro expansion
   ╎   525 @REPL/src/LineEdit.jl:1728  (::REPL.LineEdit.var"#match_input##0#match_input##1"{REPL.LineEdit.var"#186#187", String})(s::Any, p::Any)
   ╎    525 @Base/essentials.jl:1046  invokelatest
  5╎     525 @Base/essentials.jl:1049  #invokelatest#1
   ╎    ╎ 520 @REPL/src/LineEdit.jl:2544  (::REPL.LineEdit.var"#186#187")(s::REPL.LineEdit.MIState, data::Any, c::Union{Char, SubString{String}, String})
   ╎    ╎  520 @REPL/src/LineEdit.jl:387  check_for_hint(s::REPL.LineEdit.MIState)
   ╎    ╎   520 @REPL/src/REPL.jl:841  kwcall(::NamedTuple, ::typeof(REPL.LineEdit.complete_line), c::REPL.REPLCompletionProvider, s::REPL.LineEdit.PromptState, mod::Module)
   ╎    ╎    56  @REPL/src/REPL.jl:844  complete_line(c::REPL.REPLCompletionProvider, s::REPL.LineEdit.PromptState, mod::Module; hint::Bool)
   ╎    ╎     1   @REPL/src/REPLCompletions.jl:1226  completions(string::String, pos::Int64, context_module::Module, shift::Bool, hint::Bool)
   ╎    ╎    ╎ 1   d@Base/meta.jl:274  parse
   ╎    ╎    ╎  1   @Base/meta.jl:276  parse(str::String; filename::String, raise::Bool, depwarn::Bool)
   ╎    ╎    ╎   1   @Base/meta.jl:234  parse
   ╎    ╎    ╎    1   @Base/meta.jl:236  #parse#2
   ╎    ╎    ╎     1   @Base/meta.jl:198  _parse_string(text::String, filename::String, lineno::Int64, index::Int64, options::Symbol)
   ╎    ╎    ╎    ╎ 1   @JuliaSyntax/src/hooks.jl:117  (::Base.JuliaSyntax.var"#invoke_fixedworld#fix_world_age##2"{Base.JuliaSyntax.var"#invoke_fixedworld#108#fix_world_age##…
   ╎    ╎    ╎    ╎  1   @JuliaSyntax/src/hooks.jl:118  (::Base.JuliaSyntax.var"#invoke_fixedworld#fix_world_age##2"{Base.JuliaSyntax.var"#invoke_fixedworld#108#fix_world_age#…
   ╎    ╎    ╎    ╎   1   @Base/essentials.jl:1080  invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any})
   ╎    ╎    ╎    ╎    1   @Base/essentials.jl:1083  invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, @NamedTuple{}})
   ╎    ╎    ╎    ╎     1   @JuliaSyntax/src/hooks.jl:167  core_parser_hook(code::String, filename::String, lineno::Int64, offset::Int64, options::Symbol)
   ╎    ╎    ╎    ╎    ╎ 1   @JuliaSyntax/src/parse_stream.jl:699  bump_trivia
   ╎    ╎    ╎    ╎    ╎  1   @JuliaSyntax/src/parse_stream.jl:699  bump_trivia
   ╎    ╎    ╎    ╎    ╎   1   @JuliaSyntax/src/parse_stream.jl:702  bump_trivia(stream::Base.JuliaSyntax.ParseStream, flags::UInt16; skip_newlines::Bool, error::Nothing)
   ╎    ╎    ╎    ╎    ╎    1   @JuliaSyntax/src/parse_stream.jl:444  _lookahead_index
   ╎    ╎    ╎    ╎    ╎     1   @JuliaSyntax/src/parse_stream.jl:457  __lookahead_index(stream::Base.JuliaSyntax.ParseStream, n::Int64, skip_newlines::Bool)
   ╎    ╎    ╎    ╎    ╎    ╎ 1   @JuliaSyntax/src/parse_stream.jl:382  _buffer_lookahead_tokens(lexer::Base.JuliaSyntax.Tokenize.Lexer{IOBuffer}, lookahead::Vector{Base.Julia…
   ╎    ╎    ╎    ╎    ╎    ╎  1   @JuliaSyntax/src/tokenize.jl:452  next_token
   ╎    ╎    ╎    ╎    ╎    ╎   1   @JuliaSyntax/src/tokenize.jl:456  next_token(l::Base.JuliaSyntax.Tokenize.Lexer{IOBuffer}, start::Bool)
   ╎    ╎    ╎    ╎    ╎    ╎    1   @JuliaSyntax/src/tokenize.jl:516  _next_token(l::Base.JuliaSyntax.Tokenize.Lexer{IOBuffer}, c::Char)
   ╎    ╎    ╎    ╎    ╎    ╎     1   @JuliaSyntax/src/tokenize.jl:1125  lex_quote(l::Base.JuliaSyntax.Tokenize.Lexer{IOBuffer})
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/array.jl:1300  push!
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/array.jl:1303  _push!
   ╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/array.jl:1145  _growend!
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/array.jl:1161  (::Base.var"#_growend!##0#_growend!##1"{Vector{Base.JuliaSyntax.Tokenize.StringState}, Int64, Int64, Int64, Int6…
  1╎    ╎    ╎    ╎    ╎    ╎    ╎     1   @Base/array.jl:1070  overallocation
   ╎    ╎     1   @REPL/src/REPLCompletions.jl:1252  completions(string::String, pos::Int64, context_module::Module, shift::Bool, hint::Bool)
   ╎    ╎    ╎ 1   @Base/meta.jl:274  parse
   ╎    ╎    ╎  1   @Base/meta.jl:276  parse(str::String; filename::String, raise::Bool, depwarn::Bool)
   ╎    ╎    ╎   1   @Base/meta.jl:234  parse
   ╎    ╎    ╎    1   @Base/meta.jl:236  #parse#2
   ╎    ╎    ╎     1   @Base/meta.jl:198  _parse_string(text::String, filename::String, lineno::Int64, index::Int64, options::Symbol)
   ╎    ╎    ╎    ╎ 1   @JuliaSyntax/src/hooks.jl:117  (::Base.JuliaSyntax.var"#invoke_fixedworld#fix_world_age##2"{Base.JuliaSyntax.var"#invoke_fixedworld#108#fix_world_age##…
   ╎    ╎    ╎    ╎  1   @JuliaSyntax/src/hooks.jl:118  (::Base.JuliaSyntax.var"#invoke_fixedworld#fix_world_age##2"{Base.JuliaSyntax.var"#invoke_fixedworld#108#fix_world_age#…
   ╎    ╎    ╎    ╎   1   @Base/essentials.jl:1080  invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any})
   ╎    ╎    ╎    ╎    1   @Base/essentials.jl:1083  invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, @NamedTuple{}})
   ╎    ╎    ╎    ╎     1   @JuliaSyntax/src/hooks.jl:175  core_parser_hook(code::String, filename::String, lineno::Int64, offset::Int64, options::Symbol)
   ╎    ╎    ╎    ╎    ╎ 1   @JuliaSyntax/src/parser_api.jl:42  parse!
   ╎    ╎    ╎    ╎    ╎  1   @JuliaSyntax/src/parser_api.jl:57  parse!(stream::Base.JuliaSyntax.ParseStream; rule::Symbol)
   ╎    ╎    ╎    ╎    ╎   1   @JuliaSyntax/src/parse_stream.jl:966  validate_tokens(stream::Base.JuliaSyntax.ParseStream)
   ╎    ╎    ╎    ╎    ╎    1   @JuliaSyntax/src/literal_parsing.jl:234  unescape_julia_string(io::Base.DevNull, txtbuf::Vector{UInt8}, firstind::UInt32, endind::UInt32, diagn…
   ╎    ╎    ╎    ╎    ╎     1   @Base/int.jl:519  <
  1╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/int.jl:83  <
   ╎    ╎     54  @REPL/src/REPLCompletions.jl:1254  completions(string::String, pos::Int64, context_module::Module, shift::Bool, hint::Bool)
   ╎    ╎    ╎ 2   @REPL/src/REPLCompletions.jl:798  complete_any_methods(ex_org::Expr, callee_module::Module, context_module::Module, moreargs::Bool, shift::Bool)
   ╎    ╎    ╎  2   @REPL/src/REPLCompletions.jl:779  recursive_explore_names
   ╎    ╎    ╎   2   @REPL/src/REPLCompletions.jl:764  recursive_explore_names!
   ╎    ╎    ╎    2   @REPL/src/REPLCompletions.jl:772  recursive_explore_names!(seen::IdSet{Any}, callee_module::Module, initial_module::Module, exploredmodules::IdSet{Module…
  1╎    ╎    ╎     1   @REPL/src/REPLCompletions.jl:766  recursive_explore_names!(seen::IdSet{Any}, callee_module::Module, initial_module::Module, exploredmodules::IdSet{Modul…
   ╎    ╎    ╎     1   @REPL/src/REPLCompletions.jl:772  recursive_explore_names!(seen::IdSet{Any}, callee_module::Module, initial_module::Module, exploredmodules::IdSet{Modul…
  1╎    ╎    ╎    ╎ 1   @REPL/src/REPLCompletions.jl:766  recursive_explore_names!(seen::IdSet{Any}, callee_module::Module, initial_module::Module, exploredmodules::IdSet{Modu…
   ╎    ╎    ╎ 51  @REPL/src/REPLCompletions.jl:799  complete_any_methods(ex_org::Expr, callee_module::Module, context_module::Module, moreargs::Bool, shift::Bool)
  1╎    ╎    ╎  1   @REPL/src/REPLCompletions.jl:874  complete_methods!(out::Vector{REPL.REPLCompletions.Completion}, funct::Any, args_ex::Vector{Any}, kwargs_ex::Set{Symbol},…
   ╎    ╎    ╎  49  @REPL/src/REPLCompletions.jl:875  complete_methods!(out::Vector{REPL.REPLCompletions.Completion}, funct::Any, args_ex::Vector{Any}, kwargs_ex::Set{Symbol},…
 49╎    ╎    ╎   49  @Base/runtime_internals.jl:1381  _methods_by_ftype
   ╎    ╎    ╎  1   @REPL/src/REPLCompletions.jl:878  complete_methods!(out::Vector{REPL.REPLCompletions.Completion}, funct::Any, args_ex::Vector{Any}, kwargs_ex::Set{Symbol},…
   ╎    ╎    ╎   1   @Base/strings/io.jl:110  sprint(f::Function, args::Type)
   ╎    ╎    ╎    1   @Base/strings/io.jl:117  sprint(f::Function, args::Type; context::Nothing, sizehint::Int64)
   ╎    ╎    ╎     1   @Base/show.jl:2552  show_signature_function(io::IOBuffer, ft::Any)
   ╎    ╎    ╎    ╎ 1   @Base/show.jl:2564  show_signature_function(io::IOBuffer, ft::Any, demangle::Bool, fargname::String, html::Bool, qualified::Bool)
   ╎    ╎    ╎    ╎  1   @Base/show.jl:2576  kwcall(::@NamedTuple{bold::Bool}, ::typeof(Base.print_within_stacktrace), io::IOBuffer, s::Type)
   ╎    ╎    ╎    ╎   1   @Base/show.jl:2580  #print_within_stacktrace#486
   ╎    ╎    ╎    ╎    1   @Base/strings/io.jl:35  print(io::IOBuffer, x::Type)
   ╎    ╎    ╎    ╎     1   @Base/show.jl:965  show
   ╎    ╎    ╎    ╎    ╎ 1   @Base/show.jl:970  _show_type(io::IOBuffer, x::Type)
   ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:805  show_typealias(io::IOBuffer, x::Type)
   ╎    ╎    ╎    ╎    ╎   1   @Base/show.jl:625  make_typealias(x::Type)
  1╎    ╎    ╎    ╎    ╎    1   @Base/runtime_internals.jl:178  isdeprecated
   ╎    ╎    ╎ 1   @REPL/src/REPLCompletions.jl:804  complete_any_methods(ex_org::Expr, callee_module::Module, context_module::Module, moreargs::Bool, shift::Bool)
   ╎    ╎    ╎  1   @Base/array.jl:2971  filter!(f::REPL.REPLCompletions.var"#complete_any_methods##0#complete_any_methods##1", a::Vector{REPL.REPLCompletions.Completion})
   ╎    ╎    ╎   1   @REPL/src/REPLCompletions.jl:808  (::REPL.REPLCompletions.var"#complete_any_methods##0#complete_any_methods##1")(c::REPL.REPLCompletions.MethodCompletion)
   ╎    ╎    ╎    1   @Base/essentials.jl:953  getindex(v::Core.SimpleVector, I::UnitRange{Int64})
   ╎    ╎    ╎     1   @Base/array.jl:674  _array_for
   ╎    ╎    ╎    ╎ 1   @Base/array.jl:671  _array_for
   ╎    ╎    ╎    ╎  1   @Base/abstractarray.jl:867  similar
   ╎    ╎    ╎    ╎   1   @Base/abstractarray.jl:868  similar
   ╎    ╎    ╎    ╎    1   @Base/boot.jl:631  Array
   ╎    ╎    ╎    ╎     1   @Base/boot.jl:618  Array
  1╎    ╎    ╎    ╎    ╎ 1   @Base/boot.jl:558  GenericMemory
   ╎    ╎    464 @REPL/src/REPL.jl:846  complete_line(c::REPL.REPLCompletionProvider, s::REPL.LineEdit.PromptState, mod::Module; hint::Bool)
   ╎    ╎     464 @REPL/src/REPLCompletions.jl:119  completion_text(c::REPL.REPLCompletions.MethodCompletion)
   ╎    ╎    ╎ 464 @REPL/src/REPLCompletions.jl:113  _completion_text
   ╎    ╎    ╎  464 @Base/strings/io.jl:290  repr
   ╎    ╎    ╎   464 @Base/strings/io.jl:290  #repr#441
   ╎    ╎    ╎    464 @Base/strings/io.jl:110  sprint
   ╎    ╎    ╎     464 @Base/strings/io.jl:117  sprint(f::Function, args::Method; context::Nothing, sizehint::Int64)
   ╎    ╎    ╎    ╎ 464 @Base/methodshow.jl:209  show(io::IOBuffer, m::Method)
   ╎    ╎    ╎    ╎  464 @Base/methodshow.jl:209  #show#507
   ╎    ╎    ╎    ╎   464 @Base/methodshow.jl:213  show_method
   ╎    ╎    ╎    ╎    417 @Base/methodshow.jl:214  show_method(io::IOContext{IOBuffer}, m::Method; modulecolor::Symbol, digit_align_width::Int64)
   ╎    ╎    ╎    ╎     417 @Base/methodshow.jl:56  arg_decl_parts
   ╎    ╎    ╎    ╎    ╎ 8   @Base/methodshow.jl:62  arg_decl_parts(m::Method, html::Bool)
   ╎    ╎    ╎    ╎    ╎  8   @Base/methodshow.jl:155  updated_methodloc(m::Method)
   ╎    ╎    ╎    ╎    ╎   1   @Base/methodshow.jl:138  fixup_stdlib_path
   ╎    ╎    ╎    ╎    ╎    1   @Base/path.jl:414  normpath(path::String)
   ╎    ╎    ╎    ╎    ╎     1   @Base/strings/io.jl:381  join
   ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/strings/io.jl:363  _join_preserve_annotations
   ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/strings/io.jl:110  sprint
   ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/strings/io.jl:117  sprint(::Function, ::Vector{SubString{String}}, ::Vararg{Any}; context::Nothing, sizehint::Int64)
   ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/strings/io.jl:356  join(io::IOBuffer, iterator::Vector{SubString{String}}, delim::String)
   ╎    ╎    ╎    ╎    ╎    ╎     1   @Base/strings/io.jl:254  print
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/strings/io.jl:252  write
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/iobuffer.jl:531  unsafe_write(to::IOBuffer, p::Ptr{UInt8}, nb::UInt64)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/iobuffer.jl:410  ensureroom
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/iobuffer.jl:326  _resize!(io::IOBuffer, sz::Int64)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎     1   @Base/iobuffer.jl:165  _similar_data
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/iobuffer.jl:44  StringMemory
  1╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/strings/string.jl:108  _string_n
   ╎    ╎    ╎    ╎    ╎   7   @Base/methodshow.jl:139  fixup_stdlib_path
   ╎    ╎    ╎    ╎    ╎    2   @Base/path.jl:394  normpath(path::String)
   ╎    ╎    ╎    ╎    ╎     2   @Base/strings/util.jl:885  split
   ╎    ╎    ╎    ╎    ╎    ╎ 2   @Base/strings/util.jl:887  #split#429
   ╎    ╎    ╎    ╎    ╎    ╎  2   @Base/array.jl:729  collect
   ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/array.jl:741  _collect(cont::UnitRange{Int64}, itr::Base.SplitIterator{String, Regex}, ::Base.HasEltype, isz::Base.SizeUnknown)
   ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/array.jl:1300  push!
   ╎    ╎    ╎    ╎    ╎    ╎     1   @Base/array.jl:1304  _push!
  1╎    ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/essentials.jl:11  length
   ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/array.jl:742  _collect(cont::UnitRange{Int64}, itr::Base.SplitIterator{String, Regex}, ::Base.HasEltype, isz::Base.SizeUnknown)
   ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/strings/util.jl:720  iterate
   ╎    ╎    ╎    ╎    ╎    ╎     1   @Base/regex.jl:479  findnext
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/regex.jl:488  _findnext_re(re::Regex, str::String, idx::Int64, match_data::Ptr{Nothing})
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/regex.jl:71  compile(regex::Regex)
  1╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/Base.jl:49  getproperty
   ╎    ╎    ╎    ╎    ╎    1   @Base/path.jl:399  normpath(path::String)
   ╎    ╎    ╎    ╎    ╎     1   @Base/essentials.jl:910  getindex
  1╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/essentials.jl:11  length
   ╎    ╎    ╎    ╎    ╎    1   @Base/path.jl:400  normpath(path::String)
   ╎    ╎    ╎    ╎    ╎     1   @Base/array.jl:1833  deleteat!
   ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/array.jl:1260  _deleteat!(a::Vector{SubString{String}}, i::Int64, delta::Int64)
   ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/array.jl:1242  _deleteend!(a::Vector{SubString{String}}, delta::Int64)
  1╎    ╎    ╎    ╎    ╎    ╎   1   @Base/int.jl:87  +
   ╎    ╎    ╎    ╎    ╎    3   @Base/path.jl:414  normpath(path::String)
   ╎    ╎    ╎    ╎    ╎     3   @Base/strings/io.jl:381  join
   ╎    ╎    ╎    ╎    ╎    ╎ 3   @Base/strings/io.jl:363  _join_preserve_annotations
   ╎    ╎    ╎    ╎    ╎    ╎  3   @Base/strings/io.jl:110  sprint
  1╎    ╎    ╎    ╎    ╎    ╎   1   @Base/strings/io.jl:110  sprint(::Function, ::Vector{SubString{String}}, ::Vararg{Any}; context::Nothing, sizehint::Int64)
   ╎    ╎    ╎    ╎    ╎    ╎   2   @Base/strings/io.jl:117  sprint(::Function, ::Vector{SubString{String}}, ::Vararg{Any}; context::Nothing, sizehint::Int64)
   ╎    ╎    ╎    ╎    ╎    ╎    2   @Base/strings/io.jl:355  join(io::IOBuffer, iterator::Vector{SubString{String}}, delim::String)
   ╎    ╎    ╎    ╎    ╎    ╎     2   @Base/strings/io.jl:254  print
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 2   @Base/strings/io.jl:252  write
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  2   @Base/iobuffer.jl:531  unsafe_write(to::IOBuffer, p::Ptr{UInt8}, nb::UInt64)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎   2   @Base/iobuffer.jl:410  ensureroom
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    2   @Base/iobuffer.jl:326  _resize!(io::IOBuffer, sz::Int64)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎     2   @Base/iobuffer.jl:165  _similar_data
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎ 2   @Base/iobuffer.jl:44  StringMemory
  1╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/strings/string.jl:108  _string_n
  1╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/strings/string.jl:119  unsafe_wrap
   ╎    ╎    ╎    ╎    ╎ 2   @Base/methodshow.jl:63  arg_decl_parts(m::Method, html::Bool)
  2╎    ╎    ╎    ╎    ╎  2   @Base/methodshow.jl:50  method_argnames
   ╎    ╎    ╎    ╎    ╎ 376 @Base/methodshow.jl:69  arg_decl_parts(m::Method, html::Bool)
   ╎    ╎    ╎    ╎    ╎  17  @Base/methodshow.jl:41  argtype_decl(env::Base.ImmutableDict{Symbol, Any}, n::Symbol, sig::DataType, i::Int64, nargs::Int32, isva::Bool)
   ╎    ╎    ╎    ╎    ╎   17  @Base/strings/io.jl:169  string_with_env(env::Base.ImmutableDict{Symbol, Any}, xs::Type)
   ╎    ╎    ╎    ╎    ╎    17  @Base/strings/io.jl:35  print(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎     17  @Base/show.jl:965  show
   ╎    ╎    ╎    ╎    ╎    ╎ 8   @Base/show.jl:970  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎  8   @Base/show.jl:805  show_typealias(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎   3   @Base/show.jl:624  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    3   @Base/runtime_internals.jl:116  unsorted_names
  3╎    ╎    ╎    ╎    ╎    ╎     3   @Base/runtime_internals.jl:116  #unsorted_names#6
  2╎    ╎    ╎    ╎    ╎    ╎   5   @Base/show.jl:625  make_typealias(x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    1   @Base/runtime_internals.jl:404  isconst
  2╎    ╎    ╎    ╎    ╎    ╎    2   @Base/runtime_internals.jl:178  isdeprecated
   ╎    ╎    ╎    ╎    ╎    ╎ 8   @Base/show.jl:976  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎  8   @Base/show.jl:896  show_unionaliases(io::IOContext{IOBuffer}, x::Union)
   ╎    ╎    ╎    ╎    ╎    ╎   4   @Base/show.jl:828  make_typealiases(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    4   @Base/runtime_internals.jl:116  unsorted_names
  4╎    ╎    ╎    ╎    ╎    ╎     4   @Base/runtime_internals.jl:116  #unsorted_names#6
   ╎    ╎    ╎    ╎    ╎    ╎   2   @Base/show.jl:829  make_typealiases(x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    1   @Base/runtime_internals.jl:404  isconst
  1╎    ╎    ╎    ╎    ╎    ╎    1   @Base/runtime_internals.jl:178  isdeprecated
   ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/show.jl:831  make_typealiases(x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    1   @Base/boot.jl:331  has_free_typevars
  1╎    ╎    ╎    ╎    ╎    ╎   1   @Base/show.jl:846  make_typealiases(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/show.jl:980  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:1410  show_delim_array
   ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/show.jl:1421  show_delim_array(io::IOContext{IOBuffer}, itr::Vector{Any}, op::Char, delim::Char, cl::Char, delim_one::Bool, i1::Int64…
   ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/show.jl:965  show(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎     1   @Base/show.jl:1007  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/show.jl:1199  show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar})
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:714  show_typeparams(io::IOContext{IOBuffer}, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar})
   ╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/show.jl:965  show(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/show.jl:970  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎     1   @Base/show.jl:805  show_typealias(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/show.jl:624  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/runtime_internals.jl:116  unsorted_names
  1╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/runtime_internals.jl:116  #unsorted_names#6
   ╎    ╎    ╎    ╎    ╎  359 @Base/methodshow.jl:46  argtype_decl(env::Base.ImmutableDict{Symbol, Any}, n::Symbol, sig::DataType, i::Int64, nargs::Int32, isva::Bool)
   ╎    ╎    ╎    ╎    ╎   358 @Base/strings/io.jl:169  string_with_env(env::Base.ImmutableDict{Symbol, Any}, xs::Type)
   ╎    ╎    ╎    ╎    ╎    358 @Base/strings/io.jl:35  print(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎     358 @Base/show.jl:965  show
   ╎    ╎    ╎    ╎    ╎    ╎ 2   @Base/show.jl:968  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:1081  show_type_name(io::IOContext{IOBuffer}, tn::Core.TypeName)
  1╎    ╎    ╎    ╎    ╎    ╎   1   @Base/show.jl:1039  check_world_bounded(tn::Core.TypeName)
   ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:1083  show_type_name(io::IOContext{IOBuffer}, tn::Core.TypeName)
   ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/show.jl:1813  show_sym
   ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/show.jl:1814  show_sym(io::IOContext{IOBuffer}, sym::Symbol; allow_macroname::Bool)
   ╎    ╎    ╎    ╎    ╎    ╎     1   @Base/show.jl:1775  is_valid_identifier(sym::Symbol)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/show.jl:1572  isidentifier
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:1570  isidentifier(s::String)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/reduce.jl:1293  all
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/reduce.jl:1302  _all(f::typeof(Base.is_id_char), itr::Base.Iterators.Rest{String, Int64}, ::Colon)
  1╎    ╎    ╎    ╎    ╎    ╎    ╎     1   @Base/show.jl:1542  is_id_char
   ╎    ╎    ╎    ╎    ╎    ╎ 216 @Base/show.jl:970  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎  208 @Base/show.jl:805  show_typealias(io::IOContext{IOBuffer}, x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎   1   @Base/show.jl:0  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎   67  @Base/show.jl:624  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    67  @Base/runtime_internals.jl:116  unsorted_names
 67╎    ╎    ╎    ╎    ╎    ╎     67  @Base/runtime_internals.jl:116  #unsorted_names#6
 26╎    ╎    ╎    ╎    ╎    ╎   81  @Base/show.jl:625  make_typealias(x::Type)
 24╎    ╎    ╎    ╎    ╎    ╎    24  @Base/runtime_internals.jl:404  isconst
 31╎    ╎    ╎    ╎    ╎    ╎    31  @Base/runtime_internals.jl:178  isdeprecated
 32╎    ╎    ╎    ╎    ╎    ╎   32  @Base/show.jl:626  make_typealias(x::Type)
  3╎    ╎    ╎    ╎    ╎    ╎   14  @Base/show.jl:627  make_typealias(x::Type)
 11╎    ╎    ╎    ╎    ╎    ╎    11  @Base/boot.jl:331  has_free_typevars
  1╎    ╎    ╎    ╎    ╎    ╎   1   @Base/show.jl:629  make_typealias(x::Type)
 11╎    ╎    ╎    ╎    ╎    ╎   11  @Base/show.jl:644  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/show.jl:662  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/array.jl:915  iterate
  1╎    ╎    ╎    ╎    ╎    ╎     1   @Base/essentials.jl:11  length
   ╎    ╎    ╎    ╎    ╎    ╎  8   @Base/show.jl:808  show_typealias(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎   8   @Base/show.jl:755  show_typealias(io::IOContext{IOBuffer}, name::GlobalRef, x::Type, env::Core.SimpleVector, wheres::Vector{TypeVar})
   ╎    ╎    ╎    ╎    ╎    ╎    8   @Base/show.jl:714  show_typeparams(io::IOContext{IOBuffer}, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar})
   ╎    ╎    ╎    ╎    ╎    ╎     8   @Base/show.jl:965  show(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 5   @Base/show.jl:970  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  5   @Base/show.jl:805  show_typealias(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/show.jl:624  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/runtime_internals.jl:116  unsorted_names
  1╎    ╎    ╎    ╎    ╎    ╎    ╎     1   @Base/runtime_internals.jl:116  #unsorted_names#6
  3╎    ╎    ╎    ╎    ╎    ╎    ╎   3   @Base/show.jl:626  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/show.jl:627  make_typealias(x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/boot.jl:331  has_free_typevars
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 3   @Base/show.jl:976  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  3   @Base/show.jl:896  show_unionaliases(io::IOContext{IOBuffer}, x::Union)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/show.jl:828  make_typealiases(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/runtime_internals.jl:116  unsorted_names
  1╎    ╎    ╎    ╎    ╎    ╎    ╎     1   @Base/runtime_internals.jl:116  #unsorted_names#6
  1╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/show.jl:829  make_typealiases(x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/show.jl:830  make_typealiases(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎ 32  @Base/show.jl:973  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎  32  @Base/show.jl:1107  show_datatype
   ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/show.jl:1116  show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar})
   ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/strings/io.jl:254  print
   ╎    ╎    ╎    ╎    ╎    ╎     1   @Base/strings/io.jl:252  write
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/io.jl:452  unsafe_write
  1╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/iobuffer.jl:530  unsafe_write(to::IOBuffer, p::Ptr{UInt8}, nb::UInt64)
   ╎    ╎    ╎    ╎    ╎    ╎   9   @Base/show.jl:1163  show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar})
   ╎    ╎    ╎    ╎    ╎    ╎    9   @Base/show.jl:965  show(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎     6   @Base/show.jl:970  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 6   @Base/show.jl:805  show_typealias(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  2   @Base/show.jl:624  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎   2   @Base/runtime_internals.jl:116  unsorted_names
  2╎    ╎    ╎    ╎    ╎    ╎    ╎    2   @Base/runtime_internals.jl:116  #unsorted_names#6
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  2   @Base/show.jl:625  make_typealias(x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/runtime_internals.jl:404  isconst
  1╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/runtime_internals.jl:178  isdeprecated
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:627  make_typealias(x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/boot.jl:331  has_free_typevars
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:662  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/array.jl:915  iterate
  1╎    ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/essentials.jl:11  length
   ╎    ╎    ╎    ╎    ╎    ╎     3   @Base/show.jl:976  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 3   @Base/show.jl:896  show_unionaliases(io::IOContext{IOBuffer}, x::Union)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:828  make_typealiases(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/runtime_internals.jl:116  unsorted_names
  1╎    ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/runtime_internals.jl:116  #unsorted_names#6
  1╎    ╎    ╎    ╎    ╎    ╎    ╎  2   @Base/show.jl:829  make_typealiases(x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/runtime_internals.jl:178  isdeprecated
   ╎    ╎    ╎    ╎    ╎    ╎   5   @Base/show.jl:1170  show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar})
   ╎    ╎    ╎    ╎    ╎    ╎    5   @Base/show.jl:2835  show(io::IOContext{IOBuffer}, vm::Core.TypeofVararg)
   ╎    ╎    ╎    ╎    ╎    ╎     5   @Base/show.jl:965  show(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/show.jl:970  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:805  show_typealias(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/show.jl:625  make_typealias(x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/runtime_internals.jl:404  isconst
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 4   @Base/show.jl:976  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  4   @Base/show.jl:896  show_unionaliases(io::IOContext{IOBuffer}, x::Union)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎   2   @Base/show.jl:828  make_typealiases(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    2   @Base/runtime_internals.jl:116  unsorted_names
  2╎    ╎    ╎    ╎    ╎    ╎    ╎     2   @Base/runtime_internals.jl:116  #unsorted_names#6
  1╎    ╎    ╎    ╎    ╎    ╎    ╎   2   @Base/show.jl:829  make_typealiases(x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/runtime_internals.jl:178  isdeprecated
   ╎    ╎    ╎    ╎    ╎    ╎   17  @Base/show.jl:1199  show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar})
   ╎    ╎    ╎    ╎    ╎    ╎    17  @Base/show.jl:722  show_typeparams(io::IOContext{IOBuffer}, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar})
   ╎    ╎    ╎    ╎    ╎    ╎     17  @Base/show.jl:965  show(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 14  @Base/show.jl:970  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  14  @Base/show.jl:805  show_typealias(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/show.jl:624  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/runtime_internals.jl:116  unsorted_names
  1╎    ╎    ╎    ╎    ╎    ╎    ╎     1   @Base/runtime_internals.jl:116  #unsorted_names#6
  4╎    ╎    ╎    ╎    ╎    ╎    ╎   6   @Base/show.jl:625  make_typealias(x::Type)
  2╎    ╎    ╎    ╎    ╎    ╎    ╎    2   @Base/runtime_internals.jl:404  isconst
  4╎    ╎    ╎    ╎    ╎    ╎    ╎   4   @Base/show.jl:626  make_typealias(x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/show.jl:627  make_typealias(x::Type)
  2╎    ╎    ╎    ╎    ╎    ╎    ╎   2   @Base/show.jl:644  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/show.jl:976  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:896  show_unionaliases(io::IOContext{IOBuffer}, x::Union)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/show.jl:829  make_typealiases(x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/runtime_internals.jl:178  isdeprecated
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 2   @Base/show.jl:980  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  2   @Base/show.jl:1410  show_delim_array
   ╎    ╎    ╎    ╎    ╎    ╎    ╎   2   @Base/show.jl:1421  show_delim_array(io::IOContext{IOBuffer}, itr::Vector{Any}, op::Char, delim::Char, cl::Char, delim_one::Bool, i1::…
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    2   @Base/show.jl:965  show(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎     2   @Base/show.jl:970  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎ 2   @Base/show.jl:805  show_typealias(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:624  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/runtime_internals.jl:116  unsorted_names
  1╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/runtime_internals.jl:116  #unsorted_names#6
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:625  make_typealias(x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/runtime_internals.jl:404  isconst
   ╎    ╎    ╎    ╎    ╎    ╎ 68  @Base/show.jl:976  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎  66  @Base/show.jl:896  show_unionaliases(io::IOContext{IOBuffer}, x::Union)
   ╎    ╎    ╎    ╎    ╎    ╎   10  @Base/show.jl:828  make_typealiases(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    10  @Base/runtime_internals.jl:116  unsorted_names
 10╎    ╎    ╎    ╎    ╎    ╎     10  @Base/runtime_internals.jl:116  #unsorted_names#6
  5╎    ╎    ╎    ╎    ╎    ╎   23  @Base/show.jl:829  make_typealiases(x::Type)
  7╎    ╎    ╎    ╎    ╎    ╎    7   @Base/runtime_internals.jl:404  isconst
 11╎    ╎    ╎    ╎    ╎    ╎    11  @Base/runtime_internals.jl:178  isdeprecated
  5╎    ╎    ╎    ╎    ╎    ╎   5   @Base/show.jl:830  make_typealiases(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/show.jl:831  make_typealiases(x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    1   @Base/boot.jl:331  has_free_typevars
 24╎    ╎    ╎    ╎    ╎    ╎   24  @Base/show.jl:832  make_typealiases(x::Type)
  2╎    ╎    ╎    ╎    ╎    ╎   2   @Base/show.jl:846  make_typealiases(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/show.jl:856  make_typealiases(x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    1   @Base/boot.jl:331  has_free_typevars
   ╎    ╎    ╎    ╎    ╎    ╎  2   @Base/show.jl:909  show_unionaliases(io::IOContext{IOBuffer}, x::Union)
   ╎    ╎    ╎    ╎    ╎    ╎   2   @Base/show.jl:965  show(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    2   @Base/show.jl:970  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎     2   @Base/show.jl:805  show_typealias(io::IOContext{IOBuffer}, x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/show.jl:626  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/show.jl:627  make_typealias(x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/boot.jl:331  has_free_typevars
   ╎    ╎    ╎    ╎    ╎    ╎ 33  @Base/show.jl:980  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎  33  @Base/show.jl:1410  show_delim_array
   ╎    ╎    ╎    ╎    ╎    ╎   33  @Base/show.jl:1421  show_delim_array(io::IOContext{IOBuffer}, itr::Vector{Any}, op::Char, delim::Char, cl::Char, delim_one::Bool, i1::Int64…
   ╎    ╎    ╎    ╎    ╎    ╎    33  @Base/show.jl:965  show(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎     1   @Base/show.jl:968  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/show.jl:1060  show_type_name(io::IOContext{IOBuffer}, tn::Core.TypeName)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:1029  is_global_function(tn::Core.TypeName, globname::Symbol)
  1╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/runtime_internals.jl:200  isbindingresolved
   ╎    ╎    ╎    ╎    ╎    ╎     11  @Base/show.jl:970  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 11  @Base/show.jl:805  show_typealias(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  6   @Base/show.jl:624  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎   6   @Base/runtime_internals.jl:116  unsorted_names
  6╎    ╎    ╎    ╎    ╎    ╎    ╎    6   @Base/runtime_internals.jl:116  #unsorted_names#6
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:625  make_typealias(x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/runtime_internals.jl:404  isconst
  3╎    ╎    ╎    ╎    ╎    ╎    ╎  3   @Base/show.jl:626  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:662  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/array.jl:915  iterate
  1╎    ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/essentials.jl:11  length
   ╎    ╎    ╎    ╎    ╎    ╎     4   @Base/show.jl:973  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 4   @Base/show.jl:1107  show_datatype
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  4   @Base/show.jl:1199  show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar})
   ╎    ╎    ╎    ╎    ╎    ╎    ╎   4   @Base/show.jl:722  show_typeparams(io::IOContext{IOBuffer}, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar})
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    4   @Base/show.jl:965  show(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎     4   @Base/show.jl:970  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎ 4   @Base/show.jl:805  show_typealias(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:624  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/runtime_internals.jl:116  unsorted_names
  1╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/runtime_internals.jl:116  #unsorted_names#6
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:625  make_typealias(x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/runtime_internals.jl:178  isdeprecated
  1╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:644  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:652  make_typealias(x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/boot.jl:331  has_free_typevars
   ╎    ╎    ╎    ╎    ╎    ╎     17  @Base/show.jl:1012  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 17  @Base/show.jl:796  show_wheres(io::IOContext{IOBuffer}, wheres::Vector{TypeVar})
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  17  @Base/show.jl:2826  show(io::IOContext{IOBuffer}, tv::TypeVar)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎   17  @Base/show.jl:2807  (::Base.var"#show_bound#show##2")(io::IOContext{IOBuffer}, b::Any)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    17  @Base/show.jl:965  show(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎     1   @Base/show.jl:970  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/show.jl:805  show_typealias(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:625  make_typealias(x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/runtime_internals.jl:178  isdeprecated
   ╎    ╎    ╎    ╎    ╎    ╎    ╎     10  @Base/show.jl:976  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎ 10  @Base/show.jl:896  show_unionaliases(io::IOContext{IOBuffer}, x::Union)
  9╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎  9   @Base/show.jl:832  make_typealiases(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:856  make_typealiases(x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/boot.jl:331  has_free_typevars
   ╎    ╎    ╎    ╎    ╎    ╎    ╎     6   @Base/show.jl:980  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎ 6   @Base/show.jl:1410  show_delim_array
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎  6   @Base/show.jl:1421  show_delim_array(io::IOContext{IOBuffer}, itr::Vector{Any}, op::Char, delim::Char, cl::Char, delim_one::Bool, …
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎   6   @Base/show.jl:965  show(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/show.jl:970  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎     1   @Base/show.jl:805  show_typealias(io::IOContext{IOBuffer}, x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/show.jl:626  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    5   @Base/show.jl:1012  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎     5   @Base/show.jl:796  show_wheres(io::IOContext{IOBuffer}, wheres::Vector{TypeVar})
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎ 5   @Base/show.jl:2826  show(io::IOContext{IOBuffer}, tv::TypeVar)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎  5   @Base/show.jl:2807  (::Base.var"#show_bound#show##2")(io::IOContext{IOBuffer}, b::Any)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎   5   @Base/show.jl:965  show(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    4   @Base/show.jl:976  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎     4   @Base/show.jl:896  show_unionaliases(io::IOContext{IOBuffer}, x::Union)
  3╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎ 4   @Base/show.jl:832  make_typealiases(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/show.jl:980  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎     1   @Base/show.jl:1410  show_delim_array
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/show.jl:1421  show_delim_array(io::IOContext{IOBuffer}, itr::Vector{Any}, op::Char, delim::Char, cl::Char, delim_on…
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:965  show(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/show.jl:970  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/show.jl:805  show_typealias(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎     1   @Base/show.jl:624  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/runtime_internals.jl:116  unsorted_names
  1╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/runtime_internals.jl:116  #unsorted_names#6
   ╎    ╎    ╎    ╎    ╎    ╎ 3   @Base/show.jl:1007  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎  3   @Base/show.jl:1199  show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar})
   ╎    ╎    ╎    ╎    ╎    ╎   2   @Base/show.jl:714  show_typeparams(io::IOContext{IOBuffer}, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar})
   ╎    ╎    ╎    ╎    ╎    ╎    2   @Base/show.jl:965  show(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎     2   @Base/show.jl:970  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 2   @Base/show.jl:805  show_typealias(io::IOContext{IOBuffer}, x::Type)
  2╎    ╎    ╎    ╎    ╎    ╎    ╎  2   @Base/show.jl:626  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/show.jl:722  show_typeparams(io::IOContext{IOBuffer}, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar})
   ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/show.jl:965  show(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎     1   @Base/show.jl:970  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/show.jl:805  show_typealias(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:625  make_typealias(x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/runtime_internals.jl:404  isconst
   ╎    ╎    ╎    ╎    ╎    ╎ 3   @Base/show.jl:1009  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎  3   @Base/show.jl:965  show(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎   3   @Base/show.jl:980  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    3   @Base/show.jl:1410  show_delim_array
   ╎    ╎    ╎    ╎    ╎    ╎     3   @Base/show.jl:1421  show_delim_array(io::IOContext{IOBuffer}, itr::Vector{Any}, op::Char, delim::Char, cl::Char, delim_one::Bool, i1::Int…
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 3   @Base/show.jl:965  show(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  3   @Base/show.jl:973  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎   3   @Base/show.jl:1107  show_datatype
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    3   @Base/show.jl:1199  show_datatype(io::IOContext{IOBuffer}, x::DataType, wheres::Vector{TypeVar})
   ╎    ╎    ╎    ╎    ╎    ╎    ╎     3   @Base/show.jl:722  show_typeparams(io::IOContext{IOBuffer}, env::Core.SimpleVector, orig::Core.SimpleVector, wheres::Vector{TypeVar})
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎ 3   @Base/show.jl:965  show(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎  3   @Base/show.jl:970  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎   3   @Base/show.jl:805  show_typealias(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/show.jl:624  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎     1   @Base/runtime_internals.jl:116  unsorted_names
  1╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/runtime_internals.jl:116  #unsorted_names#6
  2╎    ╎    ╎    ╎    ╎    ╎    ╎    ╎    2   @Base/show.jl:626  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/show.jl:1012  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:796  show_wheres(io::IOContext{IOBuffer}, wheres::Vector{TypeVar})
   ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/show.jl:2826  show(io::IOContext{IOBuffer}, tv::TypeVar)
   ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/show.jl:2807  (::Base.var"#show_bound#show##2")(io::IOContext{IOBuffer}, b::Any)
   ╎    ╎    ╎    ╎    ╎    ╎     1   @Base/show.jl:965  show(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/show.jl:970  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:805  show_typealias(io::IOContext{IOBuffer}, x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/show.jl:626  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎   1   @Base/strings/io.jl:171  string_with_env(env::Base.ImmutableDict{Symbol, Any}, xs::Type)
   ╎    ╎    ╎    ╎    ╎    1   @Base/iobuffer.jl:513  _unsafe_take!
  1╎    ╎    ╎    ╎    ╎     1   @Base/Base.jl:49  getproperty
  6╎    ╎    ╎    ╎    ╎ 31  @Base/methodshow.jl:71  arg_decl_parts(m::Method, html::Bool)
  7╎    ╎    ╎    ╎    ╎  25  @Base/strings/io.jl:110  kwcall(::@NamedTuple{context::Base.ImmutableDict{Symbol, Any}}, ::typeof(sprint), ::Function, ::Type, ::Vararg{Any})
   ╎    ╎    ╎    ╎    ╎   18  @Base/strings/io.jl:115  sprint(::Function, ::Type, ::Vararg{Any}; context::Base.ImmutableDict{Symbol, Any}, sizehint::Int64)
   ╎    ╎    ╎    ╎    ╎    18  @Base/show.jl:2552  show_signature_function(io::IOContext{IOBuffer}, ft::Any, demangle::Bool, fargname::String, html::Bool)
   ╎    ╎    ╎    ╎    ╎     9   @Base/show.jl:2564  show_signature_function(io::IOContext{IOBuffer}, ft::Any, demangle::Bool, fargname::String, html::Bool, qualified::Bool)
   ╎    ╎    ╎    ╎    ╎    ╎ 9   @Base/show.jl:2576  kwcall(::@NamedTuple{bold::Bool}, ::typeof(Base.print_within_stacktrace), io::IOContext{IOBuffer}, s::Type)
   ╎    ╎    ╎    ╎    ╎    ╎  9   @Base/show.jl:2580  #print_within_stacktrace#486
   ╎    ╎    ╎    ╎    ╎    ╎   9   @Base/strings/io.jl:35  print(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    9   @Base/show.jl:965  show
   ╎    ╎    ╎    ╎    ╎    ╎     9   @Base/show.jl:970  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 9   @Base/show.jl:805  show_typealias(io::IOContext{IOBuffer}, x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:0  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  4   @Base/show.jl:624  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎   4   @Base/runtime_internals.jl:116  unsorted_names
  4╎    ╎    ╎    ╎    ╎    ╎    ╎    4   @Base/runtime_internals.jl:116  #unsorted_names#6
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:625  make_typealias(x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/runtime_internals.jl:178  isdeprecated
  2╎    ╎    ╎    ╎    ╎    ╎    ╎  2   @Base/show.jl:626  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/show.jl:627  make_typealias(x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/boot.jl:331  has_free_typevars
   ╎    ╎    ╎    ╎    ╎     9   @Base/show.jl:2570  show_signature_function(io::IOContext{IOBuffer}, ft::Any, demangle::Bool, fargname::String, html::Bool, qualified::Bool)
   ╎    ╎    ╎    ╎    ╎    ╎ 9   @Base/show.jl:2576  print_within_stacktrace
   ╎    ╎    ╎    ╎    ╎    ╎  9   @Base/show.jl:0  print_within_stacktrace(::IOContext{IOBuffer}, ::String, ::Vararg{Any}; color::Symbol, bold::Bool)
   ╎    ╎    ╎    ╎    ╎    ╎   9   @Base/strings/io.jl:46  print(::IOContext{IOBuffer}, ::String, ::Type, ::String)
   ╎    ╎    ╎    ╎    ╎    ╎    9   @Base/strings/io.jl:35  print(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎     9   @Base/show.jl:965  show
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 9   @Base/show.jl:970  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  9   @Base/show.jl:805  show_typealias(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎   3   @Base/show.jl:624  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    3   @Base/runtime_internals.jl:116  unsorted_names
  3╎    ╎    ╎    ╎    ╎    ╎    ╎     3   @Base/runtime_internals.jl:116  #unsorted_names#6
   ╎    ╎    ╎    ╎    ╎    ╎    ╎   3   @Base/show.jl:625  make_typealias(x::Type)
  2╎    ╎    ╎    ╎    ╎    ╎    ╎    2   @Base/runtime_internals.jl:404  isconst
  1╎    ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/runtime_internals.jl:178  isdeprecated
  2╎    ╎    ╎    ╎    ╎    ╎    ╎   2   @Base/show.jl:626  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/show.jl:627  make_typealias(x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/boot.jl:331  has_free_typevars
   ╎    ╎    ╎    ╎    1   @Base/methodshow.jl:226  show_method(io::IOContext{IOBuffer}, m::Method; modulecolor::Symbol, digit_align_width::Int64)
   ╎    ╎    ╎    ╎     1   @Base/util.jl:141  printstyled
   ╎    ╎    ╎    ╎    ╎ 1   @Base/util.jl:141  #printstyled#835
   ╎    ╎    ╎    ╎    ╎  1   @Base/util.jl:73  with_output_color
   ╎    ╎    ╎    ╎    ╎   1   @Base/util.jl:76  with_output_color(f::Function, color::Symbol, io::IOContext{IOBuffer}, args::String; bold::Bool, italic::Bool, underline::Bool…
   ╎    ╎    ╎    ╎    ╎    1   @Base/iobuffer.jl:128  GenericIOBuffer
   ╎    ╎    ╎    ╎    ╎     1   @Base/iobuffer.jl:137  #IOBuffer#386
   ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/iobuffer.jl:44  StringMemory
  1╎    ╎    ╎    ╎    ╎    ╎  1   @Base/strings/string.jl:119  unsafe_wrap
   ╎    ╎    ╎    ╎    1   @Base/methodshow.jl:228  show_method(io::IOContext{IOBuffer}, m::Method; modulecolor::Symbol, digit_align_width::Int64)
   ╎    ╎    ╎    ╎     1   @Base/strings/io.jl:254  print
   ╎    ╎    ╎    ╎    ╎ 1   @Base/strings/io.jl:252  write
   ╎    ╎    ╎    ╎    ╎  1   @Base/io.jl:452  unsafe_write
  1╎    ╎    ╎    ╎    ╎   1   @Base/iobuffer.jl:546  unsafe_write(to::IOBuffer, p::Ptr{UInt8}, nb::UInt64)
   ╎    ╎    ╎    ╎    1   @Base/methodshow.jl:229  show_method(io::IOContext{IOBuffer}, m::Method; modulecolor::Symbol, digit_align_width::Int64)
   ╎    ╎    ╎    ╎     1   @Base/show.jl:2754  print_type_bicolor
   ╎    ╎    ╎    ╎    ╎ 1   @Base/show.jl:2766  print_type_bicolor(io::IOContext{IOBuffer}, str::String; color::Symbol, inner_color::Symbol, use_color::Bool)
   ╎    ╎    ╎    ╎    ╎  1   @Base/strings/string.jl:506  getindex
  1╎    ╎    ╎    ╎    ╎   1   @Base/strings/string.jl:108  _string_n
   ╎    ╎    ╎    ╎    4   @Base/methodshow.jl:234  show_method(io::IOContext{IOBuffer}, m::Method; modulecolor::Symbol, digit_align_width::Int64)
   ╎    ╎    ╎    ╎     4   @Base/methodshow.jl:81  kwarg_decl
  3╎    ╎    ╎    ╎    ╎ 3   @Base/methodshow.jl:83  kwarg_decl(m::Method, kwtype::Nothing)
  1╎    ╎    ╎    ╎    ╎ 1   @Base/methodshow.jl:84  kwarg_decl(m::Method, kwtype::Nothing)
   ╎    ╎    ╎    ╎    18  @Base/methodshow.jl:246  show_method(io::IOContext{IOBuffer}, m::Method; modulecolor::Symbol, digit_align_width::Int64)
   ╎    ╎    ╎    ╎     18  @Base/methodshow.jl:107  show_method_params(io::IOContext{IOBuffer}, tv::Vector{Any})
   ╎    ╎    ╎    ╎    ╎ 18  @Base/show.jl:2826  show(io::IOContext{IOBuffer}, tv::TypeVar)
   ╎    ╎    ╎    ╎    ╎  18  @Base/show.jl:2807  (::Base.var"#show_bound#show##2")(io::IOContext{IOBuffer}, b::Any)
   ╎    ╎    ╎    ╎    ╎   18  @Base/show.jl:965  show(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    10  @Base/show.jl:970  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎     10  @Base/show.jl:805  show_typealias(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎ 3   @Base/show.jl:624  make_typealias(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎  3   @Base/runtime_internals.jl:116  unsorted_names
  3╎    ╎    ╎    ╎    ╎    ╎   3   @Base/runtime_internals.jl:116  #unsorted_names#6
  5╎    ╎    ╎    ╎    ╎    ╎ 6   @Base/show.jl:625  make_typealias(x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎  1   @Base/runtime_internals.jl:404  isconst
   ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/show.jl:627  make_typealias(x::Type)
  1╎    ╎    ╎    ╎    ╎    ╎  1   @Base/boot.jl:331  has_free_typevars
   ╎    ╎    ╎    ╎    ╎    8   @Base/show.jl:976  _show_type(io::IOContext{IOBuffer}, x::Type)
   ╎    ╎    ╎    ╎    ╎     8   @Base/show.jl:896  show_unionaliases(io::IOContext{IOBuffer}, x::Union)
  1╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/show.jl:816  make_typealiases(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/show.jl:828  make_typealiases(x::Type)
   ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/runtime_internals.jl:116  unsorted_names
  1╎    ╎    ╎    ╎    ╎    ╎   1   @Base/runtime_internals.jl:116  #unsorted_names#6
  1╎    ╎    ╎    ╎    ╎    ╎ 3   @Base/show.jl:829  make_typealiases(x::Type)
  2╎    ╎    ╎    ╎    ╎    ╎  2   @Base/runtime_internals.jl:404  isconst
  3╎    ╎    ╎    ╎    ╎    ╎ 3   @Base/show.jl:830  make_typealiases(x::Type)
   ╎    ╎    ╎    ╎    22  @Base/methodshow.jl:254  show_method(io::IOContext{IOBuffer}, m::Method; modulecolor::Symbol, digit_align_width::Int64)
   ╎    ╎    ╎    ╎     22  @Base/errorshow.jl:791  print_module_path_file
   ╎    ╎    ╎    ╎    ╎ 15  @Base/errorshow.jl:801  print_module_path_file(io::IOContext{IOBuffer}, modul::Module, file::String, line::Int32; modulecolor::Symbol, digit_align…
   ╎    ╎    ╎    ╎    ╎  1   @Base/methodshow.jl:138  fixup_stdlib_path
   ╎    ╎    ╎    ╎    ╎   1   @Base/path.jl:394  normpath(path::String)
   ╎    ╎    ╎    ╎    ╎    1   @Base/strings/util.jl:885  split
   ╎    ╎    ╎    ╎    ╎     1   @Base/strings/util.jl:887  #split#429
   ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/array.jl:729  collect
   ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/array.jl:742  _collect(cont::UnitRange{Int64}, itr::Base.SplitIterator{String, Regex}, ::Base.HasEltype, isz::Base.SizeUnknown)
   ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/strings/util.jl:720  iterate
   ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/regex.jl:479  findnext
   ╎    ╎    ╎    ╎    ╎    ╎     1   @Base/regex.jl:491  _findnext_re(re::Regex, str::String, idx::Int64, match_data::Ptr{Nothing})
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/pcre.jl:221  exec_r_data(re::Ptr{Nothing}, subject::String, offset::Int64, options::UInt32)
  1╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/pcre.jl:227  create_match_data
   ╎    ╎    ╎    ╎    ╎  14  @Base/methodshow.jl:139  fixup_stdlib_path
   ╎    ╎    ╎    ╎    ╎   1   @Base/path.jl:392  normpath(path::String)
   ╎    ╎    ╎    ╎    ╎    1   @Base/path.jl:136  isdirpath
   ╎    ╎    ╎    ╎    ╎     1   @Base/regex.jl:306  occursin
   ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/regex.jl:308  #occursin#455
   ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/pcre.jl:215  exec_r(re::Ptr{Nothing}, subject::String, offset::Int64, options::UInt32)
   ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/pcre.jl:199  exec
  1╎    ╎    ╎    ╎    ╎    ╎    1   @Base/pcre.jl:205  _exec
   ╎    ╎    ╎    ╎    ╎   9   @Base/path.jl:394  normpath(path::String)
   ╎    ╎    ╎    ╎    ╎    9   @Base/strings/util.jl:885  split
   ╎    ╎    ╎    ╎    ╎     9   @Base/strings/util.jl:887  #split#429
   ╎    ╎    ╎    ╎    ╎    ╎ 9   @Base/array.jl:729  collect
   ╎    ╎    ╎    ╎    ╎    ╎  2   @Base/array.jl:741  _collect(cont::UnitRange{Int64}, itr::Base.SplitIterator{String, Regex}, ::Base.HasEltype, isz::Base.SizeUnknown)
   ╎    ╎    ╎    ╎    ╎    ╎   2   @Base/array.jl:1300  push!
   ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/array.jl:1303  _push!
  1╎    ╎    ╎    ╎    ╎    ╎     1   @Base/array.jl:1145  _growend!
   ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/array.jl:1304  _push!
  1╎    ╎    ╎    ╎    ╎    ╎     1   @Base/essentials.jl:11  length
   ╎    ╎    ╎    ╎    ╎    ╎  7   @Base/array.jl:742  _collect(cont::UnitRange{Int64}, itr::Base.SplitIterator{String, Regex}, ::Base.HasEltype, isz::Base.SizeUnknown)
   ╎    ╎    ╎    ╎    ╎    ╎   6   @Base/strings/util.jl:720  iterate
   ╎    ╎    ╎    ╎    ╎    ╎    6   @Base/regex.jl:479  findnext
  1╎    ╎    ╎    ╎    ╎    ╎     1   @Base/regex.jl:483  _findnext_re(re::Regex, str::String, idx::Int64, match_data::Ptr{Nothing})
   ╎    ╎    ╎    ╎    ╎    ╎     4   @Base/regex.jl:491  _findnext_re(re::Regex, str::String, idx::Int64, match_data::Ptr{Nothing})
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 4   @Base/pcre.jl:222  exec_r_data(re::Ptr{Nothing}, subject::String, offset::Int64, options::UInt32)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  4   @Base/pcre.jl:199  exec
  4╎    ╎    ╎    ╎    ╎    ╎    ╎   4   @Base/pcre.jl:205  _exec
   ╎    ╎    ╎    ╎    ╎    ╎     1   @Base/regex.jl:502  _findnext_re(re::Regex, str::String, idx::Int64, match_data::Ptr{Nothing})
  1╎    ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/pcre.jl:178  free_match_data
   ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/strings/util.jl:725  iterate
   ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/strings/substring.jl:49  SubString
  1╎    ╎    ╎    ╎    ╎    ╎     1   @Base/strings/substring.jl:30  SubString{String}(s::String, i::Int64, j::Int64)
   ╎    ╎    ╎    ╎    ╎   1   @Base/path.jl:395  normpath(path::String)
   ╎    ╎    ╎    ╎    ╎    1   @Base/array.jl:2970  filter!(f::Base.Fix2{typeof(!=), String}, a::Vector{SubString{String}})
   ╎    ╎    ╎    ╎    ╎     1   @Base/array.jl:1000  setindex!
  1╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/array.jl:1005  _setindex!
   ╎    ╎    ╎    ╎    ╎   3   @Base/path.jl:414  normpath(path::String)
   ╎    ╎    ╎    ╎    ╎    3   @Base/strings/io.jl:381  join
   ╎    ╎    ╎    ╎    ╎     3   @Base/strings/io.jl:363  _join_preserve_annotations
   ╎    ╎    ╎    ╎    ╎    ╎ 3   @Base/strings/io.jl:110  sprint
  2╎    ╎    ╎    ╎    ╎    ╎  3   @Base/strings/io.jl:117  sprint(::Function, ::Vector{SubString{String}}, ::Vararg{Any}; context::Nothing, sizehint::Int64)
   ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/strings/io.jl:355  join(io::IOBuffer, iterator::Vector{SubString{String}}, delim::String)
   ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/strings/io.jl:254  print
   ╎    ╎    ╎    ╎    ╎    ╎     1   @Base/strings/io.jl:252  write
  1╎    ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/iobuffer.jl:532  unsafe_write(to::IOBuffer, p::Ptr{UInt8}, nb::UInt64)
   ╎    ╎    ╎    ╎    ╎ 1   @Base/errorshow.jl:802  print_module_path_file(io::IOContext{IOBuffer}, modul::Module, file::String, line::Int32; modulecolor::Symbol, digit_align…
   ╎    ╎    ╎    ╎    ╎  1   @Base/errorshow.jl:426  stacktrace_expand_basepaths
   ╎    ╎    ╎    ╎    ╎   1   @Base/env.jl:142  get_bool_env
   ╎    ╎    ╎    ╎    ╎    1   @Base/env.jl:142  #get_bool_env#617
   ╎    ╎    ╎    ╎    ╎     1   @Base/env.jl:143  get_bool_env
   ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/env.jl:144  get_bool_env(f_default::Returns{Bool}, name::String; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, @NamedTuple{}})
   ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/abstractdict.jl:19  haskey
   ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/env.jl:171  in
   ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/env.jl:56  _hasenv
   ╎    ╎    ╎    ╎    ╎    ╎     1   @Base/env.jl:55  _getenv
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/strings/cstring.jl:85  unsafe_convert
  1╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/strings/cstring.jl:78  containsnul
   ╎    ╎    ╎    ╎    ╎ 3   @Base/errorshow.jl:803  print_module_path_file(io::IOContext{IOBuffer}, modul::Module, file::String, line::Int32; modulecolor::Symbol, digit_align…
   ╎    ╎    ╎    ╎    ╎  1   @Base/path.jl:532  contractuser
  1╎    ╎    ╎    ╎    ╎   1   @Base/path.jl:87  homedir()
   ╎    ╎    ╎    ╎    ╎  2   @Base/path.jl:536  contractuser
   ╎    ╎    ╎    ╎    ╎   1   @Base/path.jl:587  relpath(path::String, startpath::String)
   ╎    ╎    ╎    ╎    ╎    1   @Base/path.jl:459  abspath(a::String)
   ╎    ╎    ╎    ╎    ╎     1   @Base/path.jl:414  normpath(path::String)
   ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/strings/io.jl:381  join
   ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/strings/io.jl:363  _join_preserve_annotations
   ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/strings/io.jl:110  sprint
  1╎    ╎    ╎    ╎    ╎    ╎    1   @Base/strings/io.jl:110  sprint(::Function, ::Vector{SubString{String}}, ::Vararg{Any}; context::Nothing, sizehint::Int64)
   ╎    ╎    ╎    ╎    ╎   1   @Base/path.jl:588  relpath(path::String, startpath::String)
   ╎    ╎    ╎    ╎    ╎    1   @Base/strings/util.jl:885  split
   ╎    ╎    ╎    ╎    ╎     1   @Base/strings/util.jl:887  #split#429
   ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/array.jl:729  collect
   ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/array.jl:740  _collect(cont::UnitRange{Int64}, itr::Base.SplitIterator{String, Regex}, ::Base.HasEltype, isz::Base.SizeUnknown)
   ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/strings/util.jl:719  iterate
   ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/strings/util.jl:720  iterate
   ╎    ╎    ╎    ╎    ╎    ╎     1   @Base/regex.jl:479  findnext
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/regex.jl:491  _findnext_re(re::Regex, str::String, idx::Int64, match_data::Ptr{Nothing})
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/pcre.jl:222  exec_r_data(re::Ptr{Nothing}, subject::String, offset::Int64, options::UInt32)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/pcre.jl:199  exec
   ╎    ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/pcre.jl:205  _exec
  1╎    ╎    ╎    ╎    ╎    ╎    ╎     1   @Base/pcre.jl:34  get_local_match_context()
   ╎    ╎    ╎    ╎    ╎ 1   @Base/errorshow.jl:805  print_module_path_file(io::IOContext{IOBuffer}, modul::Module, file::String, line::Int32; modulecolor::Symbol, digit_align…
   ╎    ╎    ╎    ╎    ╎  1   @Base/path.jl:183  dirname
   ╎    ╎    ╎    ╎    ╎   1   @Base/path.jl:151  splitdir
   ╎    ╎    ╎    ╎    ╎    1   @Base/path.jl:157  _splitdir_nodrive(a::String, b::String)
   ╎    ╎    ╎    ╎    ╎     1   @Base/regex.jl:474  match
   ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/regex.jl:429  match
   ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/regex.jl:433  match(re::Regex, str::String, idx::Int64, add_opts::UInt32)
  1╎    ╎    ╎    ╎    ╎    ╎   1   @Base/pcre.jl:178  free_match_data
   ╎    ╎    ╎    ╎    ╎ 2   @Base/errorshow.jl:809  print_module_path_file(io::IOContext{IOBuffer}, modul::Module, file::String, line::Int32; modulecolor::Symbol, digit_align…
   ╎    ╎    ╎    ╎    ╎  2   @Base/util.jl:141  printstyled
   ╎    ╎    ╎    ╎    ╎   2   @Base/util.jl:141  #printstyled#835
   ╎    ╎    ╎    ╎    ╎    2   @Base/util.jl:73  with_output_color
   ╎    ╎    ╎    ╎    ╎     1   @Base/util.jl:76  with_output_color(::Function, ::Symbol, ::IOContext{IOBuffer}, ::String, ::Vararg{Any}; bold::Bool, italic::Bool, underline:…
   ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/iobuffer.jl:128  GenericIOBuffer
   ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/iobuffer.jl:137  #IOBuffer#386
   ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/iobuffer.jl:44  StringMemory
  1╎    ╎    ╎    ╎    ╎    ╎    1   @Base/strings/string.jl:119  unsafe_wrap
   ╎    ╎    ╎    ╎    ╎     1   @Base/util.jl:78  with_output_color(::Function, ::Symbol, ::IOContext{IOBuffer}, ::String, ::Vararg{Any}; bold::Bool, italic::Bool, underline:…
   ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/strings/io.jl:46  print(::IOContext{IOBuffer}, ::String, ::String, ::Int32)
   ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/strings/io.jl:35  print(io::IOContext{IOBuffer}, x::Int32)
   ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/show.jl:1265  show
   ╎    ╎    ╎    ╎    ╎    ╎    1   @Base/intfuncs.jl:948  string
   ╎    ╎    ╎    ╎    ╎    ╎     1   @Base/intfuncs.jl:958  string(n::Int32; base::Int64, pad::Int64)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎ 1   @Base/intfuncs.jl:876  dec(x::UInt32, pad::Int64, neg::Bool)
   ╎    ╎    ╎    ╎    ╎    ╎    ╎  1   @Base/iobuffer.jl:44  StringMemory
  1╎    ╎    ╎    ╎    ╎    ╎    ╎   1   @Base/strings/string.jl:119  unsafe_wrap

@IanButterworth
Copy link
Member

Probably

rexm = match(r"(\w+\.|)\?\((.*)$", partial)

@IanButterworth
Copy link
Member

IanButterworth commented Oct 21, 2024

I'm not great at regexes, but chatgpt made this which works for these test cases

julia> regex = r"^(?!\")(?:\w+\.|)\?\((.*)$"
r"^(?!\")(?:\w+\.|)\?\((.*)$"

julia> match(regex, "?(")
RegexMatch("?(", 1="")

julia> match(regex, "\"?(\"")

julia> match(regex, "\"\"\"?(\"\"\"")

The current one matches all of them

julia> regex = r"(\w+\.|)\?\((.*)$"
r"(\w+\.|)\?\((.*)$"

julia> match(regex, "?(")
RegexMatch("?(", 1="", 2="")

julia> match(regex, "\"?(\"")
RegexMatch("?(\"", 1="", 2="\"")

julia> match(regex, "\"\"\"?(\"\"\"")
RegexMatch("?(\"\"\"", 1="", 2="\"\"\"")

@Seelengrab
Copy link
Contributor

What it's done here is explicitly exclude (through the negative lookahead (?!\")) strings that start (^) with a quotation mark. It then seems to have surrounded the module capturing group in a non-capturing group ((?: ... )), which probably breaks the code, since that's used by the following code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
completions Tab and autocompletion in the repl regression 1.11 Regression in the 1.11 release REPL Julia's REPL (Read Eval Print Loop)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants