public CArrayType(CType baseType, int arrayBound, JExpression[] dims) { super();  type = TID_ARRAY; assert baseType != null; assert arrayBound > 0;  if (baseType.isArrayType()) { this.arrayBound = arrayBound + ((CArrayType)baseType).arrayBound; this.baseType = ((CArrayType)baseType).baseType; } else { this.arrayBound = arrayBound; this.baseType = baseType; }    if (dims==null) { dims = new JExpression[0]; }  this.dims = dims; }
private CArrayType() {}
    public CArrayType(CType baseType, int arrayBound, JExpression[] dims) {        super();        type = TID_ARRAY;        assert baseType != null;        assert arrayBound > 0;        if (baseType.isArrayType()) {            this.arrayBound = arrayBound + ((CArrayType)baseType).arrayBound;            this.baseType = ((CArrayType)baseType).baseType;        } else {            this.arrayBound = arrayBound;            this.baseType = baseType;        }        // only need this for raw backend until it supports static array        // dimensions        if (dims==null) {            dims = new JExpression[0];        }        this.dims = dims;    }