--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java Sat Apr 17 08:12:45 2010 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java Wed Apr 21 12:24:56 2010 +0100
@@ -2621,12 +2621,10 @@
}
if (useVarargs) {
JCTree tree = env.tree;
- Type argtype = owntype.getParameterTypes().last();
- if (!types.isReifiable(argtype))
- chk.warnUnchecked(env.tree.pos(),
- "unchecked.generic.array.creation",
- argtype);
- Type elemtype = types.elemtype(argtype);
+ if (owntype.getReturnType().tag != FORALL || warned) {
+ chk.checkVararg(env.tree.pos(), owntype.getParameterTypes());
+ }
+ Type elemtype = types.elemtype(owntype.getParameterTypes().last());
switch (tree.getTag()) {
case JCTree.APPLY:
((JCMethodInvocation) tree).varargsElement = elemtype;