# HG changeset patch # User jlahoda # Date 1422022493 -3600 # Node ID f462f16627418748c98e06d2ef6b28de749efa50 # Parent d8bb77bbb041e8f48b0f26669e2a137899ca3e0d 8069254: Warning issued despite @SafeVarargs annotation on constructor Summary: The Symbol created for diamond inference does not have annotations attached - need to look for @SafeVarargs on the underlying constructor's Symbol. Reviewed-by: mcimadamore diff -r d8bb77bbb041 -r f462f1662741 langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java --- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java Thu Jan 22 09:50:03 2015 +0100 +++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java Fri Jan 23 15:14:53 2015 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -898,7 +898,7 @@ Type argtype = owntype.getParameterTypes().last(); if (!types.isReifiable(argtype) && (!allowSimplifiedVarargs || - sym.attribute(syms.trustMeType.tsym) == null || + sym.baseSymbol().attribute(syms.trustMeType.tsym) == null || !isTrustMeAllowedOnMethod(sym))) { warnUnchecked(env.tree.pos(), "unchecked.generic.array.creation", diff -r d8bb77bbb041 -r f462f1662741 langtools/test/tools/javac/varargs/warning/Warn6.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/langtools/test/tools/javac/varargs/warning/Warn6.java Fri Jan 23 15:14:53 2015 +0100 @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * @test + * @bug 8069254 + * @summary Ensure the generic array creation warning is not incorrectly produced for diamonds + * @compile -Xlint:unchecked -Werror Warn6.java + */ + +public class Warn6 { + @SafeVarargs + public Warn6(T... args) { + } + + public static void main(String[] args) { + Iterable i = null; + + Warn6> foo2 = new Warn6<>(i, i); + Warn6> foo3 = new Warn6>(i, i); + } +} +