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

changeset 1627
6db9a3b1a93f
parent 1620
3806171b52d8
child 1634
eb0198033c5c
equal deleted inserted replaced
1626:7fe9b9d29095 1627:6db9a3b1a93f
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 }

mercurial