1.1 --- a/src/share/classes/com/sun/tools/javac/comp/Check.java Tue Mar 12 11:16:30 2013 +0100 1.2 +++ b/src/share/classes/com/sun/tools/javac/comp/Check.java Tue Mar 12 16:02:13 2013 +0000 1.3 @@ -670,11 +670,18 @@ 1.4 t = checkClassOrArrayType(pos, t); 1.5 if (t.hasTag(CLASS)) { 1.6 if ((t.tsym.flags() & (ABSTRACT | INTERFACE)) != 0) { 1.7 - log.error(pos, "abstract.cant.be.instantiated"); 1.8 + log.error(pos, "abstract.cant.be.instantiated", t.tsym); 1.9 t = types.createErrorType(t); 1.10 } else if ((t.tsym.flags() & ENUM) != 0) { 1.11 log.error(pos, "enum.cant.be.instantiated"); 1.12 t = types.createErrorType(t); 1.13 + } else { 1.14 + t = checkClassType(pos, t, true); 1.15 + } 1.16 + } else if (t.hasTag(ARRAY)) { 1.17 + if (!types.isReifiable(((ArrayType)t).elemtype)) { 1.18 + log.error(pos, "generic.array.creation"); 1.19 + t = types.createErrorType(t); 1.20 } 1.21 } 1.22 return t;