julia> f(a::Int; b = nothing) = a f (generic function with 1 method) julia> f(2.0, b = zeros(10)) ERROR: MethodError: no method matching f(::Float64; b=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) Closest candidates are: f(::Int64; b) at REPL:1 Stacktrace:  top-level scope @ REPL:1
In this case, the error is not due to the value/type of
b, and displaying unnecessary information may actually make it harder to locate the actual error. Maybe the value of
b should only be printed if the error is due to a type-mismatch on it? In this case, however, a
TypeError is raised, and the value isn’t displayed at all.
julia> h(a::Int; b::Float64 = 0.0) = a h (generic function with 1 method) julia> h(2, b = 4) ERROR: TypeError: in keyword argument b, expected Float64, got a value of type Int64 Stacktrace:  top-level scope @ REPL:1
So… maybe we don’t need to display the values of kwargs at all?