langtools/src/share/classes/com/sun/tools/javac/comp/Check.java
changeset 16340 3c0af3413e0f
parent 16333 a6e1ded87200
child 16546 49a9c3f37e64
equal deleted inserted replaced
16339:0bc89752353d 16340:3c0af3413e0f
   668      */
   668      */
   669     Type checkConstructorRefType(DiagnosticPosition pos, Type t) {
   669     Type checkConstructorRefType(DiagnosticPosition pos, Type t) {
   670         t = checkClassOrArrayType(pos, t);
   670         t = checkClassOrArrayType(pos, t);
   671         if (t.hasTag(CLASS)) {
   671         if (t.hasTag(CLASS)) {
   672             if ((t.tsym.flags() & (ABSTRACT | INTERFACE)) != 0) {
   672             if ((t.tsym.flags() & (ABSTRACT | INTERFACE)) != 0) {
   673                 log.error(pos, "abstract.cant.be.instantiated");
   673                 log.error(pos, "abstract.cant.be.instantiated", t.tsym);
   674                 t = types.createErrorType(t);
   674                 t = types.createErrorType(t);
   675             } else if ((t.tsym.flags() & ENUM) != 0) {
   675             } else if ((t.tsym.flags() & ENUM) != 0) {
   676                 log.error(pos, "enum.cant.be.instantiated");
   676                 log.error(pos, "enum.cant.be.instantiated");
       
   677                 t = types.createErrorType(t);
       
   678             } else {
       
   679                 t = checkClassType(pos, t, true);
       
   680             }
       
   681         } else if (t.hasTag(ARRAY)) {
       
   682             if (!types.isReifiable(((ArrayType)t).elemtype)) {
       
   683                 log.error(pos, "generic.array.creation");
   677                 t = types.createErrorType(t);
   684                 t = types.createErrorType(t);
   678             }
   685             }
   679         }
   686         }
   680         return t;
   687         return t;
   681     }
   688     }