src/share/classes/com/sun/tools/javac/comp/Check.java

changeset 1627
6db9a3b1a93f
parent 1620
3806171b52d8
child 1634
eb0198033c5c
     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;

mercurial