In Julia, functions get both positional arguments and keyword arguments. When defining a function, the positional arguments are defined first and then a semicolon ; separates them from the keyword arguments declaration.
When calling functions, the same convention is used, except the ; can be replaced with a ,. Probably for backward compatibility reasons, and possibly to make calls look nicer. When using the splat (...) operator for kwargs this is no longer optional, as Julia will interpret the expanded kwargs as positional parameters with no ;.
Therefore, in the example shown,
should be written as
return t2(args...; kwargs...)+x+y
The Julia docs do a good job at describing these notions. The relevant link is:
https://docs.julialang.org/en/v1/manual/functions/#Keyword-Arguments