From b098c394fbab5a3052fa6027bf3a6ff531e307a7 Mon Sep 17 00:00:00 2001 From: Ian Date: Sat, 5 Dec 2020 15:31:06 -0500 Subject: [PATCH 1/2] fold repeated `LoadError :` prints during showerror --- base/errorshow.jl | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/base/errorshow.jl b/base/errorshow.jl index f340df9738299..a90addaac4de7 100644 --- a/base/errorshow.jl +++ b/base/errorshow.jl @@ -91,9 +91,17 @@ function showerror(io::IO, ex, bt; backtrace=true) end end -function showerror(io::IO, ex::LoadError, bt; backtrace=true) - print(io, "LoadError: ") - showerror(io, ex.error, bt, backtrace=backtrace) +function showerror(io::IO, ex::LoadError, bt; backtrace=true, depth = 1) + if ex.error isa LoadError + showerror(io, ex.error, bt, backtrace=backtrace, depth = depth + 1) + else + if depth == 1 + print(io, "LoadError: ") + else + print(io, "LoadError (x$depth): ") + end + showerror(io, ex.error, bt, backtrace=backtrace) + end print(io, "\nin expression starting at $(ex.file):$(ex.line)") end showerror(io::IO, ex::LoadError) = showerror(io, ex, []) From 4671cba35a862a2670a3612ab54261fffe140421 Mon Sep 17 00:00:00 2001 From: Ian Date: Mon, 14 Dec 2020 23:02:32 -0500 Subject: [PATCH 2/2] Only print a single LoadError: prefix --- base/errorshow.jl | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/base/errorshow.jl b/base/errorshow.jl index a90addaac4de7..c5b078f2233f4 100644 --- a/base/errorshow.jl +++ b/base/errorshow.jl @@ -91,17 +91,9 @@ function showerror(io::IO, ex, bt; backtrace=true) end end -function showerror(io::IO, ex::LoadError, bt; backtrace=true, depth = 1) - if ex.error isa LoadError - showerror(io, ex.error, bt, backtrace=backtrace, depth = depth + 1) - else - if depth == 1 - print(io, "LoadError: ") - else - print(io, "LoadError (x$depth): ") - end - showerror(io, ex.error, bt, backtrace=backtrace) - end +function showerror(io::IO, ex::LoadError, bt; backtrace=true) + !isa(ex.error, LoadError) && print(io, "LoadError: ") + showerror(io, ex.error, bt, backtrace=backtrace) print(io, "\nin expression starting at $(ex.file):$(ex.line)") end showerror(io::IO, ex::LoadError) = showerror(io, ex, [])