The earlier glitch with var args methods and literal arrays as the var
args parameter was because of bad handling during the different Phases
of method resolution. Var args methods are actually treated as normal
methods during Phase 1 & 2 with their last parameters as arrays. This
can be seen by trying to invoke foo(new Object[0]) where foo(Object...
objs) and foo(Object[]... objs) are visible. If taken to phase 3, this
invocation would resolve to the latter since it is more specific,
however it actually resolves to the first.