throw new RuntimeException("this array value not use by other operator");
}
if(allocateDims != null){
log.debug("start new a array!");
InstructionHelper ih = block.getInsnHelper();
if(allocateDims == null || allocateDims.length == 0){
ih.push(arrayCls.getType());
ih.checkCast(arrayCls.getType());
return;
}
if(allocateDims.length == 1){
allocateDims[0].loadToStack(block);
ih.unbox(allocateDims[0].getParamterizedType().getType());
ih.newArray(arrayCls.getNextDimType().getType());
}else{
for(Parameterized allocate : allocateDims){
allocate.loadToStack(block);
ih.unbox(allocate.getParamterizedType().getType());
}
ih.multiANewArrayInsn(arrayCls.getType(), allocateDims.length);
}
}else{
loopArray(arrayCls, values);
}
}