elemtype = attribType(tree.elemtype, env);
chk.validate(tree.elemtype, env);
owntype = elemtype;
for (List<JCExpression> l = tree.dims; l.nonEmpty(); l = l.tail) {
attribExpr(l.head, env, syms.intType);
owntype = new ArrayType(owntype, syms.arrayClass);
}
} else {
// we are seeing an untyped aggregate { ... }
// this is allowed only if the prototype is an array
if (pt.tag == ARRAY) {
elemtype = types.elemtype(pt);
} else {
if (pt.tag != ERROR) {
log.error(tree.pos(), "illegal.initializer.for.type",
pt);
}
elemtype = types.createErrorType(pt);
}
}
if (tree.elems != null) {
attribExprs(tree.elems, env, elemtype);
owntype = new ArrayType(elemtype, syms.arrayClass);
}
if (!types.isReifiable(elemtype))
log.error(tree.pos(), "generic.array.creation");
result = check(tree, owntype, VAL, pkind, pt);
}