LGTM, but I wonder about the Foo[] vs Bar[] case where Bar extends Foo. What does the JLS say?
http://gwt-code-reviews.appspot.com/1309801/diff/4002/9001 File dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java (right): http://gwt-code-reviews.appspot.com/1309801/diff/4002/9001#newcode2063 dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java:2063: return; I don't quite understand the Enum hack that was deleted, but I'll assume that since the super() call to an Enum won't ever be a vararg, it's handled by this case? http://gwt-code-reviews.appspot.com/1309801/diff/4002/9001#newcode2078 dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java:2078: if (args.length == params.length) { Hmm, this brings up the question of what's the right behavior in the following case; Method vararg(Foo...), Bar extends Foo, vararg((Bar[])null). Intuition says that variance compatibility is expected, but I never tried it. http://gwt-code-reviews.appspot.com/1309801/show -- http://groups.google.com/group/Google-Web-Toolkit-Contributors