langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java
changeset 5489 e7af65bf7577
parent 5321 c8efe769cb3b
child 5492 515e4b33b335
--- 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;