The documentation here states:
Methods are dispatched based only on positional arguments, with keyword arguments processed after the matching method is identified.
However, this is not precisely true as method dispatch takes into account if some method defines a keyword argument or not. Here is an example:
julia> f(x::Int) = "int" f (generic function with 1 method) julia> f(x; kwarg) = "any" f (generic function with 2 methods) julia> f(1) "int" julia> f(1, kwarg=nothing) "any"
My question is if this is intended. If yes, then probably the documentation should be made more precise.