Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix showing method candidates for
invoke
-style MethodError
Fixes the following issue: ``` julia> invoke(sin, Tuple{NoMethodsDefinedHere}, NoMethodsDefinedHere()) ERROR: ┌ Error: Error showing method candidates, aborted │ exception = │ MethodError: no method matching length(::Type{Tuple{NoMethodsDefinedHere}}) │ Closest candidates are: │ length(::Core.SimpleVector) at essentials.jl:582 │ length(::Base.MethodList) at reflection.jl:732 │ length(::Core.MethodTable) at reflection.jl:806 │ ... │ Stacktrace: │ [1] show_method_candidates(::IOContext{Base.GenericIOBuffer{Array{UInt8,1}}}, ::MethodError, ::Any) at ./errorshow.jl:387 │ [2] showerror(::IOContext{Base.GenericIOBuffer{Array{UInt8,1}}}, ::MethodError) at ./errorshow.jl:255 │ [3] (::getfield(Base, Symbol("##613#614")){MethodError})(::IOContext{Base.GenericIOBuffer{Array{UInt8,1}}}) at ./errorshow.jl:76 │ [4] #with_output_color#660(::Bool, ::Function, ::Function, ::Symbol, ::IOContext{REPL.Terminals.TTYTerminal}) at ./util.jl:366 │ [5] with_output_color(::Function, ::Symbol, ::IOContext{REPL.Terminals.TTYTerminal}) at ./util.jl:364 │ [6] #showerror#612(::Bool, ::Function, ::IOContext{REPL.Terminals.TTYTerminal}, ::MethodError, ::Array{Union{Ptr{Nothing}, InterpreterIP},1}) at ./errorshow.jl:75 │ [7] showerror at ./errorshow.jl:74 [inlined] │ [8] display_error(::IOContext{REPL.Terminals.TTYTerminal}, ::MethodError, ::Array{Union{Ptr{Nothing}, InterpreterIP},1}) at ./client.jl:99 │ [9] #invokelatest#1 at ./essentials.jl:697 [inlined] │ [10] invokelatest at ./essentials.jl:696 [inlined] │ [11] print_response(::IO, ::Any, ::Any, ::Bool, ::Bool, ::Any) at /home/keno/julia-1.0/usr/share/julia/stdlib/v1.1/REPL/src/REPL.jl:149 │ [12] print_response(::REPL.AbstractREPL, ::Any, ::Any, ::Bool, ::Bool) at /home/keno/julia-1.0/usr/share/julia/stdlib/v1.1/REPL/src/REPL.jl:140 │ [13] (::getfield(REPL, Symbol("#do_respond#38")){Bool,getfield(REPL, Symbol("##48#57")){REPL.LineEditREPL,REPL.REPLHistoryProvider},REPL.LineEditREPL,REPL.LineEdit.Prompt})(::Any, ::Any, ::Any) at /home/keno/julia-1.0/usr/share/julia/stdlib/v1.1/REPL/src/REPL.jl:714 │ [14] #invokelatest#1 at ./essentials.jl:697 [inlined] │ [15] invokelatest at ./essentials.jl:696 [inlined] │ [16] run_interface(::REPL.Terminals.TextTerminal, ::REPL.LineEdit.ModalInterface, ::REPL.LineEdit.MIState) at /home/keno/julia-1.0/usr/share/julia/stdlib/v1.1/REPL/src/LineEdit.jl:2268 │ [17] run_frontend(::REPL.LineEditREPL, ::REPL.REPLBackendRef) at /home/keno/julia-1.0/usr/share/julia/stdlib/v1.1/REPL/src/REPL.jl:1035 │ [18] run_repl(::REPL.AbstractREPL, ::Any) at /home/keno/julia-1.0/usr/share/julia/stdlib/v1.1/REPL/src/REPL.jl:192 │ [19] (::getfield(Base, Symbol("##723#725")){Bool,Bool,Bool,Bool})(::Module) at ./logging.jl:311 │ [20] #invokelatest#1 at ./essentials.jl:697 [inlined] │ [21] invokelatest at ./essentials.jl:696 [inlined] │ [22] macro expansion at ./logging.jl:308 [inlined] │ [23] run_main_repl(::Bool, ::Bool, ::Bool, ::Bool, ::Bool) at ./client.jl:330 │ [24] exec_options(::Base.JLOptions) at ./client.jl:242 │ [25] _start() at ./client.jl:421 └ @ Base errorshow.jl:257 MethodError: no method matching sin(::NoMethodsDefinedHere) Stacktrace: [1] top-level scope at none:0 ```
- Loading branch information